mirror of
https://gitflic.ru/project/maks1ms/ocab.git
synced 2024-12-23 16:23:01 +03:00
61 lines
4.7 KiB
Markdown
61 lines
4.7 KiB
Markdown
# OpenChatAiBot V2
|
||
|
||
## Что такое OCAB?
|
||
|
||
OCAB - это бот для Telegram, который призван помочь во взаимодействии с чатом.
|
||
Бот поддерживает интеграцию модулей для расширения функционала.
|
||
Фактически бот является платформой для запуска созданных для него модулей.
|
||
Модули могут взаимодействовать друг с другом или быть полностью независимыми.
|
||
|
||
## Что такое модуль?
|
||
|
||
Модуль - это директория, которая содержит в себе код модуля и его конфигурацию.
|
||
|
||
### Структура модуля
|
||
|
||
*Будет дополнено после закрытия [issue #17](https://gitflic.ru/project/armatik/ocab/issue/17).*
|
||
|
||
## Стандартные модули
|
||
|
||
В стандартный состав бота входят следующие модули:
|
||
|
||
* `admin` - модуль для модерирования чата. Позволяет удалять сообщения, банить пользователей и т.д.
|
||
* `reputation` - модуль репутации пользователей. Позволяет оценивать ответы пользователей и накапливать репутацию.
|
||
* `welcome` - модуль приветствия новых пользователей. Позволяет приветствовать новых пользователей в чате, а также
|
||
проверять пользователя капчей для предотвращения спама.
|
||
* `roles` - модуль ролей. Позволяет назначать пользователям роли и ограничивать доступ к командам бота по ролям.
|
||
Является важной частью системы прав доступа и модуля `admin`.
|
||
|
||
## Дополнительные официальные модули
|
||
|
||
* `yandexgpt` - модуль для генерации ответов на основе нейросети 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.6 или выше - основной язык программирования.
|
||
* SQLite 3 - база данных для хранения информации о чате и пользователях.
|
||
* [Poetry](https://gitflic.ru/project/armatik/ocab/blob?file=how-to%20install%20deps.md&branch=OCAB-V2) - менеджер зависимостей.
|
||
* aiogram 3 - библиотека для работы с Telegram API.
|
||
* peewee - ORM для работы с базой данных.
|