本頁面說明如何在行動或網頁應用程式中,從 Google AI 用戶端 SDK 遷移至 Vertex AI in Firebase 用戶端 SDK。Vertex AI in Firebase SDK 適用於 Apple 平台 (Swift)、Android (Kotlin 和 Java)、網頁 (JavaScript) 和 Flutter (Dart)。
為什麼要遷移至 Vertex AI?
您可能已使用 Google AI Studio 或 Google AI 用戶端 SDK,嘗試其他版本的 Gemini API。這些 SDK 可協助您開始使用 Gemini API 和原型設計。不過,如果是直接呼叫 Gemini API 用戶端的正式版或企業規模行動和網頁應用程式,Firebase 強烈建議您使用 Firebase SDK 呼叫 Vertex AI Gemini API。
行動和網頁應用程式的安全性功能
對行動和網頁應用程式來說,安全性至關重要且需要特別考量,因為您的程式碼 (包括對 Gemini API 的呼叫) 在未受保護的環境中執行。
根據預設,Vertex AI Gemini API 會由 Google Cloud IAM 授權 (而非由 Google AI Gemini API 之類的 API 金鑰授權)。Vertex AI in Firebase SDK 是為了呼叫更安全的 Vertex AI Gemini API 而建構。
針對行動和網頁應用程式,您必須防止 Gemini API 和專案資源 (例如調整過的模型) 遭到未經授權的用戶端濫用。您可以使用 Firebase App Check 驗證所有 API 呼叫是否來自實際應用程式,而且只有在使用 Vertex AI in Firebase SDK 時才能使用這項功能。
專為行動和網頁應用程式建構的生態系統
Firebase 是 Google 的行動和網頁應用程式開發平台。使用 Vertex AI in Firebase SDK 表示您的應用程式處於以全堆疊應用程式和開發人員需求為重點的系統中。舉例來說,您可以執行下列任何操作 (以及更多操作):
使用 Cloud Storage for Firebase 在多模態要求中加入大型檔案。此外,請善用用戶端 SDK,處理檔案上傳和下載作業 (即使在網路連線不佳的情況下),並為使用者端資料提供更完善的安全防護。詳情請參閱使用 Cloud Storage for Firebase 的解決方案指南。
使用專為行動和網頁應用程式建構的資料庫 SDK (例如 Cloud Firestore) 管理結構化資料。
動態設定執行階段設定 (例如位置),或在應用程式中交換值 (例如型號名稱),不必使用 Firebase Remote Config 發布新版應用程式。
使用 Google Cloud 的 Vertex AI 可享其他福利
在應用程式和工作流程中使用生成式 AI 已成熟,因此您可能需要提供端對端解決方案的平台,用於建構及部署生成式 AI 應用程式。Google Cloud 提供全方位的工具生態系統,讓您充分發揮生成式 AI 的威力,從應用程式開發的初始階段,到應用程式部署、應用程式代管,以及大規模管理複雜資料,都能運用這項技術。
Google Cloud 的 Vertex AI 平台提供一套機器學習運作工具,可簡化 AI 模型的使用、部署及監控作業,以提高效率和可靠性。此外,整合資料庫、DevOps 工具、記錄、監控和 IAM 可提供全面性方法,管理整個生成式 AI 生命週期。
如要進一步瞭解 Vertex AI 的用途,請參閱 Google Cloud 說明文件。
遷移至 Vertex AI in Firebase SDK
遷移至 Vertex AI in Firebase SDK 需要完成三個主要步驟:
設定新的或現有的 Firebase 專案,並將應用程式連結至 Firebase。
遷移程式碼集,只需要變更 SDK 和初始化程式碼 (包括模型名稱)。實際呼叫 Gemini API 的程式碼不需要進行任何修改。
刪除所有未使用的 API 金鑰,並停用未使用的 API。
步驟 1:設定 Firebase 專案,並將應用程式連結至 Firebase
即使您已熟悉 Firebase,也請詳閱本節,確保 Firebase 專案和應用程式已設定為使用 Vertex AI in Firebase SDK。
步驟 2:遷移程式碼集
請選取應用程式的平台,查看特定平台的操作說明。
Google AI SDK 和 Vertex AI in Firebase SDK 的設計目的,是為了讓兩個平台之間的遷移作業盡可能簡單。
如要遷移,您只需變更要整合至應用程式程式碼庫的 SDK,以及服務和產生模型的初始化程序。您不需要修改任何實際呼叫 Gemini API 的程式碼!
變更 SDK
Google AI
Kotlin+KTX
dependencies {
// ... other androidx dependencies
// add the dependency for the Google AI client SDK for Android
implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}
Java
dependencies {
// ... other androidx dependencies
// add the dependency for the Google AI client SDK for Android
implementation("com.google.ai.client.generativeai:generativeai:VERSION")
// Required for one-shot operations (to use `ListenableFuture` from Reactive Streams)
implementation("com.google.guava:guava:31.0.1-android")
// Required for streaming operations (to use `Publisher` from Guava Android)
implementation("org.reactivestreams:reactive-streams:1.0.4")
}
Vertex AI in Firebase
Kotlin+KTX
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI in Firebase SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.2")
}
Java
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI in Firebase SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.2")
// Required for one-shot operations (to use `ListenableFuture` from Guava Android)
implementation("com.google.guava:guava:31.0.1-android")
// Required for streaming operations (to use `Publisher` from Reactive Streams)
implementation("org.reactivestreams:reactive-streams:1.0.4")
}
變更初始化
Google AI
Kotlin+KTX
val generativeModel = GenerativeModel(modelName = "MODEL_NAME",
// Access your API key as a Build Configuration variable
apiKey = BuildConfig.apiKey
)
Java
GenerativeModel gm = new GenerativeModel("MODEL_NAME",
// Access your API key as a Build Configuration variable
BuildConfig.apiKey
);
// Use the GenerativeModelFutures Java compatibility layer which offers support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
Vertex AI in Firebase
Kotlin+KTX
val generativeModel = Firebase.vertexAI.generativeModel("MODEL_NAME")
Java
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("MODEL_NAME");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
更新匯入作業
下列程式碼片段使用 Chat
、Content
和 GenerativeModelFutures
類別做為範例,但同樣適用於相同套件名稱下的其他類別。
Google AI
Kotlin+KTX
import com.google.ai.client.generativeai.Chat
import com.google.ai.client.generativeai.type.Content
import com.google.ai.client.generativeai.java.GenerativeModuleFutures
Java
import com.google.ai.client.generativeai.Chat;
import com.google.ai.client.generativeai.type.Content;
import com.google.ai.client.generativeai.java.GenerativeModuleFutures;
Vertex AI in Firebase
Kotlin+KTX
import com.google.firebase.vertexai.Chat
import com.google.firebase.vertexai.type.Content
import com.google.firebase.vertexai.java.GenerativeModuleFutures
Java
import com.google.firebase.vertexai.Chat;
import com.google.firebase.vertexai.type.Content;
import com.google.firebase.vertexai.java.GenerativeModuleFutures;
步驟 3:刪除所有未使用的 API 金鑰,並停用未使用的 API
如果您不再需要使用 Google AI API 金鑰,請按照安全性最佳做法刪除該金鑰。您可以在 Google AI Studio 的「API 金鑰」部分查看及刪除 Google AI API 金鑰。
此外,如果您不再使用 Google AI Gemini API,請在專案中停用。您可以在 Google Cloud 控制台的「Generative Language API (generativelanguage.googleapis.com
)」頁面中執行這項操作。(「生成式語言 API」是 Google AI Gemini API 的正式名稱)。
您還能做些什麼?
- Google AI 和 Vertex AI 都提供名為「AI Studio」的網頁 UI「遊樂場」體驗,可用於測試提示和模型參數。如要瞭解如何將 Google AI Studio 提示遷移至 Vertex AI Studio,請參閱 Google Cloud 說明文件。