Tạo văn bản trong các câu lệnh đa phương thức bằng API Gemini


Khi gọi Gemini API từ ứng dụng bằng SDK Vertex AI in Firebase, bạn có thể nhắc mô hình Gemini tạo văn bản dựa trên dữ liệu đầu vào đa phương thức. Lời nhắc đa phương thức có thể bao gồm nhiều phương thức (hoặc loại dữ liệu đầu vào), chẳng hạn như văn bản cùng với hình ảnh, tệp PDF, tệp văn bản thuần tuý, video và âm thanh.

Trong mỗi yêu cầu đa phương thức, bạn phải luôn cung cấp những thông tin sau:

Để kiểm thử và lặp lại các lời nhắc đa phương thức, bạn nên sử dụng Vertex AI Studio.

Trước khi bắt đầu

Hãy hoàn tất hướng dẫn bắt đầu sử dụng SDK Vertex AI in Firebase nếu bạn chưa thực hiện. Hãy đảm bảo rằng bạn đã làm tất cả những việc sau:

  1. Thiết lập một dự án Firebase mới hoặc hiện có, bao gồm cả việc sử dụng gói giá Blaze và bật các API bắt buộc.

  2. Kết nối ứng dụng với Firebase, bao gồm cả việc đăng ký ứng dụng và thêm cấu hình Firebase vào ứng dụng.

  3. Thêm SDK và khởi chạy dịch vụ Vertex AI cũng như mô hình tạo sinh trong ứng dụng.

Sau khi kết nối ứng dụng với Firebase, thêm SDK và khởi chạy dịch vụ Vertex AI cũng như mô hình tạo sinh, bạn đã sẵn sàng gọi Gemini API.

Tạo văn bản từ văn bản và một hình ảnh Tạo văn bản từ văn bản và nhiều hình ảnh Tạo văn bản từ văn bản và video

Tệp nội dung nghe nhìn mẫu

Nếu chưa có tệp nội dung đa phương tiện, bạn có thể sử dụng các tệp có sẵn công khai sau đây. Vì các tệp này được lưu trữ trong các bộ chứa không có trong dự án Firebase, nên bạn cần sử dụng định dạng https://storage.googleapis.com/BUCKET_NAME/PATH/TO/FILE cho URL.

Tạo văn bản từ văn bản và một hình ảnh

Hãy đảm bảo bạn đã hoàn tất phần Trước khi bắt đầu trong hướng dẫn này trước khi thử mẫu này.

Bạn có thể gọi Gemini API bằng lời nhắc đa phương thức bao gồm cả văn bản và một tệp (chẳng hạn như hình ảnh, như trong ví dụ này). Đối với các lệnh gọi này, bạn cần sử dụng một mô hình hỗ trợ nội dung nghe nhìn trong lời nhắc (chẳng hạn như Gemini 2.0 Flash).

Hãy nhớ xem lại các yêu cầu và đề xuất đối với tệp đầu vào.

Chọn xem bạn muốn truyền trực tuyến phản hồi (generateContentStream) hay đợi phản hồi cho đến khi toàn bộ kết quả được tạo (generateContent).

Bạn có thể đạt được các lượt tương tác nhanh hơn bằng cách không chờ toàn bộ kết quả từ quá trình tạo mô hình, mà thay vào đó, hãy sử dụng tính năng truyền trực tuyến để xử lý một phần kết quả.

Ví dụ này cho biết cách sử dụng generateContentStream() để truyền trực tuyến văn bản được tạo từ một yêu cầu lời nhắc đa phương thức bao gồm văn bản và một hình ảnh:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

guard let image = UIImage(systemName: "bicycle") else { fatalError() }

// Provide a text prompt to include with the image
let prompt = "What's in this picture?"

// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image, prompt)
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

Ngoài ra, bạn có thể chờ toàn bộ kết quả thay vì truyền trực tuyến; kết quả chỉ được trả về sau khi mô hình hoàn tất toàn bộ quá trình tạo.

Ví dụ này cho biết cách sử dụng generateContent() để tạo văn bản từ một yêu cầu lời nhắc đa phương thức bao gồm văn bản và một hình ảnh:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

guard let image = UIImage(systemName: "bicycle") else { fatalError() }

// Provide a text prompt to include with the image
let prompt = "What's in this picture?"

// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image, prompt)
print(response.text ?? "No text in response.")

Tìm hiểu cách chọn một mô hình và tuỳ chọn vị trí phù hợp với trường hợp sử dụng và ứng dụng của bạn.

Tạo văn bản từ văn bản và nhiều hình ảnh

Hãy đảm bảo bạn đã hoàn tất phần Trước khi bắt đầu trong hướng dẫn này trước khi thử mẫu này.

Bạn có thể gọi Gemini API bằng lời nhắc đa phương thức bao gồm cả văn bản và nhiều tệp (như hình ảnh, như trong ví dụ này). Đối với các lệnh gọi này, bạn cần sử dụng một mô hình hỗ trợ nội dung nghe nhìn trong lời nhắc (chẳng hạn như Gemini 2.0 Flash).

