Arxivga qaytish
II. Klinik AI va tibbiy platformalarvitrinalidermijoz anonimlashtirilgan

Lab-ma'lumot ishlovchisi — Temporal × LangGraph

Tibbiy mikroservis (Healthcare platform platformasi): laboratoriya natijalarini AI orqali tahlil qilish. Ikki qatlamli orkestrlash — LangGraph (parallel LLM DAG) ustida Temporal (durability), type-safe LLM chiqishlari uchun PydanticAI, kirishda HL7/PDF.

Holat
faol
Davr
2025-09-05 → 2025-12-09
AI sessiyalar
Stek
Tillar
Python
Freymvorklar · Infra
FastAPITemporalLangGraphPydanticAIPydantic v2Keycloak
§01

Umumiy ko'rinish

  • Bu nima: laboratoriya ma'lumotlarini (HL7 xabari, PDF yoki strukturaviy JSON) qabul qiluvchi, ularni AI pipeline orqali o'tkazuvchi (har bir panel bo'yicha tibbiy konsultatsiyalar, salomatlik xulosasi, yuqori darajali konsultatsiya, turmush tarzi bo'yicha tavsiyalar) va yakuniy hisobotni (JSON + HTML) yig'ib, uni PHI servisiga jo'natuvchi Python mikroservisi. Healthcare platform tibbiy platformasining bir qismi.
  • Turi / statusi / roli: api (mikroservis) · active · lead — 72 kommitdan 44 tasi foydalanuvchidan (Davron 42 + Dave93 2), hammuallif aniashev (27, deutsch-cookbook'dagi bilan bir xil odam), Ramiro (3), Alisher (1).
  • Faollik oynasi: 2025-09-05 → 2025-12-09 (~3 oy zich ish).
§02

Stek

  • Tillar: Python 3.11+.
  • Freymvork/kutubxonalar: FastAPI + Uvicorn; Temporal (temporalio) — retry bilan durable workflow orkestrlash; LangGraph (StateGraph) — parallel AI DAG; PydanticAI (Azure OpenAI / Groq) — type-safe LLM interfeyslari; Pydantic v2 + pydantic-settings; hl7 + hl7conv2 (tibbiy HL7 standarti); PyMuPDF (PDF); Jinja2 (HTML hisobotlar); python-jose (JWT); Keycloak (realm asosidagi autentifikatsiya); HashiCorp Vault (hvac); loguru; httpx.
  • Infra/deploy: Docker (API uchun alohida Dockerfile va Temporal worker uchun Dockerfile.worker), docker-compose (tashqi temporal-network); dual CI — GitLab CI (.gitlab-ci.yml, install/lint/build/deploy bosqichlari) + GitHub Actions; uv (paket menejeri, uv.lock); pre-commit; ruff + mypy (strict typing).
  • Ma'lumotlar: o'zi ma'lumot saqlamaydi; PII (bemorni qidirish/yaratish) va PHI (HL7 qayta ishlash, tahlillarni jo'natish) mikroservislari bilan integratsiya qiladi; sirlar uchun Vault.
  • E'tiborga molik tooling: LLM mock'lari uchun PydanticAI testing utils; LangGraph'da MemorySaver checkpointing.
§03

Nima qilindi

