本文介绍如何使用Python来访问表格问答服务。
Common Request方式调用
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
# 创建AcsClient实例
client = AcsClient(
"<your-access-id-key>",
"<your-access-id-secret>",
"cn-hangzhou"
)
# 创建查询服务信息请求并设置相关参数
service_request = CommonRequest()
# domain和version是固定值
service_request.set_domain('alinlp.cn-hangzhou.aliyuncs.com')
service_request.set_version('2020-06-29')
# 查询服务信息action:GetTableQAServiceInfoById
service_request.set_action_name('GetTableQAServiceInfoById')
# 需要add哪些param可以在API文档里查到
service_request.add_query_param('ServiceCode', 'alinlp')
# 服务id:管控台列表展示的服务id
service_request.add_query_param('ServiceId', '95')
service_response = client.do_action_with_exception(service_request)
service_resp_obj = json.loads(service_response)
# 解析出服务绑定的最新bot_id
bot_id = json.loads(service_resp_obj['Data'])['data']['botId']
print(bot_id)
# 创建tableqa请求并设置相关参数
tableqa_request = CommonRequest()
# domain和version是固定值
tableqa_request.set_domain('alinlp.cn-hangzhou.aliyuncs.com')
tableqa_request.set_version('2020-06-29')
tableqa_request.set_action_name('RequestTableQAOnline')
# 需要add哪些param可以在API文档里查到
tableqa_request.add_query_param('ServiceCode', 'alinlp')
# 参数中的bot_id需要使用上面查询到的bot_id
params = {
"bot_id": bot_id,
"question": "我想看看昨天的基金额度",
}
tableqa_request.add_query_param('Params', json.dumps(params))
response = client.do_action_with_exception(tableqa_request)
resp_obj = json.loads(response)
print(resp_obj)
注:RequestTableQAOnline的参数bot_id来源于GetTableQAServiceInfoById的查询结果,所以在使用表格问答服务过程中请先使用GetTableQAServiceInfoById查询到服务绑定的最新bot_id。
调用异常自助排查
若调用过程中出现了异常可对照调用异常自助排查(错误码汇总),找到表格中对应的描述,描述中包含具体错误原因和解决方案。
文档内容是否对您有帮助?