Loading theme preference
Ilia Bukin
← Back to projects

Lyramed

Python
LangGraph
FastAPI
PostgreSQL
PGVector
Docker
Next.js

What it is

Clinical decision-support built at LyraGen for a regulated domain: a Next.js app in front of a FastAPI service that runs a nine-agent system. A triage agent reads the case and routes it to specialists — pharmacology, lab analysis, medical imaging — via handoff tools, so the routing decision lives in the graph rather than in prompt glue.

What I built

  • Designed the agentic pipeline as a standalone FastAPI microservice behind the app, secured with JWT auth.
  • A 5-layer safety pipeline screening every agent response: emergency detection, deterministic rules, and an LLM safety evaluator.
  • A RAG pipeline (Dagster, PGVector) with query-expansion retrieval over the clinical corpus.
  • Automated the GDPR data lifecycle — DSAR deletion propagates across the app, LangGraph state, and object storage via an outbox pattern.
  • Full request observability and tracing with Langfuse; CI/CD and tests across all three services (pytest, Vitest, ruff).

Notes on the build

The interesting constraint was that "correct" is not enough in a clinical setting — a plausible-but-unsafe answer has to be caught before a human ever reads it. That pushed the safety work out of the model and into a pipeline that can be reasoned about, tested, and audited independently of whichever model is behind it.

Requirements came directly from non-technical clients, so most of the design work was translating domain rules into agent boundaries and hard-coded guardrails.

Source is private — this is a commercial product.