Asosiy mualliflik kommitlari (diff/fayllar bo'yicha):

  • Temporal orkestrlash (587a922, 2025-10-30, 20 fayl, +1449): generate_lab_analysissubmit_analysis_to_phi_service activity'lari bilan LabReportProcessingWorkflow, worker, retry siyosatlari.
  • Keycloak auth + HL7 (4fcdb98, 2025-10-21, 19 fayl, +1791): JWT validatsiya, AuthenticationMiddleware, lab endpoint'larda HL7 bilan ishlash, yangi bog'liqliklar.
  • Multi-realm Keycloak (9f57ea8): hard-coded realm'siz token validatsiyasi → endpoint'larda bir nechta realm qo'llab-quvvatlanadi.
  • Dinamik public-endpoint moslash (d794004): path normallashtirish + sozlamalardan API v1 prefiksi.
  • Docker + CI (13bf773 Docker +220, 999210a GitLab CI +95, d92cb3e GitHub Actions +114): to'liq deploy pipeline, alohida worker image.
  • mypy / typing (bc1fc18, e484245): type stub'lar (hvac, jinja2), LLM chiqishlarining strict typing'i.
  • Hajm: 3 oyda 72 kommit; foydalanuvchi arxitekturaning (Temporal + auth + infra) yetakchi muallifi.
§04

Texnik chellenjlar

Haqiqiy kod bo'yicha (foydalanuvchi muallifligi asosiy kommitlar bilan tasdiqlangan):

  • Ikki qatlamli orkestrlash Temporal × LangGraph (src/temporal/workflows.py, src/workflows/lab_graph.py): tashqi Temporal qatlami durability beradi (har bir activity uchun eksponensial backoff bilan RetryPolicy: initial_interval=5s, maximum_interval=30s, backoff_coefficient=2.0, maximum_attempts=3, aniq start_to_close_timeout), ichki LangGraph qatlami esa parallel DAG: tibbiy zanjir (consultations → health_summary → high_level) va turmush tarzi tavsiyalari bir vaqtda ishlaydi, so'ng report_assembly'da birlashadi. To'g'ri Temporal idiomasi workflow.unsafe.imports_passed_through() activity'larni import qilish uchun. → Namoyish etadi: durable execution, worker crash'idan keyin tiklanish, AI-pipeline parallelizmi, muhandislik yetukligi.
  • Type-safe AI pipeline (PydanticAI + LabAnalysisState TypedDict): barcha LLM chiqishlari Pydantic modellari; umumiy state LangGraph tomonidan parallel branch'lar bo'ylab merge qilinadi; provider abstraksiyasi Azure/Groq. → Type-safe LLM'lar, mock'lar orqali testlanuvchanlik.
  • Enterprise auth (Keycloak realm'lari: partner-api / internal-service / b2c; ikki token turi — PII uchun service, PHI uchun partner; permission asosidagi DI require_permission). → Tibbiy ma'lumotlar uchun jiddiy kirish modeli.
  • Tibbiy standartlar: kiruvchi xabarlarni HL7 parsing, PDF (PyMuPDF), sirlar uchun Vault. → Sog'liqni saqlash sohasidagi domen yetukligi.
§05

AI yordamida ishlab chiqish

  • Topilgan sessiyalar: ushbu loyiha uchun to'liq-path-normallashtirilgan kalit ostida 0 ta (tekshirilgan). Ehtimol monorepo / asosiy healthcare-platform repo'sidan ishlangan. Batafsil CLAUDE.md (365 satr) + PYTHON_SERVICE_INTEGRATION_GUIDE.md (33 KB) — AI yordamida ishlab chiqilganining belgisi.
  • AI bilan nima qilingan: bu yerda transkriptlar yo'q; lekin loyihaning o'zi AI servisi (LLM orkestrlash), va hujjatlashtirish Claude Code uchun strukturalangan.
  • AI workflow patternlari: CLAUDE.md arxitektura ma'lumotnomasi + integratsiya qo'llanmasi sifatida.
§06

Yutuqlar va metrikalar

  • Production tibbiy AI mikroservisi: 6 ta LangGraph tuguni, 2 ta Temporal activity, 2 ta API router (partner/B2C), 2 ta mikroservis (PII/PHI) bilan integratsiya + Vault + Keycloak.
  • Dual CI/CD, API+worker konteynerlashtirish, strict typing (mypy) va lint (ruff).
§07

Hissa qo'shganlar

git shortlog · barcha branchlar

  1. Dave9344
  2. aniashev27
  3. Ramiro3
  4. Alisher Mukhtorov1
4 hissadorjami 75 ta kommit
Hozirda

Senior / Staff muhandis rollari va tanlab olingan frilansga ochiqman — prodakshn AI, platforma va full-stack ishlar.

Bog'lanish