1
我正在使用watson會話api構建天氣機器人。如何將外部API的響應傳遞給watson對話中的對話框?
每當用戶發送'什麼是天氣'。我收到意向和實體的迴應。現在我打電話給天氣api並獲得迴應。如何將這個天氣響應傳遞迴watson對話框來顯示?
我認爲我必須通過上下文對象發送響應,但是如何調用對話api來傳遞響應?
我正在使用python api。
我正在使用watson會話api構建天氣機器人。如何將外部API的響應傳遞給watson對話中的對話框?
每當用戶發送'什麼是天氣'。我收到意向和實體的迴應。現在我打電話給天氣api並獲得迴應。如何將這個天氣響應傳遞迴watson對話框來顯示?
我認爲我必須通過上下文對象發送響應,但是如何調用對話api來傳遞響應?
我正在使用python api。
在這種情況下,來自IBM官方文檔的API Referece顯示瞭如何在Watson Conversation Service中發送消息的一個示例。
檢查這個例子:
import json
from watson_developer_cloud import ConversationV1
conversation = ConversationV1(
username='{username}',
password='{password}',
version='2017-04-21'
)
# Replace with the context obtained from the initial request
context = {}
workspace_id = '25dfa8a0-0263-471b-8980-317e68c30488'
response = conversation.message(
workspace_id=workspace_id,
message_input={'text': 'Turn on the lights'},
context=context
)
print(json.dumps(response, indent=2))
在這種情況下,從用戶發送信息,你可以使用message_input
,並像沃森發送消息時,您可以使用output
。 如果你的參數設置爲response
,例如,你可以使用:
#Get response from Watson Conversation
responseFromWatson = conversation.message(
workspace_id=WORKSPACE_ID,
message_input={'text': command},
context=context
)
從IBM Developers見一個正式的示例代碼:
if intent == "schedule":
response = "Here are your upcoming events: "
attachments = calendarUsage(user, intent)
elif intent == "free_time":
response = calendarUsage(user, intent)
else:
response = responseFromWatson['output']['text'][0] //THIS SEND THE MESSAGE TO USER
slack_client.api_call("chat.postMessage", as_user=True, channel=channel, text=response,
attachments=attachments)
使用此派:
response = responseFromWatson['output']['text'][0];
if intent == "timeWeather":
response = "The Weather today is: " +yourReturnWeather
來自IBM Developer這個項目的教程here。
該示例將與Slack集成,但您可以看到一個很好的示例,在project中完成了您想要的操作。