Идет отладка - 95% (tst, dev)
В базовом расширенном MVP, функционал дает создать чатик, создать проект с чатиками, сохранение истории (память пока в "сыром" виде), загрузка ии-дрим-тим на базе CrewAI, подгрузка из Notion поведения (что то типо базовых паттернов поведения)...
Грубу говоря сейчас это что-то там Ops инженер который будет следить за репой (этой) и девопсить проект и учиться на ошибках (инцеденты, логи, деплои...)...
Еще тут модель психики для эмуляции сознания, чтобы ии-агент (цифрофой двойник) развивался как живой организм за счет вылавливания "моментов взросления" (психоанализ + теория объектных отношений).
И еще био-пайплайны (пока пусто...) так как интересно направление биоинформатики (nextflow и прочие shakemake...). В ИИ-агенте будет включены био-пайплайны по анализу крови, рака и других био-операций...
- [инфра] Настройить нджикc ингресс, серт менеджер, вэбки арго в паблик
- [инфра] Через external dns автомазировать работу с клаудфлейр по части днс | Манифестов добавить
- [инфра] Отладить хелм релиз для чат-апи | обернуть в апп-фор-аппс
- [код] отладить базовый функционал чата (пройти смок паблик тест) | стейт перенести в постгрее
- Добавить протект на майн-ветку | проверить работу
- ...
- Убрать LiteLLM и сделать отдельный сервис, который будет напрямую ходить к OpenRouter
- Отладить getting-started | сменить кластер | запустить два+ кластера | применить паттерн от Арго - ApplicationSet
- Написать свой контролер | описываем схему через CRD | все в сути класс на го | все есть обьект | что сверху апишка, что снизу она же
- Добаваить тестов на предмет хелм рендеринда конфигов | добавить opa политики
- Добавить семантическое версионирование + git-теги + хелм-релиз-логика
- Добавить argocd-image-updater
- Тестить сборку релиза перед мерджем, в самом pr
- сonventional сommits | всё в .releaserc.json | встроить флоу для гита
- Добавить сервис по анализу инцидентов
- Продумать концепцию нейминга как под saas сервис
- Добавить прозрачность работы с env:
-
Интегрировать Consul+ external-secrets | консул не нужен | добавить плагин из экосистемы арго чтобы бегал в vault | external secret до облаков - Прикрутить service mesh. Линкерд или Истио | Линкерд у меня тут не 1kk RPS | консул был нужен как mesh, но лучше отдельный линкерд
- Обеспечить возможность править env на лету (например, через SIGHUP или альтернативный механизм) | холиварный вопрос на счет таких подходов
- Определить сервисы через Service + Endpoints [?]
- [mesh] Создать отдельный сервис через cdktf, чтобы инфра сама себя воспроизводила (всм как бы добавить терраформа, но через питон)
-
За счёт CrewAI и структурности это крайне универсальное решение, которое можно применить где угодно. Всё зависит от силы мысли и мечты.
То, что в директории
context/
на первый взгляд кажется банальным — на самом деле просто слои памяти, контекста и наблюдений. Это не про «ответ нейронки», это про то, чтобы собрать своё понимание в код и вынести его в репу.Только мой мозг может сложить это в индивидуальную структуру и построить спираль. Это способ передать контекст — для тех, кто хочет не просто пользоваться, а узнать что-то новое.
Лучше не следуй за мной по стопам, если боишься пустоты :)
GitOps составляющая взята из подкаста DKT66 - Что такое GitOps и с чего начать? + репа так сказать к подкасту (в моем понимание ценности этой инфы нет предела)
Логика ролевой системы для GitOps будет строится на моем прошлом опыте работы и архитектуры Active Directory (ну как ее строят в real-enterprise-shit)
Установить в новый кластер с нуля с восстановлением всех ресов кластера на основе роли (секреты нужно обновить)
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
git clone https://github.com/justgithubaccount/app-release.git
cd app-release
kubectl apply -f infra/_roles/role-dev-enviroment.yaml
То что дальше требует обновления, но +/- так оно и есть, тесты, да нужно, накинуть...
- 🧠 Архитектура классов chat-api
- ⚙️ Использование OpenTelemetry
- 🤖 Определения CrewAI и поведение агентов
- 📜 Общий обзор CrewAI
- 🛠️ Примеры задач для Codex
Полный обзор микросервиса для работы с LLM (GPT-4 и др.), построенного на FastAPI, с CrewAI-интеграцией, observability-стеком, GitOps-деплоем и тестируемым CI/CD пайплайном.
Проект реализует микросервисную архитектуру, основной задачей которого является взаимодействие с LLM-моделью (через LiteLLM-прокси или напрямую). Внутри интеграция с Notion, CrewAI, observability через OpenTelemetry и инфраструктурная автоматизация.
- FastAPI backend: REST API (
/api/v1/chat
,/health
,/docs
,/behavior/schema
) - Логика:
services/chat_service.py
- LLM-клиент:
core/llm_client.py
, использует LiteLLM / OpenAI API - Notion Behavior: YAML-файл из Notion парсится в
BehaviorDefinition
- CrewAI YAML: можно подключать Crew через YAML (см.
crew-infra-cluster.yaml
)
ArgoCD
— GitOps-подход (слежение заmanifests/
)SealedSecrets
— безопасное хранение API-ключей и конфигурацийLiteLLM
— деплой в отдельный pod (proxy над LLM)Vector
,Loki
,Grafana
— observability стекOpenTelemetry
+structlog
— логгирование и трассировка
apps/
chat/
app/ # Исходный код FastAPI приложения
api.py
main.py
behavior/ # YAML-модели и схемы поведения
core/ # Клиенты, конфиги, память
models/ # Pydantic модели для истории чатов
integrations/ # Notion client и behavior manager
observability/
services/
schemas/
crew-infra-cluster.yaml # YAML-определение Crew для CrewAI
requirements.txt
manifests/
... # YAML манифесты для ArgoCD, ingress, sealed secrets
readme/
open-telemetry.md
codex-task-example.md
chata-api-classes.md
scripts/
context-chunk-export.sh
k8s-basic.sh
k8s-export-structured.sh
...
tests/
behavior/test_models.py
test_logging.py
Makefile
pyproject.toml
- Сборка Docker-образа
ghcr.io/justgithubaccount/chat-api:latest
- Push в GitHub Container Registry
- Автоматически следит за
manifests/chat-api-*.yaml
- Применяет обновления и следит за дрейфом
make dev # установка dev-зависимостей
make test # pytest
make run # запускает FastAPI
Используется SQLModel и PostgreSQL. URL подключения задаётся переменной DATABASE_URL
(по умолчанию SQLite sqlite:///db.sqlite3
).
Инициализация и миграции через Alembic:
alembic init alembic # однократная инициализация
alembic revision --autogenerate -m "init"
alembic upgrade head
make dev
make test
make lint
make fmt
make run
make docker
- Логгирование: через
structlog
, enriched контекстом (trace_id, span_id) - Трейсинг: через
OpenTelemetry + Loki
- Метрики: Prometheus-compatible (
chat_requests_total
и др.)
# enrich_context(event="chat_api_called", project_id=...) -> лог с trace_id
- YAML из Notion загружается при старте
- Преобразуется в
BehaviorDefinition
черезpydantic
- Эндпоинт
/behavior/schema
возвращает текущее поведение
tasks:
- description: "Search arXiv"
expected_output: "Top 5 paper titles"
context: ["Focus on GPT-4"]
agent: "researcher"
agents:
- role: "researcher"
goal: "Understand GPT-4 applications"
backstory: "PhD in ML"
tools: ["browser"]
allow_delegation: true
from crewai import Crew
crew = Crew.load("crew-infra-cluster.yaml")
crew.kickoff()
Endpoint | Method | Описание |
---|---|---|
/api/v1/chat |
POST | Стандартный чат |
/api/v1/projects |
GET/POST | Создание/список проектов |
/api/v1/projects/{id}/chat |
POST | Чат внутри проекта (с историей) |
/api/v1/projects/{id}/history |
GET | История чата по trace_id |
/behavior/schema |
GET | Текущее поведение агента (из Notion) |
/health |
GET | Healthcheck для k8s/Ingress |
.env
→SealedSecrets
- Чувствительные ключи (
OPENAI_API_KEY
,NOTION_TOKEN
) не коммитятся
kubeseal --format yaml < secret.yaml > chat-api-secrets-sealed.yaml
crewai-definition.md
— архитектура CrewAI и модели поведенияchata-api-classes.md
— описание всех классов микросервисаopen-telemetry.md
— observability и трассировкаcodex-task-example.md
— как писать Codex-таски для автогенерацииsource-v*.md
— версии исходников/архитектуры (исторические)
- Добавить новые агенты/роли → в YAML в Notion или
crew-infra-cluster.yaml
- Использовать MCP → логика
incident_llm_analyst
,bioagent_mapper
и др. - Подключить ClickHouse → для хранения больших объёмов логов и ответов
Этот проект объединяет:
- Clean Architecture
- GitOps
- Observability
- CrewAI agent orchestration
Идеально подходит как стартер для AI-сервисов в production-среде.
🔁 Всё можно развёртывать и восстанавливать только по Git: infra as code, app as code, behavior as code.