用于 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。如果你希望工具集自动从 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 尝试你的智能体。