使用 Gemini API 构建多轮对话(聊天)


使用 Gemini API,您可以构建多轮自由对话。Vertex AI for Firebase SDK 通过管理对话状态来简化流程,因此与 generateContentStream()generateContent() 不同,您无需自行存储对话记录。

准备工作

完成 Vertex AI for Firebase SDK 入门指南(如果尚未完成)。请确保您已完成以下所有操作:

  • 设置新的或现有的 Firebase 项目,包括使用 Blaze 定价方案以及启用所需的 API。

  • 将您的应用关联至 Firebase,包括注册您的应用以及将 Firebase 配置添加到您的应用。

  • 添加 SDK 并在您的应用中初始化 Vertex AI 服务和生成模型。

将应用关联到 Firebase、添加 SDK 并初始化 Vertex AI 服务和生成模型后,您就可以调用 Gemini API 了。

发送聊天提示请求

如需构建多轮对话(如聊天),请先通过调用 startChat() 初始化聊天。然后,使用 sendMessageStream()(或 sendMessage())发送一条新的用户消息,此操作还会将消息和响应附加到聊天记录中。

对于与对话内容关联的 role,有两个可能的选项:

  • user:提供提示的角色。该值是调用 sendMessageStream()(或 sendMessage())的默认值,如果传递了其他角色,该函数会抛出异常。

  • model:提供响应的角色。使用现有 history 调用 startChat() 时,可以使用此角色。

选择您是想要流式传输响应 (sendMessageStream),还是等到整个结果生成 (sendMessage) 后再等待响应。

流式处理

您可以不等待模型生成的完整结果,而是使用流式传输来处理部分结果,从而实现更快的互动。

以下示例展示了如何使用 sendMessageStream() 流式传输来自模型的响应:

不使用流式传输

或者,您也可以等待整个结果,而不是流式传输;结果仅在模型完成整个生成过程后返回。

以下示例展示了如何使用 sendMessage() 发送新的用户消息:

了解如何选择 Gemini 模型,并视需要选择适合您的用例和应用的位置

您还能做些什么?

  • 了解如何在向模型发送长提示之前计算令牌数
  • 设置 Cloud Storage for Firebase,以便您可以使用 Cloud Storage 网址在多模式请求中包含大型文件。文件可包括图片、PDF、视频和音频。
  • 开始考虑为正式版做好准备,包括设置 Firebase App Check 来保护 Gemini API 免遭未经授权的客户端滥用。

试用 Gemini API 的其他功能

了解如何控制内容生成

您还可以使用 Vertex AI Studio 对提示和模型配置进行实验。

详细了解 Gemini 模型

了解适用于各种使用场景的模型及其配额和价格


提供有关 Vertex AI for Firebase 使用体验的反馈