ai-engine

0

Описание

mirror of https://github.com/name-later-team-urfu/ai-engine

Языки

  • Python97,8%
  • Dockerfile2,1%
  • Shell0,1%
11 часов назад
11 часов назад
5 дней назад
6 дней назад
5 дней назад
месяц назад
2 дня назад
README.md

ai-engine

Task-queue микросервис для поиска недвижимости и генерации писем. Клиент отправляет запрос, получает

task_id
и опрашивает результат. Задачи выполняются в FastAPI
BackgroundTasks
, состояние хранится в памяти процесса и теряется при перезапуске.

Установка и запуск

Конфигурация

Все переменные читаются из

.env
в корне проекта.

База данных

При отсутствии Postgres-переменных — фолбэк на

sqlite://db.sqlite3
.

LLM

При отсутствии API-ключа сервис стартует с предупреждением — агент недоступен, используется deterministic executor.

Парсер и роутинг

API

GET /health

POST /v1/send_message

Поиск объявлений.

Ответ:

{ "task_id": "uuid", "status": "in_progress" }

POST /v1/write_mail

Генерация письма по объявлению.

GET /v1/result/{task_uuid}

Опрос результата задачи.

СтатусОтвет
completed
{ "text": "...", "attachment": ["uuid", ...] }
in_progress
{ "status": "in_progress", "task_id": "uuid" }
error
{ "status": "error", "task_id": "uuid", "detail": "..." }
не найденHTTP 404

GET /v1/tasks

Список всех задач. Query param:

?session_id=uuid
.

GET /v1/tasks/{task_uuid}

Статус конкретной задачи.

Поток выполнения

POST /v1/send_message или /v1/write_mail → TaskService.create_task() → RuntimeTask (IN_PROGRESS) → BackgroundTasks.add_task() → возвращает task_id сразу Фон (таймаут 60s): TaskExecutionPolicy → "agent" | "deterministic" agent: run_agent() via LangGraph ├─ загружает Premises + Messages сессии из БД ├─ инструменты: find_listings_tool, change_objects_tool └─ при AgentExecutionError → fallback на deterministic TaskService.save() → COMPLETED | ERROR GET /v1/result/{task_uuid} → ResultResponse

Тесты

Demo-скрипт