Fallback логика бронирования отелей для чат-бота (FastAPI)
О проекте
Это чат-бот на FastAPI с веб интерфейсом, который помогает пользователям искать и бронировать отели. Бизнес-логика разнесена по слоям (services/), интеграция с внешними системами через отдельные асинхронные Python-клиенты для Agoda и HotelLook.
Код структурирован, поддерживает работу с историей диалога, лимиты по сообщениям, разные модели данных (SQLAlchemy, Pydantic). Модули легко расширять.
Суть задачи
При поиске отеля сначала делаем запрос в API Agoda.
Если Agoda не отвечает (ошибка сети, HTTP 4xx/5xx, нет результатов и т.д.), тогда повторяем тот же запрос во второй API Hotellook.
Оба апи уже реализованы, но блок агоды не формирует нормальные ссылки, надо с этим разобраться
Требования к исполнителю:
Python 3.10+, FastAPI, Pydantic, асинхронные вызовы (async/await).
Знание ООП и dependency injection, базовые навыки работы с git и документацией.
Логика fallback должна быть хорошо прокомментирована.
(Будет плюсом: unit-тест на новую логику.)
Структура проекта (кратко)
main.py точка входа, FastAPI.
services/ бизнес-логика (ChatService, stages, LLM-клиенты, booking-клиенты).
models.py pydantic & sqlalchemy модели.
utils.py утилиты.
static/ фронтенд.
Ожидаемый результат
Изменённые исходные файлы + пояснения.
Краткая инструкция для теста: как убедиться, что при ошибке Agoda сервис переключается на Hotellook.
Безопасная работа с секретами и API-ключами (в .env).
Для оценки задачи высылаю только ключевую бизнес-логику. Полный репозиторий предоставлю после выбора исполнителя!
От исполнителя жду ответственность и не срывание сроков!!!!!! Оценивайте время, требуемое на задачу чётко, что бы не было задержек!!!! Задач по доработке этого бота предстоит ещё много, хотелось бы найти ответственного человека для постоянного сотрудничества.
Опубликован 20.04.2025 в 16:37 Последнее изменение: 20.04.2025 в 16:16