您可以使用 Firebase AI Logic 通过混合推理构建 AI 赋能的 Apple 应用和功能。混合推理可在设备端模型(尤其是 Apple 的基础模型框架)可用时使用该模型运行推理,否则会无缝回退到云端托管的 Google 模型(反之亦然)。
本页面介绍了如何开始使用客户端 SDK,并展示了其他配置选项和功能,例如温度。
请注意,对于使用 Firebase AI Logic SDK v12.13.0 及更高版本且在已启用 Apple Intelligence 的设备上运行的 Apple 应用,支持通过 Firebase AI Logic 进行设备端推理。它受 Apple 的基础模型框架的合理使用要求的约束。
推荐的用例
使用设备端模型进行推理可带来以下优势:
- 隐私保护更完善
- 免费推理
- 离线功能
使用混合功能可提供以下优势:
- 无论最终用户使用何种设备,都能为所有客户提供相似的应用体验
- 无论互联网连接情况、配额限制或设备功能如何,都能提高生成式 AI 功能的可用性
支持的功能、API 和设备
在使用 Firebase AI Logic 实现混合推理和设备端推理之前,请先查看本部分,了解 Apple 应用支持哪些功能。
设备端推理支持的功能
设备端推理仅支持文本生成,具体而言,支持以下文本生成功能:
请务必查看本页底部有关尚不支持的混合推理或设备端推理的详细列表。
支持的 API 和设备
云端推理使用您选择的 Gemini API 提供方(Gemini Developer API 或 Vertex AI Gemini API)。
设备端推理使用 Apple 的基础模型框架,该框架仅适用于已启用 Apple Intelligence 的设备。启用 Apple 智能时,系统会自动下载设备端模型。
开始使用
请务必查看上文,了解支持的功能、API 和设备。
这些入门步骤介绍了您要发送的任何受支持的提示请求所需的一般设置。
第 1 步:设置 Firebase 项目并将应用连接到 Firebase
登录 Firebase 控制台,然后选择您的 Firebase 项目。
在 Firebase 控制台中,依次前往 AI 服务 > AI 逻辑。
点击开始,启动引导式工作流,帮助您为项目设置必需的 API 和资源。
设置项目以使用“Gemini API”提供方。
我们建议您先使用 Gemini Developer API。 您可以随时设置 Vertex AI Gemini API(以及其结算要求)。
对于 Gemini Developer API,控制台将在您的项目中启用所需的 API 并创建 Gemini API 密钥。
请勿将此 Gemini API 密钥添加到应用的代码库中。了解详情。如果控制台的工作流程中出现提示,请按照屏幕上的说明注册您的应用并将其连接到 Firebase。
继续执行本指南中的下一步,将 SDK 添加到您的应用。
第 2 步:添加所需的 SDK
使用 Swift Package Manager (SPM) 安装和管理 Xcode 依赖项。只有在使用 SPM 时,才能获得混合支持。
Firebase AI Logic 库提供对用于与生成模型互动的 API 的访问权限。该库包含在 Firebase SDK for Apple 平台 (firebase-ios-sdk) 中。
如果您已在使用 Firebase,请确保您的 Firebase 软件包为 v12.13.0 或更高版本。
在 Xcode 中打开您的应用项目,然后依次点击 File(文件)> Add Package Dependencies(添加软件包依赖项)。
出现提示时,添加 Firebase Apple 平台 SDK 代码库:
https://github.com/firebase/firebase-ios-sdk选择最新的 SDK 版本。
选择
FirebaseAILogic库。
完成之后,Xcode 将会自动开始在后台解析和下载您的依赖项。
第 3 步:初始化服务并创建模型会话实例
|
点击您的 Gemini API 提供商,以查看此页面上特定于提供商的内容和代码。 |
在向模型发送提示请求之前,请先设置以下内容。
为所选的 Gemini API 提供商初始化服务。
创建具有
HybridModel的GenerativeModelSession实例。根据您的偏好设置
primary和secondary模型。您可以设置尝试推理的顺序:先尝试设备端推理,但允许回退到云端:将
primary设置为“系统”模型,并将secondary设置为云端模型。先尝试云端推理,但允许回退到设备端:将
primary设置为云端模型,并将secondary设置为“系统”模型。
请注意,该 SDK 仅支持设置单个
model,这意味着该 SDK 将仅尝试设备端或云端推理。不过,如需获得混合体验,您需要创建HybridModel并同时设置primary和secondary模型。如需详细了解“推理模式”(尝试推理的顺序)的行为,请参阅配置选项。
以下示例展示了如何先尝试设备端推理,但允许回退到云托管模型:
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a cloud model that supports your use case
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case
let systemModel = FirebaseAI.SystemLanguageModel.default
// Create a Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
primary: systemModel,
secondary: cloudModel
)
// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
model: hybridModel,
)
第 4 步:向模型发送提示请求
本部分介绍了如何执行以下操作:
根据纯文本输入生成文本
| 在尝试此示例之前,请确保您已完成本指南的使用入门部分。 |
如需根据包含文本的提示生成文本,请使用 respond(to:),如下所示:
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)
从纯文本输入中流式传输文本
| 在尝试此示例之前,请确保您已完成本指南的使用入门部分。 |
您可以不等待模型生成完整结果,而是使用流式传输来处理部分结果,从而实现更快的互动。如需从包含文本的提示流式传输生成的文本,请使用 streamResponse(to:),如下所示:
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
print(snapshot.content)
}
您还可以做些什么?
您可以为混合体验使用各种其他配置选项和功能:
混合推理或设备端推理尚不支持的功能
作为实验性版本,Firebase AI Logic 或云托管模型的所有功能均不受支持。
以下功能不支持混合或设备端实现:Imagen 模型、Gemini Live API 和提示模板。此外,不应依赖于令牌计数,因为云托管模型和设备端模型之间的计数会有所不同,因此没有直观的后备方案。
以下功能尚不支持设备端推理。 如果您想使用上述任何功能,建议您仅使用云托管模型,以获得更一致的体验。
根据图片、音频、视频和文档 (PDF) 等多模态输入生成文本
生成媒体内容,例如图片、音频或视频
发送的请求超过 4096 个 token(或大约 3000 个英文单词)。
为设备端模型提供内置工具,帮助其生成回答(例如代码执行、网址上下文和“使用 Google 搜索进行接地”)
Firebase 控制台中的 AI 监控功能不会显示任何有关设备端推理(包括设备端日志)的数据。不过,任何使用云端托管模型的推理都可以通过 Firebase AI Logic 像其他推理一样进行监控。
其他限制
除了上述限制之外,设备端推理还存在以下限制:
应用最终用户必须使用已启用 Apple Intelligence 的设备。
您的应用只能在前台运行时运行设备端推理。
就您使用 Firebase AI Logic 的体验提供反馈