Hãy nhớ xem lại các yêu cầu và đề xuất đối với tệp đầu vào.

Chọn xem bạn muốn truyền trực tuyến phản hồi (generateContentStream) hay đợi phản hồi cho đến khi toàn bộ kết quả được tạo (generateContent).

Bạn có thể đạt được các lượt tương tác nhanh hơn bằng cách không chờ toàn bộ kết quả từ quá trình tạo mô hình, mà thay vào đó, hãy sử dụng tính năng truyền trực tuyến để xử lý một phần kết quả.

Ví dụ này cho thấy cách sử dụng generateContentStream() để truyền trực tuyến văn bản được tạo từ một yêu cầu lời nhắc đa phương thức bao gồm văn bản và nhiều hình ảnh:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }

// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"

// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image1, image2, prompt)
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

Ngoài ra, bạn có thể đợi toàn bộ kết quả thay vì truyền trực tuyến; kết quả chỉ được trả về sau khi mô hình hoàn tất toàn bộ quá trình tạo.

Ví dụ này cho biết cách sử dụng generateContent() để tạo văn bản từ một yêu cầu lời nhắc đa phương thức bao gồm văn bản và nhiều hình ảnh:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }

// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"

// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image1, image2, prompt)
print(response.text ?? "No text in response.")

Tìm hiểu cách chọn một mô hình và tuỳ chọn vị trí phù hợp với trường hợp sử dụng và ứng dụng của bạn.

Tạo văn bản từ văn bản và video

Hãy đảm bảo bạn đã hoàn tất phần Trước khi bắt đầu trong hướng dẫn này trước khi thử mẫu này.

Bạn có thể gọi Gemini API bằng lời nhắc đa phương thức bao gồm cả(các) tệp văn bản và video (như trong ví dụ này). Đối với các lệnh gọi này, bạn cần sử dụng một mô hình hỗ trợ nội dung nghe nhìn trong lời nhắc (chẳng hạn như Gemini 2.0 Flash).

Hãy nhớ xem lại các yêu cầu và đề xuất đối với tệp đầu vào.

Chọn xem bạn muốn truyền trực tuyến phản hồi (generateContentStream) hay đợi phản hồi cho đến khi toàn bộ kết quả được tạo (generateContent).

Bạn có thể đạt được các lượt tương tác nhanh hơn bằng cách không chờ toàn bộ kết quả từ quá trình tạo mô hình, mà thay vào đó, hãy sử dụng tính năng truyền trực tuyến để xử lý một phần kết quả.

Ví dụ này cho thấy cách sử dụng generateContentStream() để truyền trực tuyến văn bản được tạo từ một yêu cầu lời nhắc đa phương thức bao gồm văn bản và một video:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

// Provide the video as `Data` with the appropriate MIME type
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")

// Provide a text prompt to include with the video
let prompt = "What is in the video?"

// To stream generated text output, call generateContentStream with the text and video
let contentStream = try model.generateContentStream(video, prompt)
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

Ngoài ra, bạn có thể chờ toàn bộ kết quả thay vì truyền trực tuyến; kết quả chỉ được trả về sau khi mô hình hoàn tất toàn bộ quá trình tạo.

Ví dụ này cho thấy cách sử dụng generateContent() để tạo văn bản từ một yêu cầu lời nhắc đa phương thức bao gồm văn bản và một video:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

// Provide the video as `Data` with the appropriate MIME type.
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")

// Provide a text prompt to include with the video
let prompt = "What is in the video?"

// To generate text output, call generateContent with the text and video
let response = try await model.generateContent(video, prompt)
print(response.text ?? "No text in response.")

Tìm hiểu cách chọn một mô hình và tuỳ chọn vị trí phù hợp với trường hợp sử dụng và ứng dụng của bạn.

Yêu cầu và đề xuất đối với tệp đầu vào

Hãy xem phần Các tệp đầu vào được hỗ trợ và yêu cầu đối với Vertex AI Gemini API để tìm hiểu về những nội dung sau:

  • Các tuỳ chọn để cung cấp tệp trong một yêu cầu
  • Các loại tệp được hỗ trợ
  • Các loại MIME được hỗ trợ và cách chỉ định các loại đó
  • Yêu cầu và phương pháp hay nhất đối với tệp và yêu cầu đa phương thức

Bạn có thể làm gì khác?

Thử các tính năng khác của Gemini API

Tìm hiểu cách kiểm soát việc tạo nội dung

Bạn cũng có thể thử nghiệm với các câu lệnh và cấu hình mô hình bằng cách sử dụng Vertex AI Studio.

Tìm hiểu thêm về các mẫu được hỗ trợ

Tìm hiểu về các mô hình có sẵn cho nhiều trường hợp sử dụng, cũng như hạn mứcgiá của các mô hình đó.


Gửi ý kiến phản hồi về trải nghiệm của bạn với Vertex AI in Firebase