§01
Обзор
- Что это: Python-микросервис, который принимает лабораторные данные (HL7-сообщение, PDF или структурированный JSON), прогоняет их через AI-пайплайн (медицинские консультации по каждой панели, health summary, консультация верхнего уровня, рекомендации по образу жизни) и собирает итоговый отчёт (JSON + HTML), отправляя его в PHI-сервис. Часть медицинской платформы Healthcare platform.
- Тип / статус / роль: api (микросервис) · active · lead — 44 из 72 коммитов от пользователя (Davron 42 + Dave93 2), соавтор aniashev (27, тот же человек, что и в deutsch-cookbook), Ramiro (3), Alisher (1).
- Окно активности: 2025-09-05 → 2025-12-09 (~3 месяца плотной работы).
§02
Стек
- Языки: Python 3.11+.
- Фреймворки/библиотеки: FastAPI + Uvicorn; Temporal (
temporalio) — надёжная оркестрация воркфлоу с ретраями; LangGraph (StateGraph) — параллельный AI-DAG; PydanticAI (Azure OpenAI / Groq) — типобезопасные интерфейсы к LLM; Pydantic v2 + pydantic-settings;hl7+hl7conv2(медицинский стандарт HL7); PyMuPDF (PDF); Jinja2 (HTML-отчёты);python-jose(JWT); Keycloak (авторизация на основе realm); HashiCorp Vault (hvac); loguru; httpx. - Инфраструктура/деплой: Docker (отдельный
Dockerfileдля API иDockerfile.workerдля Temporal-воркера), docker-compose (внешняяtemporal-network); двойной CI — GitLab CI (.gitlab-ci.yml, стадии install/lint/build/deploy) + GitHub Actions; uv (пакетный менеджер,uv.lock); pre-commit; ruff + mypy (строгая типизация). - Данные: сам данные не хранит; интегрируется с микросервисами PII (поиск/создание пациента) и PHI (обработка HL7, отправка анализов); Vault для секретов.
- Заметный тулинг: тестовые утилиты PydanticAI для мокинга LLM; чекпоинтинг через MemorySaver в LangGraph.
§03
Что реализовано
Основные авторские коммиты (по диффу/файлам):
- Оркестрация на Temporal (
587a922, 2025-10-30, 20 файлов, +1449):LabReportProcessingWorkflowс активностямиgenerate_lab_analysis→submit_analysis_to_phi_service, воркер, политики ретраев. - Авторизация Keycloak + HL7 (
4fcdb98, 2025-10-21, 19 файлов, +1791): валидация JWT,AuthenticationMiddleware, обработка HL7 на лабораторных эндпоинтах, новые зависимости. - Мульти-realm Keycloak (
9f57ea8): валидация токена без захардкоженного realm → на эндпоинтах поддерживается несколько realm. - Динамический матчинг публичных эндпоинтов (
d794004): нормализация путей + префикс API v1 из настроек. - Docker + CI (
13bf773Docker +220,999210aGitLab CI +95,d92cb3eGitHub Actions +114): полный пайплайн деплоя, отдельный образ воркера. - mypy / типизация (
bc1fc18,e484245): type stubs (hvac, jinja2), строгая типизация LLM-выводов. - Объём: 72 коммита за 3 месяца; пользователь — ведущий автор архитектуры (Temporal + авторизация + инфраструктура).
§04
Технические челленджи
По фактическому коду (авторство пользователя подтверждено крупными коммитами):
- Двухслойная оркестрация Temporal × LangGraph (
src/temporal/workflows.py,src/workflows/lab_graph.py): внешний слой Temporal обеспечивает надёжность (пер-активностьRetryPolicyс экспоненциальным backoff:initial_interval=5s,maximum_interval=30s,backoff_coefficient=2.0,maximum_attempts=3, явныйstart_to_close_timeout), внутренний слой LangGraph — параллельный DAG: медицинская цепочка (consultations → health_summary → high_level) и рекомендации по образу жизни выполняются параллельно, затем сходятся в report_assembly. Правильная идиома Temporalworkflow.unsafe.imports_passed_through()для импорта активностей. → Демонстрирует: durable execution, восстановление после краха воркера, параллелизм AI-пайплайна, инженерную зрелость. - Типобезопасный AI-пайплайн (PydanticAI +
LabAnalysisStateTypedDict): все LLM-выводы — Pydantic-модели; общий стейт мёржится LangGraph между параллельными ветками; абстракция провайдера Azure/Groq. → Типобезопасные LLM, тестируемость через моки. - Enterprise-авторизация (realm Keycloak: partner-api / internal-service / b2c; два типа токенов — service для PII, partner для PHI; DI на основе прав
require_permission). → Серьёзная модель доступа к медицинским данным. - Медицинские стандарты: парсинг входящих HL7-сообщений, PDF (PyMuPDF), Vault для секретов. → Доменная зрелость в healthcare.
§05
AI-разработка
- Найдено сессий: 0 по ключу с полной нормализацией пути для этого проекта (проверено). Вероятно, работа шла из монорепо / основного репозитория healthcare-platform. Подробный
CLAUDE.md(365 строк) +PYTHON_SERVICE_INTEGRATION_GUIDE.md(33 КБ) — признак AI-ассистированной разработки. - Что делалось с AI: транскриптов здесь нет; но сам проект — это AI-сервис (оркестрация LLM), а документация структурирована под Claude Code.
- Паттерны AI-воркфлоу: CLAUDE.md как архитектурный референс + интеграционный гайд.
§06
Достижения и метрики
- Продакшн-микросервис медицинского AI: 6 узлов LangGraph, 2 активности Temporal, 2 API-роутера (partner/B2C), интеграция с 2 микросервисами (PII/PHI) + Vault + Keycloak.
- Двойной CI/CD, контейнеризация API+воркера, строгая типизация (mypy) и линт (ruff).