使用 Gemini API 時,您可以建立跨多輪的任意形式對話。Vertex AI in Firebase SDK 會管理對話狀態,簡化這個程序,因此您不必像使用 generateContentStream()
或 generateContent()
那樣自行儲存對話記錄。
其他與 Gemini API 相關的選項
您可以選擇嘗試 Gemini API
的「Google AI」替代版本,使用 Google AI Studio 和 Google AI 用戶端 SDK 取得免付費存取權 (在限制範圍內且適用情況下)。這些 SDK 應僅用於行動應用程式和網頁應用程式的原型設計。熟悉 Gemini API 的運作方式後,請遷移至我們的 Vertex AI in Firebase SDK (本說明文件),其中提供許多對行動和網頁應用程式重要的額外功能,例如使用 Firebase App Check 保護 API 免遭濫用,以及支援要求中的大型媒體檔案。
視需要呼叫 Vertex AI Gemini API 伺服器端 (例如使用 Python、Node.js 或 Go)
使用伺服器端 Vertex AI SDK、Firebase Genkit 或 Firebase Extensions 來處理 Gemini API。
事前準備
如果您尚未完成,請完成Vertex AI in Firebase SDK 的入門指南。請確認您已完成下列所有操作:
設定新的或現有的 Firebase 專案,包括使用 Blaze 定價方案和啟用必要的 API。
將應用程式連結至 Firebase,包括註冊應用程式,以及將 Firebase 設定新增至應用程式。
新增 SDK,並在應用程式中初始化 Vertex AI 服務和生成式模型。
將應用程式連結至 Firebase、新增 SDK 並初始化 Vertex AI 服務和生成模型後,您就可以呼叫 Gemini API。
傳送即時通訊提示要求
如要建立多輪對話 (例如即時通訊),請先呼叫 startChat()
來初始化即時通訊。接著使用 sendMessageStream()
(或 sendMessage()
) 傳送新使用者訊息,這也會將訊息和回應附加到即時通訊記錄。
與對話內容相關聯的 role
有兩種可能的選項:
user
:提供提示的角色。這個值是呼叫sendMessageStream()
(或sendMessage()
) 的預設值,如果傳遞不同的角色,函式就會擲回例外狀況。model
:提供回應的角色。這個角色可用於以現有history
呼叫startChat()
。
選擇要串流回應 (sendMessageStream
),還是等待回應產生整個結果 (sendMessage
)。
您可以不等待模型產生的完整結果,改用串流處理部分結果,藉此加快互動速度。
本範例說明如何使用 startChat()
和 sendMessageStream()
串流模型的回應:
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")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To stream generated text output, call sendMessageStream and pass in the message
let contentStream = try chat.sendMessageStream("How many paws are in my house?")
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
或者,您可以等待整個結果,而不是串流;只有在模型完成整個產生程序後,系統才會傳回結果。
本範例說明如何使用 startChat()
和 sendMessage()
傳送新使用者訊息:
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")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To generate text output, call sendMessage and pass in the message
let response = try await chat.sendMessage("How many paws are in my house?")
print(response.text ?? "No text in response.")
你還可以做些什麼?
- 瞭解如何在向模型傳送長提示之前,計算符記。
- 設定 Cloud Storage for Firebase,這樣您就能在多模態要求中加入大型檔案,並透過更有條理的解決方案在提示中提供檔案。檔案可包含圖片、PDF、影片和音訊。
- 開始著手準備正式版,包括設定 Firebase App Check,以防範未經授權的用戶端濫用 Gemini API。此外,請務必詳閱製作檢查清單。
試用 Gemini API 的其他功能
- 使用文字提示來生成文字。
- 使用多模態提示 (包括文字、圖片、PDF、影片和音訊) 來生成文字。
- 從文字和多模態提示產生結構化輸出內容 (例如 JSON)。
- 使用函式呼叫,將生成模型連結至外部系統和資訊。
瞭解如何控管內容產生
- 瞭解提示設計,包括最佳做法、策略和提示範例。
- 設定模型參數,例如溫度和輸出符記數量上限 (適用於 Gemini),或顯示比例和人物生成 (適用於 Imagen)。
- 使用安全性設定,調整可能會收到有害回應的機率。
進一步瞭解支援的型號
瞭解可用於各種用途的模型,以及相關配額和價格。針對 Vertex AI in Firebase 的使用體驗提供意見回饋