Я получаю вышеупомянутую ошибку при попытке вызвать метод CallbackInput.
Версия Rasa: Rasa 1.0.6
Вот мой код,
credentials.yml
callback:
# URL to which Core will send the bot responses
url: "http://localhost:5000/rasa_callback"
rasa:
url: "http://localhost:5002/api"
callbackURL.py
Я вызываю этот API с помощью API-клиента.
@app.route('/rasa_in',methods=['GET','POST'])
def wahtsapp_in():
wa_in = request.get_json(force=True)
wa_data_text = None
rasa_url = "http://localhost:5005/webhooks/callback/webhook"
for res in wa_in:
if 'text' in res:
wa_data_text = res.get('text').get('body')
wa_data = {
"sender":"Rasa",
"message":wa_data_text
}
headers = {
"Content-Type": "application/json"
}
data=json.dumps(wa_data,sort_keys=True, indent=3)
r = requests.post(url=rasa_url, headers=headers, data=data)
print('r',r) **// Here it print 500 Error**
return r.content
Вот обратный вызовURL
@app.route('/rasa_callback',methods=['GET','POST'])
def rasa_callback():
headers = {
"Content-Type": "application/json"
}
rasa_data = request.get_json(force=True)
api_url = 'https://my_url'
ts = time.time()
rasa_body = ''
if 'text' in rasa_data:
rasa_body = rasa_data.get('text')
wa_data ={
"text":{"message":rasa_body}
}
r = requests.post(url=api_url,headers=headers, data=json.dumps(wa_data))
return r.content # I treid below return too, but no luck
return json.dumps(r.text,sort_keys=True, indent=3)
Как мне решить эту проблему?
РЕДАКТИРОВАТЬ: Мне удалось получить данные, используя request.json. Но все равно я получаю ту же ошибку. Один вопрос, что я должен вернуть в функцию обратного вызова? Потому что, когда я возвращаю строку или любой другой правильный ответ, я получаю вышеупомянутую ошибку. Если я возвращаю неправильные данные, такие как {} или 'запрос-ответ', я получаю сообщение об ошибке типа Неверный тип возврата, но в то же время в родительской функции / клиенте URL / API я получаю ответ success
.
Так что я должен вернуть в функцию обратного вызова? Спасибо