快速入门(流式处理 / Python)¶
通过本快速入门,你将学习如何创建一个简单的智能体,并使用 ADK 流式处理来实现低延迟、双向的语音和视频通信。我们将安装 ADK,设置一个基础的"Google 搜索"智能体,尝试用 adk web
工具以流式方式运行智能体,然后讲解如何结合 ADK 流式处理和 FastAPI 自己构建一个简单的异步 web 应用。
注意: 本指南假设你有在 Windows、Mac 和 Linux 环境中使用终端的经验。
支持语音/视频流式处理的模型¶
为了在 ADK 中使用语音/视频流式处理,你需要使用支持 Live API 的 Gemini 模型。你可以在文档中找到支持 Gemini Live API 的模型 ID:
1. 设置环境并安装 ADK¶
创建并激活虚拟环境(推荐):
# 创建虚拟环境
python -m venv .venv
# 激活(每次打开新终端时)
# macOS/Linux: source .venv/bin/activate
# Windows CMD: .venv\Scripts\activate.bat
# Windows PowerShell: .venv\Scripts\Activate.ps1
安装 ADK:
2. 项目结构¶
创建以下带有空文件的文件夹结构:
adk-streaming/ # 项目文件夹
└── app/ # web 应用文件夹
├── .env # Gemini API 密钥
└── google_search_agent/ # 智能体文件夹
├── __init__.py # Python 包
└── agent.py # 智能体定义
agent.py¶
将以下代码块复制粘贴到 agent.py
。
对于 model
,请按照前面模型部分中的描述仔细检查模型 ID。
from google.adk.agents import Agent
from google.adk.tools import google_search # 导入工具
root_agent = Agent(
# 智能体的唯一名称
name="basic_search_agent",
# 智能体将使用的大型语言模型 (LLM)
# 请填写支持直播的最新模型 ID,参考链接为:
# # https://google.github.io/adk-docs/get-started/streaming/quickstart-streaming/#supported-models
model="...", # 举例:model="gemini-2.0-flash-live-001" 或 model="gemini-2.0-flash-live-preview-04-09"
# 智能体目的的简短描述
description="Agent to answer questions using Google Search.",
# 设置智能体行为的指令
instruction="You are an expert researcher. You always stick to the facts.",
# 添加 google_search 工具,使用 Google 搜索进行接地
tools=[google_search]
)
agent.py
是存储所有智能体逻辑的地方,你必须定义一个 root_agent
。
注意你是如何轻松集成 使用 Google 搜索进行基础信息获取 功能的。Agent
类和 google_search
工具处理与 LLM 的复杂交互以及与搜索 API 的基础信息获取,让你可以专注于智能体的目的和行为。
将以下代码块复制粘贴到 __init__.py
和 main.py
文件中。
3. 设置平台¶
要运行智能体,请从 Google AI Studio 或 Google Cloud Vertex AI 中选择一个平台:
- 从 Google AI Studio 获取 API 密钥。
-
打开位于 (
app/
) 中的.env
文件并复制粘贴以下代码。 -
将
PASTE_YOUR_ACTUAL_API_KEY_HERE
替换为你的实际API KEY
。
- 你需要一个现有的 Google Cloud 账户和项目。
- 设置 Google Cloud 项目
- 设置 gcloud CLI
- 通过在终端运行
gcloud auth login
来验证 Google Cloud。 - 启用 Vertex AI API。
-
打开位于 (
app/
) 中的.env
文件。复制粘贴以下代码并更新项目 ID 和位置。
4. 使用 adk web
尝试智能体¶
现在可以尝试智能体了。运行以下命令来启动开发 UI。首先,确保将当前目录设置为 app
:
同时,使用以下命令设置 SSL_CERT_FILE
变量。这是后面进行语音和视频测试所必需的。
然后,运行开发 UI:
Windows 用户注意事项
如果遇到 _make_subprocess_transport NotImplementedError
错误,请考虑使用 adk web --no-reload
替代。
打开提供的 URL(通常是 http://localhost:8000
或 http://127.0.0.1:8000
)直接在你的浏览器中。此连接完全在你的本地机器上。选择 google_search_agent
。
尝试文本¶
通过在 UI 中输入以下提示来尝试。
- 纽约的天气如何?
- 纽约现在几点?
- 巴黎的天气如何?
- 巴黎现在几点?
智能体将使用 google_search 工具获取最新信息来回答这些问题。
尝试语音和视频¶
要尝试语音功能,重新加载网页浏览器,点击麦克风按钮启用语音输入,并用语音提出相同的问题。你将实时听到回答。
要尝试视频功能,重新加载网页浏览器,点击摄像头按钮启用视频输入,并提出类似"你看到什么?"的问题。智能体将回答它在视频输入中看到的内容。
(只需点击一次麦克风或摄像头按钮即可。您的语音或视频将被流式传输到模型,模型的响应也将连续流式传输回来。多次点击麦克风或摄像头按钮不被支持。)
停止工具¶
通过在控制台按 Ctrl-C
停止 adk web
。
ADK 流式处理说明¶
以下功能将在未来版本的 ADK 流式处理中支持:回调、长时间运行工具、示例工具和 Shell 智能体(如 SequentialAgent)。
恭喜!你已成功创建并与使用 ADK 的第一个流式处理智能体进行了交互!
下一步:构建自定义流式处理应用¶
在 自定义音频流式应用 教程中,将介绍如何用 ADK Streaming 和 FastAPI 构建一个支持实时、双向音频和文本通信的自定义异步 web 应用,包括服务器和客户端代码。