使用API调用观测/评估/沙箱/网关/记忆库/运行时接口
此类接口与单/多智能体、工作流的调用方式有所差异。认证鉴权信息中的Authorization、X-Sdk-Date的值需要通过一个API签名SDK获取。
这类接口的域名地址为:agentarts.cn-southwest-2.myhuaweicloud.com
接口Header由三个参数构成:Authorization、X-Sdk-Date、Content-Type,其中Content-Type的固定值为application/json。
本案例以Python调用“获取评测集列表”接口(GET /v1/ops/datasets)为例进行讲解。不需要在AgentArts平台上创建评测集也可以调用该接口。
步骤一:了解接口参数
获取评测集列表接口请求URI如下:
GET /v1/ops/datasets
拼接域名地址后,完整的调用接口为:https://agentarts.cn-southwest-2.myhuaweicloud.com/v1/ops/datasets
本接口的必填参数只有Header的Authorization、X-Sdk-Date、Content-Type,其中Authorization、X-Sdk-Date参数取值方法请参见后续步骤,Content-Type的固定值为application/json。参数含义如下:
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Content-Type |
是 |
String |
参数解释: 消息体编码格式。用于告知服务端请求体(Body)所采用的主体数据类型,以便服务端正确解析。 约束限制: 不涉及 取值范围: 不涉及 默认取值: application/json |
|
Authorization |
是 |
String |
参数解释: 签名认证信息,当使用AK/SK方式认证时,使用SDK对请求进行签名的过程中会自动填充该字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
|
X-Sdk-Date |
是 |
String |
参数解释: 请求发送的时间,当使用AK/SK方式认证时,使用SDK对请求进行签名的过程中会自动填充该字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
步骤二:构造接口调用脚本
安装运行环境:
- 安装 Python:如果您还没装,去python.org下载并安装(记得安装时勾选 "Add Python to PATH")。
- 安装 requests 库:
打开电脑的“命令提示符”(Windows按Win+R键输入cmd),输入以下命令并按回车:
pip install requests
获取API签名所需的SDK包:
- 在签名指南文档中下载Python SDK,并在本地解压。签名指南文档中的其他内容本案例中可不用关注。
图1 获取SDK
解压后的文件目录结构如下:
ApiGateway-python-sdk/ ← 根目录(解压出来的文件夹) │ ├── apig_sdk/ ← 【核心签名库,不要动!】 │ ├── __init__.py ← 包的入口标识文件 │ └── signer.py ← 签名核心代码(所有签名逻辑都在这里) │ ├── main.py ← 【您要改的文件】调用示例 ├── demo_v11.py ← 另一个示例(v1.1版本的demo,不用管) │ └── licenses/ ← 开源许可证文件夹(不用管) └── license-requests ← requests库的许可证说明图2 目录结构
构造接口调用脚本
- 获取AK、SK,并添加至本地电脑的环境变量中。
- 登录控制台“我的凭证 > 访问密钥”,获取AK和SK。AK、SK最多可添加2个。
图3 获取AK、SK
图4 AK、SK示例
- 通过以下命令,在windows的命令提示符cmd中设置临时环境变量。
set HUAWEICLOUD_SDK_AK=您的Access Key set HUAWEICLOUD_SDK_SK=您的Secret Key
- 通过以下命令检查环境变量是否生效。
echo %HUAWEICLOUD_SDK_AK% echo %HUAWEICLOUD_SDK_SK%
- 登录控制台“我的凭证 > 访问密钥”,获取AK和SK。AK、SK最多可添加2个。
- 打开Python SDK的文件夹目录,编辑main.py脚本,添加上具体的业务接口信息。
用记事本(或者装了代码编辑器如VS Code)打开main.py脚本,删除原有内容,并将下方代码添加进去。
示例中已经将“获取评测集列表”接口的示例填入,可以直接使用。如果改换其他接口也可以参考脚本的批注进行填写。
# -*- coding: utf-8 -*- # Copyright (c) Huawei Technologies CO., Ltd. 2022-2025. All rights reserved. import os import json import requests from apig_sdk import signer def demo_api_call(): # --- 1. 初始化签名对象 --- sig = signer.Signer() # 认证用的 AK 和 SK 建议从环境变量获取,以降低硬编码带来的安全风险。 # 使用 .strip() 确保去除环境变量中可能存在的空格或换行符。 ak = os.getenv('HUAWEICLOUD_SDK_AK') sk = os.getenv('HUAWEICLOUD_SDK_SK') if not ak or not sk: print("错误:未找到环境变量 HUAWEICLOUD_SDK_AK 或 HUAWEICLOUD_SDK_SK") return sig.Key = ak.strip() sig.Secret = sk.strip() # --- 2. 构造请求参数(对照 API 文档填写) --- # 【Method】请求方法:对应接口的请求方式,如 GET, POST, PUT, DELETE。 method = "GET" # 【URL】接口请求地址:由 Endpoint域名 + URI 组成。 # 提示:如果接口有查询参数(Query),如 ?limit=10,请务必直接写在 URL 中。 url = "https://agentarts.cn-southwest-2.myhuaweicloud.com/v1/ops/datasets" # 【Headers】请求消息头:对应接口的Header”。 # 必填参数(如Content-Type)需在此定义。 headers = { "Content-Type": "application/json" } # 【Body】请求消息体:对应接口文档中的“请求体”。 # - GET 请求:固定为空字符串 ""。 # - POST/PUT 请求:填写 JSON 格式的字符串。 body = "" # --- 3. 执行签名 --- # 构造请求对象,并将上述参数传入。 r = signer.HttpRequest(method, url, headers, body) # 执行 Sign 动作:SDK 会自动在 r.headers 中添加 X-Sdk-Date 和 Authorization 鉴权信息。 sig.Sign(r) print(f"--- 鉴权信息 ---") print(f"X-Sdk-Date: {r.headers.get('X-Sdk-Date')}") print(f"Authorization: {r.headers.get('Authorization')}\n") # --- 4. 发起请求并处理响应 --- try: # 使用 r 对象中已经被签名的 headers 进行请求。 resp = requests.request( method=r.method, url=r.scheme + "://" + r.host + r.uri, headers=r.headers, data=r.body ) print(f"--- 响应结果 ---") print(f"状态码: {resp.status_code} {resp.reason}") # 尝试打印响应 Body if resp.status_code == 200: print(json.dumps(resp.json(), indent=4, ensure_ascii=False)) else: print(resp.text) except Exception as e: print(f"请求发生异常: {e}") if __name__ == '__main__': demo_api_call() - 脚本编辑完成后,保存并关闭该脚本。
步骤三:运行脚本获取接口响应
- 在Python SDK的文件夹上方显示路径的地址栏里,清空地址,直接输入cmd然后按回车。

- 在打开的命令提示符窗口中会显示出当前的文件夹路径,输入以下命令执行脚本。
python main.py
运行该脚本会返回接口的鉴权信息值,以及接口的响应结果。
图5 运行示例