60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# MAX Support Bot v1
|
||
|
||
Единый сервис на `FastAPI + Jinja2 + SQLite`, который включает:
|
||
|
||
- MAX-бота на `maxapi` для приёма и обработки заявок.
|
||
- Веб-панель оператора (`/applications`, `/applications/{id}`, `/chats`).
|
||
- Интеграцию с внешней системой заявок через REST API.
|
||
|
||
## Возможности
|
||
|
||
- Переключаемый режим бота: `Polling` или `Webhook`.
|
||
- Каналы создания заявок:
|
||
- локальный (SQLite),
|
||
- внешний REST.
|
||
- Каналы включаются/выключаются независимо через ENV.
|
||
- Если внешний REST падает: локальная заявка сохраняется, sync-статус ставится в `failed` (без ретраев).
|
||
- Операторские действия доступны:
|
||
- в MAX через callback-кнопки,
|
||
- в веб-панели в карточке заявки.
|
||
|
||
## Быстрый старт
|
||
|
||
```bash
|
||
python -m venv .venv
|
||
. .venv/Scripts/activate
|
||
pip install -r requirements.txt
|
||
uvicorn app.main:app --reload
|
||
```
|
||
|
||
По умолчанию веб будет на `http://127.0.0.1:8000`.
|
||
|
||
## Основные ENV
|
||
|
||
- `MAX_BOT_TOKEN`
|
||
- `MAX_USE_WEBHOOK=true|false`
|
||
- `MAX_WEBHOOK_URL`
|
||
- `MAX_WEBHOOK_SECRET`
|
||
- `DB_PATH=data/app.db`
|
||
- `CONTEXT_BACKEND=memory|redis`
|
||
- `REDIS_URL`
|
||
- `CHANNEL_LOCAL_ENABLED=true|false`
|
||
- `CHANNEL_EXTERNAL_ENABLED=true|false`
|
||
- `EXTERNAL_API_CREATE_URL_WITH_KEY`
|
||
- `WEB_ADMIN_LOGIN`
|
||
- `WEB_ADMIN_PASSWORD`
|
||
- `SESSION_SECRET`
|
||
- `OPERATOR_CHAT_IDS=123,456`
|
||
|
||
## Основные URL
|
||
|
||
- `GET /health`
|
||
- `GET/POST /login`
|
||
- `POST /logout`
|
||
- `GET /applications`
|
||
- `GET /applications/{id}`
|
||
- `POST /applications/{id}/status`
|
||
- `GET /chats`
|
||
- `POST /chats/sync`
|
||
- `POST /max/webhook`
|
||
|