You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过API获取watsonx Assistant中所有Action的ID与标题?

拉取watsonx Assistant中Action的ID和标题的实现方法

核心思路

调用watsonx Assistant的List Actions API,直接获取指定技能下所有Action的元数据,从中提取action_id和title字段即可。

步骤说明

  1. 准备必要参数

    • instance_id:watsonx Assistant实例ID,可在IBM Cloud控制台的实例详情页获取
    • skill_id:目标技能的ID,在watsonx Assistant界面的技能设置中查看
    • api_key:拥有watsonx Assistant访问权限的IBM Cloud API密钥
    • region:实例所在地区(如us-south、eu-gb、au-syd等)
  2. API调用细节

    • 请求方法:GET
    • 接口地址:https://api.{region}.assistant.watson.cloud.ibm.com/instances/{instance_id}/v2/skills/{skill_id}/actions
    • 认证方式:Basic Auth(用户名填apikey,密码填你的API密钥)
    • 请求头:需指定Accept: application/json
  3. 提取目标数据
    接口返回的JSON响应中,actions数组包含所有Action对象,每个对象的action_id和title字段即为所需内容。

示例代码

CURL 示例

curl -X GET "https://api.us-south.assistant.watson.cloud.ibm.com/instances/<你的实例ID>/v2/skills/<你的技能ID>/actions" \
  -u "apikey:<你的API密钥>" \
  -H "Accept: application/json"

Python 示例

import requests

# 替换为你的实际参数
instance_id = "your-instance-id"
skill_id = "your-skill-id"
api_key = "your-api-key"
region = "us-south"

url = f"https://api.{region}.assistant.watson.cloud.ibm.com/instances/{instance_id}/v2/skills/{skill_id}/actions"

response = requests.get(
    url,
    auth=("apikey", api_key),
    headers={"Accept": "application/json"}
)

if response.status_code == 200:
    actions = response.json().get("actions", [])
    # 遍历输出每个Action的ID和标题
    for idx, action in enumerate(actions, 1):
        print(f"Action {idx}: ID={action['action_id']}, 标题={action['title']}")
else:
    print(f"请求失败,状态码: {response.status_code},错误信息: {response.text}")

注意事项

  • 分页处理:若技能中Action数量较多,接口会返回分页数据,可通过响应里的pagination.next_url字段循环请求,直至获取全部Action
  • 权限验证:确保API密钥拥有Assistant Manager或Assistant Editor角色权限,否则会返回权限错误
  • 地区适配:根据实例所在地区替换接口地址的region部分,不同地区的域名前缀不同

内容的提问来源于stack exchange,提问作者Simon O'Doherty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:52:22