diff --git a/README.md b/README.md index eac8228..2d597af 100644 --- a/README.md +++ b/README.md @@ -1 +1,58 @@ # OpenChatAiBot V2 + +## Что такое 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 + +### Вручную + +## Технологический стек + +* Python 3.11 - основной язык программирования. +* SQLite 3 - база данных для хранения информации о чате и пользователях. +* [Poetry](https://gitflic.ru/project/armatik/ocab/blob?file=how-to%20install%20deps.md&branch=OCAB-V2) - менеджер зависимостей. +* aiogram - библиотека для работы с Telegram API. +* peewee - ORM для работы с базой данных. \ No newline at end of file