4.1 KiB
4.1 KiB
BotRouting
BotRouting — это гибкая система маршрутизации и управления Telegram-ботами с поддержкой:
- разделения прав пользователей по группам и внешним интерфейсам,
- гибкой маршрутизации сообщений (по ключевым словам, командам, LLM),
- современной админкой для управления пользователями, группами, ботами, командами,
- масштабируемой архитектуры на Node.js, Next.js и Prisma.
Структура репозитория
BotRouting/
├── admin/ # Админ-панель (Next.js + React)
├── deamon/ # Демон-роутер (Node.js, Telegram, LLM, Prisma)
├── clientExample/# Пример клиента (необязательно)
├── node_modules/
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
└── README.md
- admin/ — современная админка для управления группами, пользователями, ботами, командами.
- deamon/ — основной роутинг-сервис: интеграция Telegram API, LLM, Prisma.
- clientExample/ — пример использования клиента (опционально, можешь удалить).
Установка
1. Клонируй репозиторий
git clone <URL-репозитория>
cd BotRouting
2. Установи зависимости
Можно использовать pnpm (предпочтительно) или npm — оба поддерживаются благодаря workspace-конфигу.
Через pnpm:
pnpm install
Через npm:
npm install
3. Настрой переменные окружения
Создай файл .env в корне каждого пакета (admin/, deamon/) и задай переменные:
Пример для deamon/.env:
DATABASE_URL="file:../deamon/dev.db"
TELEGRAM_TOKEN="...твой токен..."
OPENAI_API_KEY="...ключ openai..."
LM_MODEL="vikhrmodels-vikhr-nemo-12b-instruct-r-21-09-24"
LM_BASE_URL="http://localhost:1234/v1"
Пример для admin/.env:
DATABASE_URL="file:../deamon/dev.db"
NEXT_PUBLIC_API_URL="http://localhost:3000/api"
Важно: один и тот же файл БД может использоваться обеими частями (админка и демон), если база в SQLite и тестовая. Для production — смотри документацию Prisma!
4. Инициализируй и мигрируй БД
pnpm -F deamon prisma migrate dev
или
cd deamon
npx prisma migrate dev
Запуск
Админ-панель
pnpm -F admin dev
или
cd admin
npm run dev
Откроется на http://localhost:3000
Демон-роутер (боты и LLM)
pnpm -F deamon start
или
cd deamon
node external-bot-daemon.js
Основные возможности
- Управление доступом: через группы, ботов и команды.
- Гибкая маршрутизация сообщений: по ключевым словам, командам или LLM (AI).
- LLM-интеграция: поддержка локальных или облачных моделей через OpenAI API (в т.ч. open-source локальные, если указан LM_BASE_URL).
- Модульная архитектура: легко добавлять новые типы ботов, логику, интерфейсы и расширять систему.