43 lines
3.3 KiB
Plaintext
43 lines
3.3 KiB
Plaintext
aleesa-craniac
|
|
-----------------------------------------------------------------------------------------------------------------------
|
|
Бредогенератор, основанный на цепях Маркова. Попутно сохраняет состояние цепей в sqlite-базу. Собственно, является
|
|
"мозгом" aleesa bot-а.
|
|
|
|
|
|
Механика работы
|
|
-----------------------------------------------------------------------------------------------------------------------
|
|
Бредогенератор подписан на redis-канал craniac. В этот канал пишет другой демоночек - aleesa-misc-go. Причём,
|
|
особенность такова, что если aleesa-misc не распознала фразу, как команду для другого модуля, то по-умолчанию такая
|
|
фраза оправляется в канал craniac, то есть сюда, в "мозги".
|
|
|
|
У бредогенератора есть 2 типа входящих сообщений - ключевые фразы, на которые у него есть готовые (статические) ответы
|
|
и остальные, для которых ему надо решить нужен ли ответ и по-необходимости сгенерировать его, используя данные в цепях
|
|
Маркова.
|
|
|
|
Ответ направляется в redis-канал, указанный в поле plugin входящего сообщения, если не предполагается некоей особой
|
|
логики, связанной, наприме, с easter egg поведением.
|
|
|
|
Формат протокола - см. README от aleesa-misc-go.
|
|
|
|
|
|
Как это запустить?
|
|
-----------------------------------------------------------------------------------------------------------------------
|
|
Понадобится perl, cpanm и local::lib, а также несколько разных devel-пакетов для разных библиотек. Как правило, это
|
|
находится методом тыка, но точно понадобятся sqlite-devel, bdb-devel (или db-devel), hiredis-devel. Кроме того,
|
|
понадобятся development tools - gcc, gcc-g++, perl-devel, make, cmake и так далее.
|
|
|
|
В каталоге с приложением под целевым пользователем запускаем bash bootstrap.sh Ждём с надеждой, что оно не обломится в
|
|
пути.
|
|
|
|
Если всё хорошо, то после запуска redis-а, создания data/config.json из data/config_sample.json, можно запускать и само
|
|
приложение.
|
|
|
|
В каталоге contrib находится скрипт для alpine linux, системы инициализации openrc.
|
|
|
|
Этот скрипт достаточно положить в /etc/init.d/aleesa-craniac, сконфигурить сервис по инструкции выше и, после этого,
|
|
сервис запускается командой:
|
|
service aleesa-craniac start
|
|
|
|
В автозагрузку его можно прописать через команду:
|
|
rc-update add aleesa-craniac default
|