如何在rasa chatbot中获得来自qna制造商的响应?

时间:2020-03-07 15:11:14

标签: qnamaker rasa

我按照https://rasa.com/docs/rasa/migrate-from/microsoft-luis-to-rasa/中的描述将自己的luis迁移到了rasa。 我有一个python代码,可从QnA Maker知识库中获取答案,并以json格式给出结果。 现在,我的工作是rasa必须获取python代码的结果,并将该结果作为chatbot的响应给出。 我怎样才能做到这一点? 我应该在哪里部署此python代码? 下面是我的python代码。

v1 ='锗在哪里'

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()

1 个答案:

答案 0 :(得分:0)

您可以将其实现为https://rasa.com/docs/rasa/core/actions/#custom-actions。使用rasa-sdk,您需要定义一个执行dispatcher.utter_message(<your formatted output here>)作为其run方法一部分的动作。