142 lines
4.2 KiB
Markdown
142 lines
4.2 KiB
Markdown
Вот **аннотацию и инструкцию для README.md** для твоего проекта **BotRouting** — всё по делу, без воды и с пояснением структуры, установки и запуска.
|
||
|
||
---
|
||
|
||
# **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).
|
||
* **Модульная архитектура**: легко добавлять новые типы ботов, логику, интерфейсы и расширять систему.
|
||
|
||
---
|
||
|