feat(bot): чат-агент — RAG + карта ЕМИАС + проверка препаратов #72

Merged
Eleboba merged 1 commits from feat/chat-agent into dev 2026-10-04 14:41:56 +03:00
Owner

Что меняется

Чат-агент: свободные вопросы о лечении и о лекарствах обрабатывает LLM с инструментами (только чтение, привязаны к токену текущего пациента):

  • search_guidelines — RAG по КР (депрессия 2024, ПТСР 2023), дозировки вырезаются;
  • get_patient_record — мок карты ЕМИАС: диагнозы, сопутствующие заболевания, непереносимости, назначения других врачей, текущее назначение;
  • get_drug_info — состав, противопоказания, взаимодействия;
  • check_drug_for_patient — детерминированная проверка препарата под карту пациента.

Провайдеры: OpenRouter (временно, только синтетика) и офлайн-mock; GigaChat — следующим шагом. Включается при OPENROUTER_API_KEY (или CHAT_AGENT=mock). На вход провайдеру идёт только обезличенный текст, на выходе стоит фильтр запретов. При любой ошибке ответ даёт прежний экстрактивный RAG или med_qa.

Как проверить

make lint test; CHAT_AGENT=mock uv run python -m app.llm.agent "Можно ибупрофен вместе с моими таблетками?"

🤖 Generated with Claude Code

## Что меняется Чат-агент: свободные вопросы о лечении и о лекарствах обрабатывает LLM с инструментами (только чтение, привязаны к токену текущего пациента): - `search_guidelines` — RAG по КР (депрессия 2024, ПТСР 2023), дозировки вырезаются; - `get_patient_record` — мок карты ЕМИАС: диагнозы, сопутствующие заболевания, непереносимости, назначения других врачей, текущее назначение; - `get_drug_info` — состав, противопоказания, взаимодействия; - `check_drug_for_patient` — детерминированная проверка препарата под карту пациента. Провайдеры: OpenRouter (временно, только синтетика) и офлайн-mock; GigaChat — следующим шагом. Включается при `OPENROUTER_API_KEY` (или `CHAT_AGENT=mock`). На вход провайдеру идёт только обезличенный текст, на выходе стоит фильтр запретов. При любой ошибке ответ даёт прежний экстрактивный RAG или `med_qa`. ## Как проверить `make lint test`; `CHAT_AGENT=mock uv run python -m app.llm.agent "Можно ибупрофен вместе с моими таблетками?"` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 1 commit 2026-10-04 14:39:35 +03:00
Free-text treatment and medication questions go to an LLM agent with read-only tools bound to the current
patient: guideline search (RAG, doses stripped), ЕМИАС record mock (diagnoses, comorbidities, intolerances,
other specialists' drugs, current prescription), drug info (composition, contraindications, interactions)
and a deterministic patient-specific check. Providers: OpenRouter (temporary, synthetic data only) and an
offline mock; GigaChat to follow. Scrubbed input only, forbidden-output filter, any failure falls back to
the existing extractive RAG / instruction answers. Off unless OPENROUTER_API_KEY or CHAT_AGENT=mock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba merged commit a2b1b2e7a5 into dev 2026-10-04 14:41:56 +03:00
Eleboba deleted branch feat/chat-agent 2026-10-04 14:41:56 +03:00
Sign in to join this conversation.