2023-11-25 19:46:09 +03:00
|
|
|
|
# OpenChatAiBot V2
|
2023-11-27 00:25:19 +03:00
|
|
|
|
|
|
|
|
|
## Что такое OCAB?
|
|
|
|
|
|
|
|
|
|
OCAB - это бот для Telegram, который призван помочь во взаимодействии с чатом.
|
|
|
|
|
Бот поддерживает интеграцию модулей для расширения функционала.
|
|
|
|
|
Фактически бот является платформой для запуска созданных для него модулей.
|
|
|
|
|
Модули могут взаимодействовать друг с другом или быть полностью независимыми.
|
|
|
|
|
|
|
|
|
|
## Что такое модуль?
|
|
|
|
|
|
|
|
|
|
Модуль - это директория, которая содержит в себе код модуля и его конфигурацию.
|
|
|
|
|
|
|
|
|
|
### Структура модуля
|
|
|
|
|
|
|
|
|
|
*Будет дополнено после закрытия [issue #17](https://gitflic.ru/project/armatik/ocab/issue/17).*
|
|
|
|
|
|
|
|
|
|
## Стандартные модули
|
|
|
|
|
|
|
|
|
|
В стандартный состав бота входят следующие модули:
|
|
|
|
|
|
|
|
|
|
* `admin` - модуль для модерирования чата. Позволяет удалять сообщения, банить пользователей и т.д.
|
|
|
|
|
* `reputation` - модуль репутации пользователей. Позволяет оценивать ответы пользователей и накапливать репутацию.
|
|
|
|
|
* `welcome` - модуль приветствия новых пользователей. Позволяет приветствовать новых пользователей в чате, а также
|
|
|
|
|
проверять пользователя капчей для предотвращения спама.
|
|
|
|
|
* `roles` - модуль ролей. Позволяет назначать пользователям роли и ограничивать доступ к командам бота по ролям.
|
|
|
|
|
Является важной частью системы прав доступа и модуля `admin`.
|
|
|
|
|
|
|
|
|
|
## Дополнительные официальные модули
|
|
|
|
|
|
|
|
|
|
* `gpt` - модуль для генерации ответов на основе нейросети GPT-3.5. Позволяет боту отвечать на сообщения
|
|
|
|
|
пользователей, используя нейросеть. Ключевой особенностью является построение линии контекста для нейросети,
|
|
|
|
|
которая позволяет боту отвечать на вопросы, используя контекст предыдущих сообщений. Для этого используется
|
|
|
|
|
модуль база данных хранящий историю сообщений.
|
|
|
|
|
* `bugzilla` - модуль для интеграции с BugZilla. Позволяет получать уведомления о новых багах в BugZilla, отслеживать их
|
|
|
|
|
статус, формировать стандартизированные сообщения для корректного описания багов. В будущем планируется интеграция с
|
|
|
|
|
API BugZilla для возможности создания багов из чата.
|
|
|
|
|
* `alt_packages` - модуль для интеграции с AltLinux Packages. Позволяет получать уведомления о новых пакетах в репозитории
|
|
|
|
|
AltLinux, поиска пакетов по названию, получения истории изменений, команды для установки пакета из репозитория и
|
|
|
|
|
прочей информации о пакете.
|
|
|
|
|
* `notes` - модуль заметок. Позволяет сохранять заметки для пользователей и чатов. Заметки являются ссылками на
|
|
|
|
|
сообщения в чате.
|
|
|
|
|
|
|
|
|
|
Список модулей будет пополняться. Идеи для модулей можно оставлять в [issues](https://gitflic.ru/project/armatik/ocab/issue/create).
|
|
|
|
|
|
|
|
|
|
## Установка бота
|
|
|
|
|
|
|
|
|
|
### Docker
|
|
|
|
|
|
|
|
|
|
### Вручную
|
|
|
|
|
|
|
|
|
|
## Технологический стек
|
|
|
|
|
|
2024-02-12 07:48:55 +03:00
|
|
|
|
* Python 3.11.6 или выше - основной язык программирования.
|
2023-11-27 00:25:19 +03:00
|
|
|
|
* SQLite 3 - база данных для хранения информации о чате и пользователях.
|
|
|
|
|
* [Poetry](https://gitflic.ru/project/armatik/ocab/blob?file=how-to%20install%20deps.md&branch=OCAB-V2) - менеджер зависимостей.
|
2023-11-27 11:18:20 +03:00
|
|
|
|
* aiogram 3 - библиотека для работы с Telegram API.
|
2023-11-27 00:25:19 +03:00
|
|
|
|
* peewee - ORM для работы с базой данных.
|