Инициирование диалога с помощью Dialogflow, FB messenger и Python - PullRequest
0 голосов
/ 14 декабря 2018

Я искал в Интернете и в документах Dialogflow решение этой проблемы, но я просто не могу понять, любая помощь, которая поможет мне в правильном направлении, ценится.

Ясоздание бота FB Messenger, и я хочу использовать DialogFlow для обработки НЛП.Однако я изо всех сил пытаюсь выяснить, как интегрировать DialogFlow в мое приложение Python.

Вот мой желаемый результат:

Bot: You have not recorded activity for 3-4pm today, what did you do?
User: I did jogging
Bot: Added "Jogging" to your calendar from 3-4pm

Как вы можете видеть, бот инициирует разговор, который яПоверить невозможно с помощью DialogFlows FB Integration.Вот почему я смотрю на создание бота Python с PyMessenger для интеграции FB.

Есть ли способ получить сущности и параметры с помощью Python?Я думаю, что-то вроде:

message = "I did jogging from 2pm-5pm"
result = dialogflow.message(intent="Update Day Tracker")
print(result)
{"activity": "jogging", "time-period": "2pm-5pm"}

Таким образом, я мог бы обрабатывать большую часть логики в приложении Python и просто использовать DialogFlow для обработки NLP.

Это единственный способ, которым я могу думать об этом.Пожалуйста, дайте мне знать, если есть лучшее решение.

Я нашел это: https://miningbusinessdata.com/initiating-the-conversation-from-dialogflow-a-summary/, но это не входит в слишком много информации

В нем упоминается использование REST API длясоздайте свою собственную интеграцию - я думаю, это то, что я хочу сделать, но я просмотрел документацию по Dialogflow REST API и не вижу запросов, которые позволили бы мне делать то, что я хочу.

Любая помощь приветствуется, если вам нужны разъяснения, просто дайте мне знать.Спасибо за ваше время.

1 Ответ

0 голосов
/ 15 декабря 2018

Ты близко!То, что вы ищете, использует Определение намерений в REST API .Это может взять текст, полученный вами от пользователя, определить, какой Intent лучше всего соответствует ему, и извлечь соответствующие параметры.Затем он вернет сопоставленное намерение, достоверность этого совпадения, параметры, связанные с совпадением, и другую информацию.Если выполнение было инициировано, включаются результаты выполнения.

Если вы используете библиотеку Python для Dialogflow, настройка и вызов довольно близко отражают API REST.Это может выглядеть примерно так, чтобы сделать вызов и получить ответ:

    text_input = dialogflow.types.TextInput(
        text=text, language_code=language_code)

    query_input = dialogflow.types.QueryInput(text=text_input)

    response = session_client.detect_intent(
        session=session, query_input=query_input)

Сам ответ также будет соответствовать ответу на запрос REST .Таким образом, чтобы узнать, какой Intent соответствует и параметры для него, у вас может быть что-то вроде

    intent = response.query_result.intent.display_name
    parameters = response.query_result.parameters
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...