Go to file
Raphael Elita 2279bc6f4d UPD 2025-07-24 21:08:43 +02:00
admin Convert admin from submodule to regular folder 2025-07-24 21:06:59 +02:00
clientExample INIT 2025-07-24 21:01:46 +02:00
deamon INIT 2025-07-24 21:01:46 +02:00
README.md UPD 2025-07-24 21:08:43 +02:00
package-lock.json INIT 2025-07-24 21:01:46 +02:00
package.json INIT 2025-07-24 21:01:46 +02:00
pnpm-lock.yaml INIT 2025-07-24 21:01:46 +02:00
pnpm-workspace.yaml INIT 2025-07-24 21:01:46 +02:00

README.md

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).
  • Модульная архитектура: легко добавлять новые типы ботов, логику, интерфейсы и расширять систему.

В /admin/next.config.mjs нужно поправить путь мне лень разбиратся почему он нормально не рабоатет