Вот полное описание архитектуры классов текущего проекта AI Chat Microservice, структурированное по слоям:
Проект построен на FastAPI, структурирован по слоям (core, services, schemas, models, integrations), расширен поддержкой поведения агентов (CrewAI-style) через Notion.
Точка входа — создаёт FastAPI-приложение, подключает:
- роутеры (
api_router,health_router), - CORS,
- OpenTelemetry-трейсинг (
setup_tracing), - поведение агентов из Notion через
BehaviorManager.
class BehaviorDefinition(BaseModel):
agents: List[AgentSchema]
tasks: List[TaskSchema]
process: Optional[str]- Описывает YAML-структуру поведения агентов (роль, цель, инструменты, делегирование, задачи).
- Агент в стиле CrewAI:
role,goal,backstory,tools,tasks.
- Описание задачи, которую агент должен выполнить (описание, результат, контекст, агент).
- Pydantic-схемы, определяющие формат общения с LLM.
- Схемы проектов (ID, имя), поддерживают проекты с историей диалогов.
- Хранилище истории диалогов в памяти: кто сказал, что, когда, trace_id/span_id.
-
Основная бизнес-логика:
- вызывает LLM (
OpenRouterClient), - логирует события (через
enrich_context), - оборачивает ошибки и выводит метки (
job=chat,trace_id).
- вызывает LLM (
- Асинхронный HTTP-клиент (httpx), вызывает
/chat/completionsна LiteLLM/LLM API. - Поддерживает
project_id,user_api_key,trace_id.
- Временное хранилище проектов и их истории в оперативке.
/healthendpoint для Kubernetes.
Settingsна основе.env: токены, URL LLM, модель, project_name.
- Обёртка над API Notion, получает YAML-данные о поведении агентов.
- Загружает YAML из Notion → парсит в
BehaviorDefinition. - Доступен как
app.state.behavior_manager.
- Обработка сообщений пользователя → вызов LLM → возврат ответа.
- Создание и просмотр проектов.
- Отправка сообщений в рамках проекта.
- Отдаёт текущую схему поведения из Notion.
Тесты (WIP):
tests/behavior/test_models.py— проверка схемBehaviorDefinition.tests/test_logging.py— проверка enrich_context и логов.
- ✅ Добавление Crew YAML через
Crew.load(...) - ✅ Интеграция с Vector/Loki через job-теги
- 🔄 Возможность импорта behavior напрямую в Crew (при наличии crewai CLI в окружении)
Если тебе нужно:
- Генерация диаграммы классов
- Ссылки между API endpoints и классами
- Полный OpenAPI spec + JSON schemas
— просто скажи, и я сгенерирую.