Мультимодальный бот для модерирования чатов и личного пользования
- Полная модальность
Отдельные группы функций можно безболезненно включать и выключать - Анкеты в чат
Администраторы могут включить принятие анкет - тогда те, кто захочет попасть в чат, должны будут написать анкету, а участники чата голосуют - за/против вступления - Модерация чата
В специальном режиме проверяет фотографии (и в планах - проверка видео) на наличие 18+ контента - Общение с ИИ
Если обратиться по имени - делает запрос к Ollama. Бот также запоминает последние сообщения - Уровни:
Для интереса, отправка сообщений, видео и голосовых дает разное количество опыта
-
Создать файл
.envи указатьTELEGRAM_TOKEN -
Запустить Docker Compose и установить модель (последнее опционально)
$ sudo docker compose up
$ sudo docker exec ollama ollama pull gemma2:9bВ папке src/_ находятся все модули. Модуль должен наследоваться от module.js — он содержит потенциальные обработчики событий для прикрепления к экземпляру Telegraf.
Пример кода для запроса к Ollama (запрос на английском языке, как правило, обрабатывается в 2 раза точнее и быстрее)
const response = await fetch("http://ollama:11434/api/generate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body:
JSON.stringify({
model: "gemma2:9b", // Одна модель на все модули
prompt: "Count from 1 to 10, answer as a JSON Array, don't write anything extra.",
stream: false,
}),
signal: AbortSignal.timeout(60000) // В случае долгого запроса - остановка
});При замене модели на новую рекомендую заменить её во всех модулях с Ollama: ai-trainer.js, ai-talker.js, а также Dockerfile.ollama
В последнем обновлении с Docker Compose отключены
ai-filter.jsи иai-trainer.js. Нужно дополнитьdocker-compose.ymlнеобходимыми Python скриптами с FastAPI
- Добавить Python-модули в Docker
- Улучшения тренера языков (или вынести в отдельный проект)
- Админка со статистикой