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

Эндпоинты инструментов

Все маршруты под /api/v1, нужна аутентификация (если не указано иное).

Одноразовые tools

Инструмент Метод Путь
Level Designer POST /level-designer
Quest Generator POST /quest-generator
Texture Upscaler POST /texture-upscaler
Character Creator POST /character-creator
Sound Designer POST /sound-designer
Playtester POST /playtester
Localization POST /localization
Game Balancer POST /game-balancer
Level Analyzer POST /level-analyzer
Level Analyzer (compare) POST /level-analyzer/compare
Store Description POST /store-description
Playtest Analyzer POST /playtest-analyzer
Trailer Script POST /trailer-script
Review Analyzer POST /review-analyzer

Успешный запуск создаёт запись generation (ToolType) с output_data / URL ассетов. Точные тела запросов — в OpenAPI (/docs вне production) и формах UI.

Discord Bot

Действие Метод Путь
Configure POST /discord-bot/configure
Status GET /discord-bot/status
List commands GET /discord-bot/commands
Create command POST /discord-bot/command
Moderate POST /discord-bot/moderate
Simulate command POST /discord-bot/simulate-command
Analyze POST /discord-bot/analyze
Analytics GET /discord-bot/analytics
Users GET /discord-bot/users

analyze тратит квоту генераций; configure / moderate / simulate — управляющие хелперы.

Примеры

curl -s -X POST http://localhost:8000/api/v1/level-designer \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d "{\"project_id\":\"$PID\",\"description\":\"Подводный храм с ловушками\"}" | jq .

curl -s -X POST http://localhost:8000/api/v1/character-creator \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"description":"Эльф-лучник в кожаной броне"}' | jq .

curl -s -X POST http://localhost:8000/api/v1/store-description \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"game_name":"Dungeon Explorer","platform":"steam","genre":"Action RPG","description":"Roguelike-данжены"}' | jq .

curl -s -X POST http://localhost:8000/api/v1/level-analyzer/compare \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"level_a":{...},"level_b":{...}}' | jq .

Texture upscaler обычно принимает multipart/form-data — точные поля в OpenAPI / UI.

Квоты

Успешная генерация тратит квоту плана и даёт XP. Превышение → 402.

Rate limits

Auth и tool-роуты используют sliding window в Redis (fallback в память). При APP_ENV=test rate limiting выключен, чтобы CI проходил полный набор тестов.

Асинхронные задачи

Upscale, character и sound могут уходить в Celery — дождитесь завершения worker перед скачиванием.