Действуйте на нетекстовых сообщениях телеграммы в Google Dialogflow. Резервное намерение должно все переслать - PullRequest
0 голосов
/ 20 октября 2019

Я создаю чат-бота с Telegram и Google Dialogflow. Когда я интегрирую Dialogflow в Telegram через вкладку Dialogflow «Интеграции», Dialogflow регистрируется как служба Webbhook для перехвата всех полученных сообщений Telegram. К сожалению, я не могу работать с нетекстовыми сообщениями , такими как наклейки, изображения и сообщения о проверке платежей Telegram.

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

Я знаю, что в диалоге есть событие FACEBOOK_MEDIA. Это событие вызывается, когда изображение отправляется через программу обмена сообщениями Facebook в Dialogflow. Есть ли что-то вроде TELEGRAM_MEDIA или даже событие TELEGRAM_UNSUPPORTED?

Я действительно хотел бы иметь возможность воздействовать не только на текстовые сообщения в диалоге.

Нужно ли добавить еще один слой между Telegram и Dialogflow, чтобы иметь возможность работать со всеми сообщениями Telegram?

Что я проанализировал до сих пор:

Я пересылаю все журналы взаимодействия Google Dialogflow в стековый драйвер Google Cloud. Кажется, что нетекстовые сообщения полностью игнорируются Dialogflow. Я не вижу никакой записи в журнале, когда отправляю нетекстовое сообщение своему боту-телеграмме. С другой стороны, когда я отправляю текст, журнал и его полезная нагрузка JSON немедленно появляются в драйвере стека.

Я создал резервное намерение в Dialogflow и включил «Включить вызов webhook для этого намерения» в разделе «Выполнение». К сожалению, моя функция выполнения не срабатывает при любых нетекстовых событиях. Dialogflow блокирует его в первую очередь.

1 Ответ

0 голосов
/ 20 октября 2019

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

Мне кажется, что на момент написания этого, полное взаимодействие возможно только при реализации промежуточного уровня между Telegram и Dialogflow. . Telegram может связаться с этим промежуточным уровнем, который обрабатывает полученное сообщение и использует Dialogflow SDK / API для совершенства Google NLP . Для (пока еще) поддерживаемых сообщений Telegram этот промежуточный уровень должен реализовывать свою собственную логику.

...