如何在 rasa 聊天机器人中得到 qna maker 的回应?
how to get response from qna maker in rasa chatbot?
我按照 https://rasa.com/docs/rasa/migrate-from/microsoft-luis-to-rasa/ 中的说明将我的 luis 迁移到了 rasa。
我有一个 python 代码,它从 QnA Maker 知识库中获取答案并以 json 格式给出结果。
现在我的工作是 rasa 必须获取 python 代码的结果并将该结果作为聊天机器人的响应。
我怎样才能做到这一点?
我应该在哪里部署这个 python 代码?
下面是我的 python 代码。
v1 = 'where is germanium'
def conference_room():
import http.client, urllib.parse, json, time, sys
host = "newbot.azurewebsites.net"
endpoint_key = "xxxxxxxx-8xxe-xxxx-9xx2-7cxx4fxxxxx"
route = "/qnamaker/knowledgebases/xxxx052f-4xxa-xx7d-xxxx-4xxadxxxxxx/generateAnswer"
q1 = {'question':v1}
question = str(q1)
headers = {
'Authorization': 'EndpointKey ' + endpoint_key,
'Content-Type': 'application/json'
}
try:
conn = http.client.HTTPSConnection(host,port=443)
conn.request ("POST", route, question, headers)
response = conn.getresponse ()
answer = response.read ()
print(json.dumps(json.loads(answer), indent=4))
except :
print ("Unexpected error:", sys.exc_info()[0])
print ("Unexpected error:", sys.exc_info()[1])
conference_room()
您可以将其实现为 https://rasa.com/docs/rasa/core/actions/#custom-actions 。使用 rasa-sdk,您需要定义一个执行 dispatcher.utter_message(<your formatted output here>)
作为其 run
方法的一部分的操作。
我按照 https://rasa.com/docs/rasa/migrate-from/microsoft-luis-to-rasa/ 中的说明将我的 luis 迁移到了 rasa。 我有一个 python 代码,它从 QnA Maker 知识库中获取答案并以 json 格式给出结果。 现在我的工作是 rasa 必须获取 python 代码的结果并将该结果作为聊天机器人的响应。 我怎样才能做到这一点? 我应该在哪里部署这个 python 代码? 下面是我的 python 代码。
v1 = 'where is germanium'
def conference_room():
import http.client, urllib.parse, json, time, sys
host = "newbot.azurewebsites.net"
endpoint_key = "xxxxxxxx-8xxe-xxxx-9xx2-7cxx4fxxxxx"
route = "/qnamaker/knowledgebases/xxxx052f-4xxa-xx7d-xxxx-4xxadxxxxxx/generateAnswer"
q1 = {'question':v1}
question = str(q1)
headers = {
'Authorization': 'EndpointKey ' + endpoint_key,
'Content-Type': 'application/json'
}
try:
conn = http.client.HTTPSConnection(host,port=443)
conn.request ("POST", route, question, headers)
response = conn.getresponse ()
answer = response.read ()
print(json.dumps(json.loads(answer), indent=4))
except :
print ("Unexpected error:", sys.exc_info()[0])
print ("Unexpected error:", sys.exc_info()[1])
conference_room()
您可以将其实现为 https://rasa.com/docs/rasa/core/actions/#custom-actions 。使用 rasa-sdk,您需要定义一个执行 dispatcher.utter_message(<your formatted output here>)
作为其 run
方法的一部分的操作。