Телеграм-бот с чатботом доступен в телеграмме
http://t.me/vika_chatbot Там крутится пайплайн из
этого репозитория, но с уменьшенной моделью (sberbank-ai/rugpt3small_based_on_gpt2). Это более чем на порядок ускорило работу бота. Цена такого даунгрейда - некоторая деградация качества диалогов, например для
интерпретатора ухудшение составляет несколько процентов.
Суть эксперимента вкратце состоит вот в чем. В большинстве "энтерпрайзных" чатботов отдельные навыки выносятся в виде отдельных сервисов или скриптов, и запускаются в результате классификации "интента". Это удобно с проектной точки зрения, так как не нужно тащить логику работы конкретного навыка внутрь пайплайна бота. Но порождает и проблемы, начиная с распознавания интентов, которое при множестве навыков становится неоднозначным и сложным.
А тут я попробовал на коленке сделать следующее. Я сделал синтетические диалоги по трем темам:
1) гороскопы
2) шутки
3) афоризмы
и добавил их в обучающий датасет для читчата. Активация соответствующих навыков происходит естественным образом, когда гэпэтэха вводит соответствующий запрос по теме. На практике пока, конечно, есть накладки. Например, сейчас генеративка не всегда понимает, что собеседник уже указал знак Зодиака, и переспрашивает его. Над полировкой этих шероховатостей еще предстоит покорпеть.
Примеры того, как срабатывают эти навыки:
При этом пайплайн поддерживает и "классический" читчат, а также работу со своей базой знаний и новыми фактами. В частности, имя персонажа, возраст и прочие вещи прописаны в
профиле. В частности, если попробуете настаивать, что ее зовут не Вика - будет активно сопротивляться и отнекиваться.