本文介紹如何使用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。
調用異常自助排查
若調用過程中出現了異常可對照調用異常自助排查(錯誤碼匯總),找到表格中對應的描述,描述中包含具體錯誤原因和解決方案。
文檔內容是否對您有幫助?