RASA: Как выстраивать диалоги со смешанной инициативой?

Я задаю вопрос / просьбу о помощи относительно того, как настроить чат-бота смешанной инициативы в RASA

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

  • Инициатива пользователя: бот просто отвечает на запросы пользователей (я также называю это пул-режимом).

  • Бот-инициатива: бот «проактивен», инициируя новый незапрашиваемый разговор / тему с пользователем (я называю это: push-режимом). Бот "толкает" может быть чем-то вроде вопроса к пользователю или запроса обратной связи с получением некоторой информации:

    • Относится к предыдущему разговору (так "динамический" и зависит от контекста текущего диалога),
    • И / или часть «заданной» последовательности заранее заданных пошаговых высказываний бота (стимул / вопрос пользователю). В этом смысле я предполагаю, что решением может быть «статический» поток, созданный какой-то комбинацией правил / форм RASA (см. Ниже).

Гамбиты: бот-инициативный подход ChatScript

Этапы статических бот-инициативы являются одним из инструментов для разработки разговора в ChatScript хорошего старого Chatbot скриптового языка / двигателе. Это так называемые гамбиты . Это история, которую чат-бот хочет рассказать по теме, или беседа, в которую чат-бот пытается вовлечь пользователя . См. Определение / объяснение здесь.

Ниже приведен пример кода ChatScript, в котором бот начинает разговор на школьную тему:

      topic: ~school [school university learn]

t: Where do you go to school?
    a: (Rochester) That's a great school.

t: I go to Harvard.

t: What is your major?

t: I am studying finance. 

Во время выполнения ( это бот, является пользователем):

      < Where do you go to school?
> At liceo Leonardo Da Vinci in Genova,
< I go to Harvard.
> Wow! Super!
< What is your major?
> Electronic engineering...
< I am studying finance. 

Как реализовать гамбиты ChatScript в RASA?

как я могу реализовать такой диалог, управляемый ботами в RASA? Я немного запутался в том, как это сделать. Хорошо, правило RASA могло вызвать первое высказывание, а потом я мог бы спроектировать поток с примерами историй? Или с формой RASA?


Я хотел бы реализовать сценарий смешанной инициативы, где:

  • Каждый раз, когда любой пользователь может запросить у бота ответы на часто задаваемые вопросы / новости и т. Д. (Режим pull)
  • пациент (эксперт) может сам сообщить свой статус (режим вытягивания)
  • Но также бот должен собирать некоторую упомянутую информацию (заполнение слотов, например, в приложении для наблюдения за пациентом, медицинские параметры, явное задание вопроса пользователю (режим push).

Я не понимаю, как это реализовать в RASA. Как закодировать диалог сбора информации без строгой / скучной последовательности манипуляций слотами в форме RASA?

Возможно, событие crontab (внешнее), следуя предложению здесь https://rasa.com/docs/rasa/reaching-out-to-user, можно было бы использовать для внедрения запланированного намерения, которое запускает диалоговый сеанс, с использованием правила RASA. Все идет нормально.

Мне непонятно, как управлять сбором данных, подобным "заполнению слотов", естественным образом, что, возможно, допускает смешанную инициативу, когда пользователь спонтанно передает пользователю некоторые данные или бот запрашивает данные у пользователя, если (некоторые) данные сеанса отсутствуют.

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

Любые предложения / помощь о том, как все это сделать в RASA?

Спасибо!
Джорджио

0 ответов

Другие вопросы по тегам