【发布时间】:2021-07-03 02:44:17
【问题描述】:
我正在尝试通过 Python 脚本使用 CLI 中的 Watson Assistant,类似于演示 Building a custom client。 Python 脚本是:
from ibm_watson import AssistantV2
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
# Create Assistant service object.
authenticator = IAMAuthenticator(api_key_for_wa_service) # replace with API key
assistant = AssistantV2(
version = '2020-09-24',
authenticator = authenticator
)
assistant.set_service_url('https://api.au-syd.assistant.watson.cloud.ibm.com')
assistant_id = '00965b15-eb3f-4d83-8983-3df0c7da9c4f'
# Start conversation with empty message:
response = assistant.message_stateless(assistant_id,
).get_result()
我认为连接正常,但请求失败,状态码为 422:
c:\Runnable>python create_watson_assistant_service_object.py
Method failed with status code 422: Unknown error
我尝试在请求中的 assistant_id 参数之后传递一个输入参数:
input = {'message_type': 'text', 'text': 'Hello'}
这给出了相同的结果(代码 422)。
我不知道接下来该尝试什么。
【问题讨论】:
-
可以在调用堆栈中添加完整的错误消息吗?您可以添加此处记录的错误处理吗? cloud.ibm.com/apidocs/assistant/…
-
现在显示新的输出(来自新的异常处理代码)。
-
你能确认它就是上面的代码吗(我没有看到任何异常处理)?是否只打印了那一行错误消息?您的 API 密钥是 Watson Assistant 的当前密钥吗?您的助手 ID 与显示的助手 ID 匹配吗?您的 SDK 是最新的吗?
-
@data_henrik 我将
create_session调用更改如下:response = assistant.create_session(assistant_id = assistant_id).get_result()并在其后加上print(json.dumps(response, indent=2))。现在它以 session_id 响应,这就是进展。但是,响应不包括“输出”字段(或任何其他字段)。如文档中所示,这不起作用。 V2 Python API 有什么变化吗? -
如果在 Lite plan 上创建助手,是否没有输出?
标签: python-3.x ibm-cloud watson-assistant