迁移到使用 Vertex AI in Firebase 的 GA 版


Vertex AI in Firebase 已于 2024 年 10 月 21 日发布正式版 (GA)。

如果您使用的是 Vertex AI in Firebase 库的预览版 (FirebaseVertexAI-Preview),则需要进行以下更改,才能升级为使用该库的 GA 版 (FirebaseVertexAI)。

下面简要列出了迁移所需的更改:

在 Firebase 项目中启用新的必需 API(对所有人均必需)

您需要在 Firebase 项目中启用 Vertex AI in Firebase API,并将其添加到 Firebase API 密钥的许可名单中。这是新推出的 API,必须使用 Vertex AI in Firebase 的 GA 版本。

  1. Firebase 控制台中,前往使用 Gemini 构建页面

  2. Vertex AI in Firebase 卡片中,点击开始以启动工作流,该工作流可帮助您启用此 API 并将其添加到 Firebase API 密钥的许可名单中。

  3. 您可以在控制台中跳过工作流的其余部分。

更新到该库的 GA 版本(所有开发者都必须更新)

请按照以下说明更新应用的代码库,以使用该库的 GA 版本:

  1. 在 Xcode 中,打开您的应用项目,然后使用以下任一选项将 Firebase 软件包更新到 11.4.0 或更高版本:

    • 方法 1:更新所有软件包:依次选择 File(文件)> Packages(软件包)> Update to Latest Package Versions(更新到最新的软件包版本)。

    • 方法 2:单独更新 Firebase:前往名为软件包依赖项的部分,找到 Firebase 软件包。右键点击 Firebase 软件包,然后选择 Update Package

  2. 确保 Firebase 软件包现在显示的版本为 11.4.0 或更高版本。如果不符合,请验证您指定的软件包要求是否允许更新到 11.5.0 或更高版本。

  3. Project Editor 中选择应用的目标,然后前往 Frameworks, Libraries, and Embedded Content(框架、库和嵌入内容)部分。

  4. 选择 + 按钮,然后从 Firebase 软件包中添加 FirebaseVertexAI

  5. 选择 FirebaseVertexAI-Preview,然后按 按钮。

其他更改(根据您使用的功能而定)

我们对 SDK 的 GA 版本进行了多项更改。请查看以下列表,了解您可能需要在代码中进行哪些更改,以便在应用中使用 GA 版 SDK。

  • 函数调用
    如果您在 GA 之前实现了此功能,则需要更新架构定义方式。建议您查看更新后的函数调用指南,了解如何编写函数声明。

  • 使用 responseSchema 生成结构化输出(例如 JSON)
    如果您在 GA 发布之前实现了此功能,则需要更新架构定义方式。建议您查看新的结构化输出指南,了解如何编写 JSON 架构。

  • 超时

    • 将请求的默认超时时间更改为 180 秒。
  • 枚举

    • 将大多数 enum 类型替换成了包含静态变量的 struct。此更改让您能够更灵活地以向后兼容的方式改进 API。现在,使用 switch 语句时,您必须添加 default: 情况来涵盖未知或未处理的值,包括将来添加到 SDK 中的新值。

    • BlockThreshold 枚举重命名为 HarmBlockThreshold;此类型现在是 struct

    • 从以下枚举(现在是 struct)中移除了 unknownunspecified 情况:HarmCategoryHarmBlockThresholdHarmProbabilityBlockReasonFinishReason

    • 将枚举 ModelContent.Part 替换为名为 Part 的协议,以允许以向后兼容的方式添加新类型。内容部分部分对此变更进行了更详细的介绍。

  • 内容部分

    • 移除了 ThrowingPartsRepresentable 协议,并简化了 ModelContent 的初始化程序,以避免偶尔出现编译器错误。未正确编码的图片在 generateContent 中使用时仍会抛出错误。

    • ModelContent.Part 情况替换为符合 Part 协议的以下 struct 类型:

      • .textTextPart
      • .dataInlineDataPart
      • .fileDataFileDataPart
      • .functionCallFunctionCallPart
      • .functionResponseFunctionResponsePart
  • 危害类别

    • 更改了 HarmCategory,使其不再嵌套在 SafetySetting 类型中。如果您将其称为 SafetySetting.HarmCategory,则可以将其替换为 HarmCategory
  • 安全反馈

    • 移除了 SafetyFeedback 类型,因为它未在任何响应中使用。
  • 引用元数据

    • CitationMetadata 中的 citationSources 属性重命名为 citations
  • 应计费字符总数

    • CountTokensResponse 中的 totalBillableCharacters 属性更改为可选属性,以反映未发送任何字符的情况。
  • 候选回答

    • CandidateResponse 重命名为 Candidate,以与其他平台保持一致。
  • 生成配置

    • GenerationConfig 的公共属性更改为 internal。它们仍然可以在初始化程序中进行配置。