ADK Gemini Live API 工具包简介

1. 什么是双向流式传输?

双向流式传输(双向流式传输)可在应用与 AI 模型之间实现同步双向通信。与您发送完整消息并等待完整回复的传统请求-响应模式不同,双向流式传输允许:

  • 连续输入:在捕获音频、视频或文本时进行流式传输
  • 实时输出:在生成 AI 回答时接收回答
  • 自然中断:用户可以在 AI 回答到一半时中断其回答,就像在人类对话中一样

6e82a81aa114e116.png

重要性:双向流式传输让 AI 对话更自然。AI 可以在您仍在提供上下文时做出回答,并且您可以在听到足够的信息后打断它,就像与人交谈一样。

什么是 ADK Gemini Live API 工具包?

智能体开发套件 (ADK) 可针对 Gemini Live API 提供高级别抽象,处理实时流式传输的复杂管道,以便您专注于构建应用。

b0066935f4c245d2.png

ADK Gemini Live API 工具包可管理:

  • 连接生命周期:建立、维护和恢复 WebSocket 连接
  • 消息路由:将音频、文本和图片定向到正确的处理程序
  • 会话状态:在重新连接时保留对话历史记录
  • 工具执行:自动调用和从函数调用中恢复

为什么选择 ADK 而不是原始 Live API?

您可以直接基于 Gemini Live API 进行构建,但 ADK 会处理复杂的基础设施,因此您可以专注于应用:

61c685c2703e3aac.png

功能

Raw Live API

ADK Gemini Live API 工具包

代理框架

从头开始构建

具有工具、评估和安全性的单代理/多代理

工具执行

手动处理

自动并行执行

连接管理

手动重新连接

透明会话恢复

活动模型

自定义结构

统一的类型化 Event 对象

异步框架

人工协调

LiveRequestQueue + run_live() 生成器

会话持久性

手动实现

内置 SQL、Vertex AI 或内存中

总结:ADK 可将数月的基础设施开发时间缩短为数天的应用开发时间。您只需专注于智能体的功能,无需了解流式传输的运作方式。

实际应用场景

  • 客户服务:客户通过手机摄像头展示有缺陷的咖啡机,同时说明问题。AI 会识别模型和故障点,客户可以在对话过程中打断 AI,以更正详细信息。
  • 电子商务:一位买家对着网络摄像头举起一件衣服,询问“帮我找一双能搭配这条裤子的鞋子”。智能体分析风格,并进行流畅的来回对话:“展示一些更休闲的款式”→“这款运动鞋怎么样?”→“添加 10 号蓝色款。”
  • 现场服务:一位佩戴智能眼镜的技术人员在提问时,串流自己的视野:“我听到这个压缩机发出奇怪的声音,你能识别出来吗?”代理会提供分步指导,无需动手操作。
  • 医疗保健:患者分享皮肤状况的实时视频。AI 会执行初步分析、提出澄清问题,并指导后续步骤。
  • 金融服务:客户查看自己的投资组合,而代理则显示图表并模拟交易影响。客户可以共享屏幕,以便讨论具体的新闻报道。

Shopper's Concierge 2 演示:使用 ADK Gemini Live API 工具包和 Vertex AI Vector Search、Embeddings、Feature Store 和 Ranking API 构建的电子商务实时智能体 RAG 演示:

Shopper's Concierge 2 演示

了解详情:开发者指南

如需深入了解,请参阅 ADK Gemini Live API 工具包开发者指南,该指南共分为 5 部分,涵盖从架构到生产部署的各个方面:

部分

焦点

学习内容

第 1 部分

基础

架构、Live API 平台、4 阶段生命周期

第 2 部分

上行

通过 LiveRequestQueue 发送文本、音频、视频

第 3 部分

下行

事件处理、工具执行、多智能体工作流

第 4 部分

配置

会话管理、配额、生产控制

第 5 部分

多模态

音频规格、模型架构、高级功能

2. 研讨会概览

构建内容

在这场实操研讨会中,您将从头开始构建一个完整的双向流式 AI 应用。完成本教程后,您将获得一个可正常运行的语音 AI,该 AI 可以:

  • 接受文本、音频和图片输入
  • 以流式文本或自然语音回答
  • 自然地处理中断
  • 使用 Google 搜索等工具

与阅读文档不同,您将逐步检查每个组件,并在逐步构建的过程中了解各个部分如何组合在一起。

ADK Gemini Live API 工具包演示

学习方法

我们采用增量 build 方法:

  • 第 1 步:最小 WebSocket 服务器 →“Hello World”响应
  • 第 2 步:添加智能体 → 定义 AI 行为和工具
  • 第 3 步:应用初始化 → Runner 和会话服务
  • 第 4 步:会话初始化 → RunConfig 和 LiveRequestQueue
  • 步骤 5:上游任务 → 客户端到队列通信
  • 第 6 步:下游任务 → 向客户端流式传输事件
  • 第 7 步:添加音频 → 语音输入和输出
  • 第 8 步:添加图片输入 → 多模态 AI

每个步骤都基于上一个步骤。您将在每个步骤后进行测试,以查看自己的进度。

前提条件

  • 启用了结算功能的 Google Cloud 账号
  • Python 和异步编程 (async/await) 基础知识
  • 可访问麦克风和网络摄像头的网络浏览器(建议使用 Chrome)

时间估算

  • 完整版研讨会:约 90 分钟
  • 快速版(仅包含第 1-4 步):约 45 分钟

3. 研讨会

按照此处的说明开始工作坊:

https://github.com/kazunori279/adk-streaming-guide/blob/main/workshops/workshop.md

4. 总结与要点

您构建的内容

您从头开始构建了一个完整的双向流式 AI 应用。该应用可处理文字、语音和图片输入,并提供实时流式响应,是构建可用于生产用途的对话式 AI 的基础。

组件

功能

Step

代理

定义 AI 个性、指令和可用工具(例如 Google 搜索)

第 2 步

SessionService

在重新连接后保留对话记录

第 3 步

运行程序

编排直播生命周期,将代理连接到 Live API

第 3 步

RunConfig

配置响应模态(文本/音频)、转写、会话恢复

第 4 步

LiveRequestQueue

统一的界面,用于向模型发送文本、音频和图片

第 5 步

run_live()

异步生成器,用于生成来自模型的流式传输事件

第 6 步

send_realtime()

发送音频/图片 blob 以实现连续流式输入

第 7-8 步

资源

请参阅以下官方资源,继续学习。ADK Gemini Live API 工具包指南更深入地介绍了本研讨会中的所有内容。

资源

网址

ADK 文档

https://google.github.io/adk-docs/

ADK Gemini Live API 工具包指南

https://google.github.io/adk-docs/streaming/dev-guide/

Gemini Live API

https://ai.google.dev/gemini-api/docs/live

Vertex AI Live API

https://cloud.google.com/vertex-ai/generative-ai/docs/live-api

ADK 示例代码库

https://github.com/google/adk-samples