Я задаю общий вопрос о том, как создавать ботов, работающих через канал электронной почты. В частности, о том, как найти решения, используя RASA * 1002 *.
1. E-MAIL GATEWAY SERVER
Автоматическая отправка и получение почты представляется "несложной" задачей шлюза. Нужен сервер шлюза, который получает почту через IMAP и вызывает RASA REST API, отвечает на ответы RASA Core, отправляет обратно пользователю почту через SMTP.
Вопрос 1:
Есть ли уже готовый почтовый шлюз, который будет использоваться в качестве соединителя для RASA (или любого другого диалогового механизма)?
2. E-MAILS-EXCHANGE DIALOG MANAGEMENT
Сообщения электронной почты являются лишь примером длинных входных текстов, содержащих много связанных "намерений". Здесь сложные топи c.
Давайте избавимся от обычной парадигмы чата, когда бот и человек обмениваются небольшими разговорами со спиной и вперед, сделанной несколькими словами / часто всего одним предложением, возможно, за короткое время (секунды / минуты). В этом сценарии я предполагаю, что темы чата довольно «контекстуализированы» в последовательностях чатов близких ходов. Чат можно рассматривать как « синхронный обмен сообщениями ».
Вместо этого давайте подумаем о другом сценарии, в котором разговор происходит только через электронную почту.
BTW , Моё вертикальное приложение касается академических исследований в образовательных сферах, об использовании «репетитора», чтобы студенты могли задавать вопросы боту-репетитору о содержании курса или обо всем, что связано с курсом, экзаменами и т. Д. c.
В этом сценарии пользователь отправляет электронное письмо боту, поскольку получатель был настоящим учителем-человеком (возможно, студент не знает, является ли получатель почты настоящим человеком-наставником или ботом. TBD / частично не имеет значения) .
Дело в том, что при обычном общении по электронной почте между людьми пользователи «собирают» в одном тексте (письме), может быть, больше, чем один топи c (скажем «намерение» в нашем на язык), которые могут быть не связаны друг с другом (просто), или, может быть, есть зависимость между ними (трудно!).
Необходимость этой «подборки» вопросов / тем заключается в том, что электронная почта является асинхронным каналом связи, поэтому обмен сообщениями между людьми является обычным делом для сбора в одном сообщении группы тем. КСТАТИ; Я называю электронное письмо « асинхронный обмен сообщениями ».
Вопрос 2:
Как управлять обменами электронной почтой, из опыта разговора дизайн, с технологией RASA и вообще с системой управления диалогами на основе намерений?
Моя первая идея состоит в том, чтобы разбить входной текст на несколько предложений, обрабатывая их вслепую, хотя бы RASA NLU , как последовательность намерений. по одному. Ответ бота будет тривиально создавать текст NLG, просто объединяя ответы вышеупомянутых намерений.
Пример входящей почты пользователя:
Hi Mr. tutor,
I'm very interested in topic X mentioned in video Y.
Can I have more study material? Maybe some papers about it?
BTW, what's examination next session date?
Thanks & regards
giorgio
Ответ бота-репетитора может быть объединением намерений. ответы, без какой-либо памяти / корреляции среди ответов. Это, возможно, может работать для простых случаев. См. Этот ответ:
Hi Giorgio,
I'm glad you are interested in topic X.
You were right to watch video about Y.
That's coherent with your study programme!
I also suggest to read these papers: Z, W.
The next examination date is to be decided yet.
I'll inform you asap via email!
Regards
The teacher
С точки зрения намерений RASA входная почта может быть:
intent greet
intent interest_on
intent interest_more_info
intent next_exam
intent_thanks
intent_signature
С точки зрения ответов RASA, выходная почта может быть:
answer_greet
answer_interest_on
answer_interest_more_info
answer_next_exam
answer_signature
Пока это кажется простым ... но что, если входные предложения в той или иной степени связаны друг с другом?
Рассказы Расы Ядра , как предсказание последовательностей намерений, входная почта кажется теоретически лучшим решением, но мне не совсем понятно, как реализовать использование историй в коде приложения.
Можете ли вы помочь мне понять на практике, как возможно использовать истории RASA в этом письме контекст? Я имею в виду: как можно использовать ядро RASA для прогнозирования следующего намерения / ответа, учитывая обнаружение предыдущих намерений? Можете ли вы дать мне пример кода? (Я не RASA / python умник)
Спасибо Джорджио