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:
mimeType
của tệp. Tìm hiểu về các loại MIME được hỗ trợ của tệp đầu vào.Tệp. Bạn có thể cung cấp tệp dưới dạng dữ liệu cùng dòng (như minh hoạ trên trang này) hoặc sử dụng URL hoặc URI của tệp.
Để 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.
Các tuỳ chọn khác để làm việc với Gemini API
Bạn có thể tuỳ ý thử nghiệm phiên bản "Google AI" thay thế của Gemini API
Nhận quyền truy cập miễn phí (trong giới hạn và nếu có) bằng cách sử dụng Google AI Studio và SDK ứng dụng Google AI. Bạn chỉ nên sử dụng các SDK này để tạo bản mô hình trong ứng dụng dành cho thiết bị di động và web.Sau khi bạn đã quen thuộc với cách hoạt động của Gemini API, hãy chuyển sang SDK Vertex AI in Firebase của chúng tôi (tài liệu này). SDK này có nhiều tính năng bổ sung quan trọng đối với ứng dụng web và ứng dụng di động, chẳng hạn như bảo vệ API khỏi hành vi sử dụng sai trái bằng cách sử dụng Firebase App Check và hỗ trợ các tệp phương tiện lớn trong yêu cầu.
Có thể gọi Vertex AI Gemini API phía máy chủ (chẳng hạn như với Python, Node.js hoặc Go)
Sử dụng SDK Vertex AI phía máy chủ, Firebase Genkit hoặc Firebase Extensions cho Gemini API.
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:
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.
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.
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.
Hình ảnh:
https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
với loại MIME làimage/jpeg
. Xem hoặc tải hình ảnh này xuống.PDF:
https://storage.googleapis.com/cloud-samples-data/generative-ai/pdf/2403.05530.pdf
với loại MIME làapplication/pdf
. Xem hoặc tải tệp PDF này xuống.Video:
https://storage.googleapis.com/cloud-samples-data/video/animals.mp4
có loại MIME làvideo/mp4
. Xem hoặc tải video này xuống.Âm thanh:
https://storage.googleapis.com/cloud-samples-data/generative-ai/audio/pixel.mp3
với loại MIME làaudio/mp3
. Nghe hoặc tải bản ghi âm này xuống.
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?
- Tìm hiểu cách đếm mã thông báo trước khi gửi lời nhắc dài đến mô hình.
- Thiết lập Cloud Storage for Firebase để bạn có thể đưa các tệp lớn vào yêu cầu đa phương thức và có giải pháp quản lý tốt hơn để cung cấp tệp trong lời nhắc. Tệp có thể bao gồm hình ảnh, tệp PDF, video và âm thanh.
- Bắt đầu suy nghĩ về việc chuẩn bị cho bản phát hành chính thức, bao gồm cả việc thiết lập Firebase App Check để bảo vệ Gemini API khỏi hành vi lạm dụng của các ứng dụng không được uỷ quyền. Ngoài ra, hãy nhớ xem lại danh sách kiểm tra cho bản phát hành chính thức.
Thử các tính năng khác của Gemini API
- Xây dựng cuộc trò chuyện nhiều lượt (trò chuyện).
- Tạo văn bản từ lời nhắc chỉ có văn bản.
- Tạo kết quả có cấu trúc (như JSON) từ cả lời nhắc bằng văn bản và đa phương thức.
- Sử dụng tính năng gọi hàm để kết nối các mô hình tạo sinh với hệ thống và thông tin bên ngoài.
Tìm hiểu cách kiểm soát việc tạo nội dung
- Tìm hiểu về thiết kế câu lệnh, bao gồm cả các phương pháp hay nhất, chiến lược và câu lệnh mẫu.
- Định cấu hình các tham số mô hình như nhiệt độ và mã thông báo đầu ra tối đa (đối với Gemini) hoặc tỷ lệ khung hình và tạo người (đối với Imagen).
- Sử dụng chế độ cài đặt an toàn để điều chỉnh khả năng nhận được những câu trả lời có thể bị coi là có hại.
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ức và giá 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