ADK 的 Apigee API Hub 工具¶
ApiHubToolset 让你可以通过几行代码将 Apigee API hub 中的任何文档化 API 转换为工具。本节向你展示分步骤说明,包括设置身份验证以安全连接到你的 API。
前置条件
- 安装 ADK
- 安装 Google Cloud CLI。
- 具有文档化 (即 OpenAPI 规范) API 的 Apigee API hub 实例
- 设置你的项目结构并创建所需文件
创建 API Hub 工具集¶
注意:此教程包括智能体创建。如果你已经有一个智能体,你只需要遵循这些步骤的一部分。
-
获取你的访问令牌,以便 APIHubToolset 可以从 API Hub API 获取规范。在你的终端运行以下命令
-
确保使用的账户具有所需权限。你可以使用预定义角色
roles/apihub.viewer或分配以下权限:- apihub.specs.get (必需)
- apihub.apis.get (可选)
- apihub.apis.list (可选)
- apihub.versions.get (可选)
- apihub.versions.list (可选)
- apihub.specs.list (可选)
-
使用
APIHubToolset创建工具。将以下内容添加到tools.py如果你的 API 需要身份验证,你必须为工具配置身份验证。以下代码示例演示了如何配置 API 密钥。ADK 支持基于令牌的身份验证 (API 密钥、Bearer 令牌)、服务账户和 OpenID Connect。我们将很快添加对各种 OAuth2 流的支持。
from google.adk.tools.openapi_tool.auth.auth_helpers import token_to_scheme_credential from google.adk.tools.apihub_tool.apihub_toolset import APIHubToolset # 为你的 API 提供身份验证。如果你的 API 不需要身份验证,则不需要。 auth_scheme, auth_credential = token_to_scheme_credential( "apikey", "query", "apikey", apikey_credential_str ) sample_toolset = APIHubToolset( name="apihub-sample-tool", description="示例工具", access_token="...", # 复制你在步骤 1 中生成的访问令牌 apihub_resource_name="...", # API Hub 资源名称 auth_scheme=auth_scheme, auth_credential=auth_credential, )对于生产部署,我们建议使用服务账户而不是访问令牌。在上面的代码片段中,使用
service_account_json=service_account_cred_json_str并提供你的安全账户凭据而不是令牌。对于 apihub_resource_name,如果你知道用于你的 API 的 OpenAPI Spec 的特定 ID,请使用
`projects/my-project-id/locations/us-west1/apis/my-api-id/versions/version-id/specs/spec-id`。 如果你希望 Toolset 自动从 API 中提取第一个可用的规范,请使用`projects/my-project-id/locations/us-west1/apis/my-api-id` -
创建你的智能体文件 Agent.py 并将创建的工具添加到你的智能体定义中:
-
配置你的
__init__.py以暴露你的智能体 -
启动 Google ADK Web UI 并尝试你的智能体:
然后转到 http://localhost:8000 从 Web UI 尝试你的智能体。