Козиев Илья (kelijah) wrote,
Козиев Илья
kelijah

Category:

Изменения в движке чатбота

В движок чатбота, в его rule-driven подсистему, добавлены две экспериментальные возможности. Собранный докер с этой версией бота выложен тут.

Обе возможности относятся к приоритетным правилам генерации реплики бота. Эти правила срабатывают до того, как в дело вступает стандартный механизм подбора ответа в FAQ или релевантного факта в базе знаний. В файле правил rules.yaml они находятся в секции с незамысловатым именем "rules".

В строке 537 можно увидеть правило, которое анализирует не только непосредственно последнюю реплику собеседника, но предшествующую реплику чатбота. Благодаря учету реплики чатбота можно выдать более-менее уместный ответ на чисто эмоциональное высказывание "ничего себе", которое в противном случае могло бы относится к чему угодно. Таким образом, становятся возможными диалоги такого типа:


H:> ты человек?
B:> я не человек
H:> ничего себе
B:> Это правда.



Вторая возможность демонстрируется правилом в строке 486. Оператор state позволяет сохранить в пользовательской сессии произвольную текстовую строку как именованную переменную, а затем проверить проверить содержимое такой переменной. В результате можно в сессии накапливает некоторый "опыт", например определять, что пользователь уже не первый раз использует ругательства:

B:> Привет
H:> ты не человек?
B:> я не человек
H:> ну ты и дура
B:> Ой, мне такие слова не нравятся
H:> а ты все равно дура!
B:> Жаль, что вы постоянно используете подобные выражения!


Tags: chatbot, chitchat, чатбот, читчат
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments