迁移到使用 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 控制台中,前往 Build with Gemini 页面

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

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

更新到库的正式版(所有人都需要)

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

  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.4.0 或更高版本。

  3. 项目编辑器中选择应用的目标,然后前往框架、库和嵌入式内容部分。

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

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

其他更改(具体取决于您使用的功能)

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

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

  • 使用 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。它们都可以在初始化程序中配置。