Как прослушать данные в конкретном порту? - PullRequest
0 голосов
/ 05 июня 2018

Мне бы хотелось создать чат-бота из этого урока , но кажется, что версия Rasa слишком старая и команды неожиданно не работают.

Я знаю, как восстановить иотвечать на сообщения через Slack, но я не знаю, как это сделать из веб-приложения, разработанного мной с помощью интерфейса чата.

С Slack я запустил следующий скрипт:

from rasa_core.channels import HttpInputChannel
from rasa_core.agent import Agent
from rasa_core.interpreter import RasaNLUInterpreter
#from rasa_slack_connector import SlackInput

nlu_interpreter = RasaNLUInterpreter('./models/nlu/default/moodnlu')
agent = Agent.load('./models/dialogue',interpreter = nlu_interpreter)


# With Slack
# https://api.slack.com/apps/AASPDV196/oauth?
#input_channel = SlackInput('OAuth Access Token','Bot User OAuth Access Token', 'Verification Token',True)

#agent.handle_channel(HttpInputChannel(5004,'/',input_channel))

# With inner app
input_channel = SlackInput('OAuth Access Token','Bot User OAuth Access Token', 'Verification Token',True)
agent.handle_channel(HttpInputChannel(5000,'/',input_channel))

Я знаю, что должен изменить input_channel так, чтобы он слышал в нужном порту, но я действительно не знаю, как.

Здесь - это то, откуда приходит HttpInputChannel

1 Ответ

0 голосов
/ 05 июня 2018

Если у вас есть готовая диалоговая модель и модель nlu, вы можете запустить ядро ​​Rasa следующим образом

$python -m rasa_core.server -d <DIALOGUE_MODEL_PATH> -u <NLU_MODEL_PATH> --debug -o out.log --cors *

, а затем в другом терминале, сделайте ниже, и вы получите ответ

$curl -XPOST localhost:5005/conversations/default/respond -d '{"query":"Hello"}'

Если идентификатор отправителя имеет значение для вас, то под командой, если вы хотите передать nad в качестве идентификатора отправителя

$curl -XPOST localhost:5005/conversations/nad/respond -d '{"query":"Hello"}'

Работает для NLU версии 0.12.3 и версии ядра 0.9.0a6

ОБНОВЛЕНИЕ: Если вы пытаетесь построить вокруг него пользовательский интерфейс

Запустите ниже в терминале

$python -m rasa_core.server -d <DIALOGUE_MODEL_PATH> -u <NLU_MODEL_PATH> --debug -o out.log --cors *

На вашем сервере

import requests
import json

data = '{"query":"hello"}'
response = requests.post('http://localhost:5005/conversations/default/respond', data=data)
json_response = response.json()
print (json_response[0]['text'])

Это должно вывести ответ hello в ваш терминал.

...