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