TgRouting/README.md

139 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# **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. **Клонируй репозиторий**
```sh
git clone <URL-репозитория>
cd BotRouting
```
### 2. **Установи зависимости**
> Можно использовать **pnpm** (предпочтительно) или **npm** — оба поддерживаются благодаря workspace-конфигу.
#### **Через pnpm:**
```sh
pnpm install
```
#### **Через npm:**
```sh
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. **Инициализируй и мигрируй БД**
```sh
pnpm -F deamon prisma migrate dev
```
или
```sh
cd deamon
npx prisma migrate dev
```
---
## **Запуск**
### **Админ-панель**
```sh
pnpm -F admin dev
```
или
```sh
cd admin
npm run dev
```
Откроется на [http://localhost:3000](http://localhost:3000)
---
### **Демон-роутер (боты и LLM)**
```sh
pnpm -F deamon start
```
или
```sh
cd deamon
node external-bot-daemon.js
```
---
## **Основные возможности**
* **Управление доступом**: через группы, ботов и команды.
* **Гибкая маршрутизация сообщений**: по ключевым словам, командам или LLM (AI).
* **LLM-интеграция**: поддержка локальных или облачных моделей через OpenAI API (в т.ч. open-source локальные, если указан LM\_BASE\_URL).
* **Модульная архитектура**: легко добавлять новые типы ботов, логику, интерфейсы и расширять систему.
---
# В `/admin/next.config.mjs` нужно поправить путь мне лень разбиратся почему он нормально не рабоатет