Веб-программист. Fallback логика бронирования отелей для чат-бота (FastAPI) (Дистанционная работа)

Бюджет: 1 000 руб.

Задание: Веб-программист. Fallback логика бронирования отелей для чат-бота (FastAPI) (Дистанционная работа)

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). Для оценки задачи высылаю только ключевую бизнес-логику. Полный репозиторий предоставлю после выбора исполнителя! От исполнителя жду ответственность и не срывание сроков!!!!!! Оценивайте время, требуемое на задачу чётко, что бы не было задержек!!!! Задач по доработке этого бота предстоит ещё много, хотелось бы найти ответственного человека для постоянного сотрудничества.