使用IBM Watson Assistant API创建会话时遇404资源未找到错误求助
解决IBM Watson Assistant API创建会话时的404错误
问题详情
用Python调用Watson Assistant V2 API创建会话时,始终返回404“资源未找到”错误。代码如下(敏感信息已用占位符替换):
from ibm_watson import AssistantV2 from ibm_cloud_sdk_core.authenticators import IAMAuthenticator authenticator = IAMAuthenticator('') assistant = AssistantV2( version='2022-05-22', authenticator=authenticator ) assistant.set_service_url('https://api.eu-gb.assistant.watson.cloud.ibm.com') response = assistant.create_session(assistant_id='').get_result() session_id = response["session_id"] print(session_id)
错误信息:
ApiException: Error: Resource not found, Code: 404 , X-global-transaction-id: 081b1be5-4126-4b79-92c7-c5b60b1b141b
已确认API密钥、assistant ID、服务URL正确,且实例设为公开,但问题依旧。
排查与解决方法
- 确认实例套餐支持V2 API:Watson Assistant的免费Lite版本仅支持V1 API,V2 API需要Plus或Enterprise套餐。如果是Lite实例,要么升级套餐,要么改用V1 API实现会话创建。
- 检查assistant_id的正确性:V2 API要求传入的是技能(Skill)的ID,而非服务实例的ID。很多人会误把实例ID填进去,导致找不到资源。可以在Watson Assistant控制台的“技能”页面复制对应技能的ID。
- 验证区域与URL匹配:确保你的assistant实例所在区域和服务URL完全对应,比如实例部署在eu-gb,就必须使用
https://api.eu-gb.assistant.watson.cloud.ibm.com,不能混用其他区域的地址。 - 检查API密钥权限:IAM API密钥需要拥有
watson_assistant_manager或watson_assistant_user角色,权限不足的情况下,部分场景会返回404而非权限错误。可以在IBM Cloud控制台的IAM权限页面检查角色配置。 - 添加实例ID请求头:部分场景下,需要手动传入实例ID作为请求头,代码示例:
assistant.set_default_headers({'X-Watson-Instance-Id': '你的服务实例ID'})
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

