Перейти к содержанию

API сервер

FastAPI-сервер: REST + SSE streaming, auth (JWT), проекты, сессии, usage и Stripe billing.

Запуск

pip install -r server/requirements.txt
python -m uvicorn server.app:create_app --factory --port 8765

# или батник
fluxion-server.bat

Core endpoints

Endpoint Method Описание
/api/health GET Статус, модель, движок, RAG, web
/api/chat POST Чат (streaming SSE или JSON)
/api/agent/run POST Запуск ReAct-агента
/api/rag/index POST Индексация директории

Чат со стримингом

curl -N -X POST http://localhost:8765/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "How do I read a CSV file in Python?", "stream": true}'

Auth — /api/auth

Endpoint Method Описание
/api/auth/register POST Регистрация → JWT-пара (201)
/api/auth/login POST Логин → JWT-пара
/api/auth/refresh POST Обновление access-токена
/api/auth/me GET Профиль текущего пользователя
TOKEN=$(curl -s -X POST http://localhost:8765/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "password": "..."}' | jq -r .access_token)

curl http://localhost:8765/api/auth/me -H "Authorization: Bearer $TOKEN"

Projects — /api/projects

Endpoint Method Описание
/api/projects POST Создать проект (201)
/api/projects GET Список проектов
/api/projects/{id} GET Получить проект
/api/projects/{id} PATCH Обновить
/api/projects/{id} DELETE Удалить (204)

Sessions — /api/sessions

Мультиюзерские чат-сессии с историей.

Endpoint Method Описание
/api/sessions POST Создать сессию (201); auto-title при первом сообщении
/api/sessions GET Список сессий
/api/sessions/{id} GET Получить сессию
/api/sessions/{id} PATCH Обновить (title и др.)
/api/sessions/{id} DELETE Удалить (204)
/api/sessions/{id}/messages GET История сообщений
/api/sessions/{id}/chat POST Сообщение в сессию

Usage — /api/usage

Endpoint Method Описание
/api/usage GET Сводка использования по дням
/api/usage/breakdown GET Разбивка по типам запросов

Billing — /api/billing

Stripe-подписки: Free / Pro / Team / Enterprise.

Endpoint Method Описание
/api/billing/plans GET Доступные планы
/api/billing/subscription GET Текущая подписка
/api/billing/checkout POST Stripe Checkout Session
/api/billing/cancel POST Отмена подписки
/api/billing/webhook POST Stripe webhook (подпись проверяется через STRIPE_WEBHOOK_SECRET)

Organizations — /api/organizations

Enterprise-тир: организации с SSO-lite — новые пользователи с email в домене организации автоматически становятся её участниками. Участники организации, чей владелец имеет активную enterprise-подписку, наследуют её лимиты (поэлементный максимум при личной платной подписке).

Endpoint Method Описание
/api/organizations POST Создать организацию (создатель = owner)
/api/organizations GET Список моих организаций
/api/organizations/{id} GET Информация об организации (участникам)
/api/organizations/{id}/members GET Участники с ролями (участникам)
/api/organizations/{id}/members/{user_id} DELETE Исключить участника (только owner)
/api/organizations/{id}/usage GET Аналитика usage по участникам (только owner)

Rate limits

Tier crud rpm chat rpm
Free 100 30
Pro 400 120
Team 1000 300
Enterprise 2000 600

Превышение → 429 с заголовком Retry-After.