如何在IBM Watson Assistant V2发送消息时传递Action ID(含SDK/CURL示例)
WatsonX Assistant Lite 调用指定Action示例
CURL 命令示例
1. 先创建会话(获取会话ID)
curl -X POST "https://{region}.watsonplatform.net/assistant/v2/assistants/{assistant_id}/sessions?version=2023-06-15" \ -u "apikey:{your_api_key}"
执行后会返回包含session_id的响应,保存该ID用于后续请求。
2. 触发指定Action的消息请求
curl -X POST "https://{region}.watsonplatform.net/assistant/v2/assistants/{assistant_id}/sessions/{session_id}/message?version=2023-06-15" \ -u "apikey:{your_api_key}" \ -H "Content-Type: application/json" \ -d '{ "input": { "text": "" }, "action": { "action_id": "{your_action_id}", "parameters": { "param_name": "param_value" } } }'
- 若Action无需参数,可直接省略
parameters字段 - 通过
action.action_id可强制触发指定Action,不受输入文本影响
Python SDK 示例(基于ibm-watson库)
1. 安装依赖
pip install ibm-watson ibm-cloud-sdk-core
2. 代码示例
from ibm_watson import AssistantV2 from ibm_cloud_sdk_core.authenticators import IAMAuthenticator # 初始化客户端 authenticator = IAMAuthenticator('{your_api_key}') assistant = AssistantV2( version='2023-06-15', authenticator=authenticator ) assistant.set_service_url('https://{region}.watsonplatform.net/assistant/api') # 创建会话 session_resp = assistant.create_session(assistant_id='{assistant_id}').get_result() session_id = session_resp['session_id'] # 调用指定Action msg_resp = assistant.message( assistant_id='{assistant_id}', session_id=session_id, input={'text': ''}, action={ 'action_id': '{your_action_id}', 'parameters': { 'param_name': 'param_value' } } ).get_result() print(msg_resp) # 可选:用完会话后删除 assistant.delete_session(assistant_id='{assistant_id}', session_id=session_id)
参数替换说明
{region}:替换为你的助手所在区域,如us-south、eu-gb{assistant_id}:在WatsonX Assistant控制台的助手设置中获取{your_api_key}:从IBM Cloud控制台的服务凭证中获取{your_action_id}:进入目标Action的设置页面,在「API详情」中查看
内容的提问来源于stack exchange,提问作者HotDev
相关产品推荐
相关产品推荐

