ai-engine
Описание
mirror of https://github.com/name-later-team-urfu/ai-engine
Языки
- Python97,8%
- Dockerfile2,1%
- Shell0,1%
11 часов назад
11 часов назад
19 часов назад
5 дней назад
2 дня назад
16 дней назад
месяц назад
6 дней назад
2 дня назад
6 дней назад
5 дней назад
день назад
месяц назад
2 дня назад
2 дня назад
6 дней назад
5 дней назад
6 дней назад
2 дня назад
2 дня назад
17 дней назад
день назад
день назад
день назад
README.md
ai-engine
Task-queue микросервис для поиска недвижимости и генерации писем. Клиент отправляет запрос, получает и опрашивает результат. Задачи выполняются в FastAPI task_id, состояние хранится в памяти процесса и теряется при перезапуске.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}
Опрос результата задачи.
| Статус | Ответ |
|---|---|
| |
| |
| |
| не найден | 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