本页介绍了如何在移动应用或 Web 应用中从 Google AI 客户端 SDK 迁移到 Vertex AI in Firebase 客户端 SDK。Vertex AI in Firebase SDK 适用于 Apple 平台 (Swift)、Android (Kotlin 和 Java)、Web (JavaScript) 和 Flutter (Dart)。
为什么要迁移以使用 Vertex AI?
您可能尝试过使用 Google AI Studio 或 Google AI 客户端 SDK 使用 Gemini API 的替代版本。这些 SDK 对于着手使用 Gemini API 和进行原型设计非常有用。不过,对于直接调用 Gemini API 客户端的正式版或企业级移动应用和 Web 应用,Firebase 强烈建议使用 Firebase SDK 调用 Vertex AI Gemini API。
适用于移动应用和 Web 应用的安全功能
对于移动应用和 Web 应用,安全至关重要,需要特别注意,因为您的代码(包括对 Gemini API 的调用)是在不受保护的环境中运行的。
默认情况下,Vertex AI Gemini API 由 Google Cloud IAM(而非 Google AI Gemini API 等 API 密钥)授权。Vertex AI in Firebase SDK 旨在调用更安全的 Vertex AI Gemini API。
对于移动应用和 Web 应用,您需要保护 Gemini API 和项目资源(例如经过调整的模型)免遭未经授权的客户端滥用。您可以使用 Firebase App Check 验证所有 API 调用是否来自您的实际应用,并且只有在您使用 Vertex AI in Firebase SDK 时,此功能才可用。
专为移动应用和 Web 应用打造的生态系统
Firebase 是 Google 的移动应用和 Web 应用开发平台。 使用 Vertex AI in Firebase SDK 意味着您的应用将位于一个专注于全栈应用和开发者需求的生态系统中。例如,您已准备好执行以下任一项操作:
使用 Cloud Storage for Firebase 在多模态请求中包含大型文件。此外,您还可以利用可处理文件上传和下载的客户端 SDK(即使在网络条件较差的情况下),还可以为最终用户的数据提供更高的安全性。如需了解详情,请参阅有关使用 Cloud Storage for Firebase 的解决方案指南。
使用专为移动应用和 Web 应用构建的数据库 SDK(例如 Cloud Firestore)管理结构化数据。
使用 Firebase Remote Config 动态设置运行时配置(例如位置信息)或替换应用中的值(例如模型名称),而无需发布新的应用版本。
使用 Google Cloud 中的 Vertex AI 的其他优势
随着您在应用和工作流中使用生成式 AI 的成熟,您可能需要一个平台,该平台提供端到端解决方案来构建和部署生成式 AI 应用。Google Cloud 提供了一个全面的工具生态系统,使您能够充分利用生成式 AI 的强大力量(从应用开发的初始阶段到应用部署、应用托管以及大规模管理复杂的数据)。
Google Cloud 的 Vertex AI 平台提供了一套 MLOps 工具,可简化 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”的 Web 界面“Playground”体验,可用于试验提示和模型参数。如需了解如何将 Google AI Studio 提示迁移到 Vertex AI Studio,请参阅 Google Cloud 文档。