Перейти к содержанию

Бэкенд

В этой статье описаны основные каталоги и модули сервера, расположенного в 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 для получения значений из окружения с возможностью обновления во время работы.

Добавление нового роутера

  1. Создайте файл в routers/ и объявите router = APIRouter().
  2. Опишите эндпоинты и схемы запросов/ответов.
  3. Импортируйте роутер в main.py и подключите через app.include_router.
  4. Обновите документацию и выполните npm run format и npm run lint.

Добавление новой модели

  1. Создайте файл в models/ и определите класс SQLAlchemy, наследующийся от Base.
  2. Добавьте pydantic‑модели для форм и ответов.
  3. При необходимости создайте Alembic‑миграцию.
  4. Используйте модель в соответствующих роутерах и сервисах.
  5. Запустите npm run format и npm run lint.