Бэкенд
В этой статье описаны основные каталоги и модули сервера, расположенного в backend/corpai_platform/.
Структура
routers/
Каталог с FastAPI‑роутерами. Каждый файл содержит объект APIRouter и набор конечных точек. Роутеры подключаются в приложении через main.py.
models/
SQLAlchemy‑модели и pydantic‑схемы. Файлы описывают структуру таблиц, формы запросов/ответов и вспомогательные методы для работы с базой данных.
retrieval/
Компоненты для поиска знаний и работы с внешними источниками данных. Внутри находятся загрузчики документов, векторные хранилища и утилиты.
tasks.py
Регистрация и управление асинхронными задачами. Здесь создаются задачи, отслеживаются их идентификаторы и выполняется взаимодействие с Redis для распределённого управления.
celery_app.py
Настройка Celery и определения фоновых задач, таких как рассылка писем и уведомления. Использует URL брокера из переменных окружения и предоставляет готовый экземпляр celery_app.
config.py
Система конфигурации платформы. Содержит модель Config, функции загрузки и сохранения настроек в базе данных и класс PersistentConfig для получения значений из окружения с возможностью обновления во время работы.
Добавление нового роутера
- Создайте файл в
routers/и объявитеrouter = APIRouter(). - Опишите эндпоинты и схемы запросов/ответов.
- Импортируйте роутер в
main.pyи подключите черезapp.include_router. - Обновите документацию и выполните
npm run formatиnpm run lint.
Добавление новой модели
- Создайте файл в
models/и определите класс SQLAlchemy, наследующийся отBase. - Добавьте pydantic‑модели для форм и ответов.
- При необходимости создайте Alembic‑миграцию.
- Используйте модель в соответствующих роутерах и сервисах.
- Запустите
npm run formatиnpm run lint.