feat(llm): RAG knowledge base over clinical guidelines with cited extractive answers
CI / ruff · pytest (pull_request) Successful in 1m30s

- docs/source/rag: PDF sources (KR PTSD 2023, KR depression 2024, meds module spec),
  pdf->txt converter (tables as markdown, page markers, hand-transcribed figures),
  word-level check against pdftotext; fixes HAM-D/MADRS fake headers and split rows
- config/rag: corpus txt + sources.yaml (documents, audiences, retrieval params, synonyms)
- app/llm/rag: Snowball stemmer, section-aware chunker with page citations,
  BM25 + synonym expansion + densest-passage reranking, extractive answer()
  with coverage gate, patient dose/prescribing filter, optional LLM rephrasing
  rejected when it adds content; CLI python -m app.llm.rag
- tests: gold retrieval set (hit@3 >= 15/18), off-topic, safety, faithfulness
- ADR-011

Refs #60

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-04 04:11:06 +03:00
co-authored by Claude Opus 5.5
parent 66986255e2
commit 6a77831603
26 changed files with 7776 additions and 0 deletions
@@ -0,0 +1,101 @@
Б3. Подсхема «Купирующая терапия ДЭ без психотических симптомов» (верхняя схема на стр. 53). На этой странице схема в низком разрешении, поэтому текст блоков сверен с той же схемой в официальной версии КР с рубрикатора Минздрава (cr.minzdrav.gov.ru, КР 301, 2024 г.), где она векторная. Пошаговая запись:
ЭТАП I
1. «Пациент с диагностированным ДЭ без психотических симптомов (единичный либо в рамках РДР)» → шаг 2.
2. «Назначить СИОЗС (A1), СИОЗСН (A1), другие АД нового поколения (A1), ТЦА (A1) в течение 3-4 недель. Принять решение о назначении психотерапии (A1)» → вопрос 3.
3. «Есть ли клинический эффект и хорошая переносимость?»
- Да → вопрос 4.
- Нет → «Назначить АД с другим механизмом действия (A1)» → этап II, вопрос 5.
4. «Достаточен ли клинический эффект?»
- Да → «Продолжить терапию до достижения ремиссии».
- Нет → «Повысить дозу до максимальной и продолжить терапию еще 3-4 недели (A1)» → этап II, вопрос 5.
ЭТАП II
5. «Есть ли клинический эффект и хорошая переносимость?»
- Да → «Продолжить терапию до достижения ремиссии».
- Нет → шаг 6.
6. «Уточнить диагноз, диагностировать соматическую патологию, коморбидные психические расстройства, органическое поражение ЦНС, неразрешенные стрессовые факторы, выявить некомплаентность» → вопрос 7. (От этого блока на схеме идёт и линия обратно к вопросу 5.)
7. «Обнаружена ли какая-либо причина?»
- Да → «Принять соответствующие меры» → возврат к шагу 6.
- Нет → этап III, шаг 8.
ЭТАП III
8. «Регистрировать относительную резистентность и перейти к любой из опций III этапа». Опции проверяются по цепочке:
8а. «Присоединен ли к АД #лития карбонат (B1), или #ламотриджин (A1), или #карбамазепин (B2)?» Да → вопрос 9; Нет → 8б.
8б. «Присоединен ли к АД арипипразол, или кветиапин**, или оланзапин**, или #рисперидон**, или #карипразин**, или #брекспипразол, или #зипрасидон, или #амисульприд (B1)?» Да → вопрос 9; Нет → 8в.
8в. «Присоединен ли к АД сульпирид** или флупентиксол** (C4)?» Да → вопрос 9; Нет → возврат к шагу 8.
9. «Есть ли клинический эффект и хорошая переносимость?»
- Да → «Продолжить терапию до достижения ремиссии».
- Нет → шаг 10.
10. «Верифицировать диагноз, исключить сопутствующую патологию и лекарственные взаимодействия» → вопрос 11. (От этого блока на схеме идёт и линия обратно к вопросу 9.)
11. «Обнаружена ли какая-либо причина?»
- Да → «Принять соответствующие меры» → возврат к шагу 10.
- Нет → этап IV, шаг 12.
ЭТАП IV
12. «Перейти к любой из опций IV этапа». Опции проверяются по цепочке, каждая «Нет» ведёт к следующей:
12а. «Использованы ли другие варианты комбинированной терапии?¹»
12б. «Назначены ли другие лекарственные методы аугментации АД?²»
12в. «Назначена ли ЭСТ (B2)?»
12г. «Назначены ли другие методы электростимуляции мозга?³»
12д. «Назначена ли психотерапия (A1)?»
12е. «Назначены ли другие нелекарственные методы?⁴»
12ж. «Проведена ли одномоментная отмена терапии (C5)?» — Нет → возврат к шагу 12.
Любое «Да» → этап V, вопрос 13.
ЭТАП V
13. «Есть ли клинический эффект?»
- Да → «Продолжить терапию до достижения ремиссии».
- Нет → «Регистрировать абсолютную резистентность» → возврат к шагу 12 (опции IV этапа).
Сноски к схеме:
¹ сочетания двух АД (A1), АД с АВП (B1), с АПП (C4).
² # лития карбонат (B1), #ламотриджин (A1), АД + #карбамазепин** (B2), #буспирон (B2).
³ ТМС (A1), МКТ (C4), ТПЭСМ (B2), СБН (A2), ГСМ (B3).
⁴ светотерапия (B1), депривация сна (B2), физические упражнения (B1), рефлексотерапия (C2), РДТ (C5), ВЛОК (C5), ультрафиолетовое облучение крови (C5), нормобарическая гипоксия (C5), тренировка с биологической обратной связью (B2), плазмаферез (C5), ксенонотерапия (C5).
Б4. Подсхема «Купирующая терапия ДЭ со смешанными чертами» (средняя схема на стр. 53; текст сверен с официальной версией КР с рубрикатора Минздрава). Пошаговая запись:
1. «Диагностирован депрессивный эпизод с симптомами субсиндромальной гипомании (депрессивный эпизод со смешанными чертами)» → вопрос 2.
2. «Получает ли пациент АД?»
- Да → вопрос 3.
- Нет → ветка Б (шаг 8).
Ветка А (пациент получает АД):
3. «АД эффективен?»
- Да → вопрос 4.
- Нет → шаг 5.
4. «Усиливает ли АД симптомы гипомании?»
- Да → шаг 5.
- Нет → ИТОГ.
5. «Отменить АД (C4), назначить #зипрасидон (B2), или #луразидон (A2), или #карипразин** (B2)» → «Есть эффект?»
- Да → ИТОГ.
- Нет → шаг 6.
6. «Добавить или перевести на нормотимик (B2) или сменить АВП (#зипрасидон (B2), #луразидон (A2), кветиапин** (B2), #карипразин** (B2), оланзапин** (B2))» → «Есть эффект?»
- Да → ИТОГ.
- Нет → «ЭСТ (C4)».
Ветка Б (пациент не получает АД):
8. «Назначить #зипрасидон (B2), или #луразидон (A2), или #карипразин** (B2)» → «Есть эффект?» Да → ИТОГ; Нет → шаг 9.
9. «Сменить АВП первой линии или назначить оланзапин** (B2)» → «Есть эффект?» Да → ИТОГ; Нет → шаг 10.
10. «Добавить или перевести на нормотимик (B2)» → «Есть эффект?» Да → ИТОГ; Нет → шаг 11.
11. «Добавить АД или использовать оланзапин**+флуоксетин** (C5)» → «Есть эффект?» Да → ИТОГ; Нет → «ЭСТ (C4)».
ИТОГ: «Эффективную терапию продолжать до достижения ремиссии и переходить к этапу поддерживающей терапии (C4)».
Приложение Б5. «Алгоритм профилактики и ведения пациентов с синдромом отмены приема антидепрессантов (СОПА)» (нижняя схема на стр. 53; текст сверен с официальной версией КР с рубрикатора Минздрава). Пошаговая запись:
Боковые пометки на схеме: «Проинформировать пациента о СОПА до лечения АД» (до начала лечения) и «Повторно проинформировать пациента о СОПА при отмене АД» (на этапе отмены).
1. «Отмена АД» → вопрос 2.
2. «Пациент принимает высокие дозы АД / испытывал симптомы СОПА после пропуска приема АД / испытывал симптомы СОПА в прошлом при отмене АД / принимает АД с высоким риском развития СОПА»
- да → «Высокий риск СОПА» → «Максимально медленное снижение дозы АД» → шаг 3.
- нет → «Постепенное снижение дозы АД» → шаг 3.
3. «Симптомы СОПА» — по выраженности:
- «Легкая выраженность симптомов» → «Необходимо успокоить пациента, объяснив временный характер симптомов».
- «Умеренная выраженность симптомов» → «Симптоматическая терапия».
- «Тяжелая выраженность симптомов» → два варианта:
а) «При отмене СИОЗС или СИОЗСН можно перейти на флуоксетин; при отмене АД из других групп можно перейти на фармакодинамически сходный АД с более длительным периодом полувыведения с прекращением приема исходного АД после нескольких недель лечения новым АД и постепенной отменой последнего в последующем»;
б) «Можно возобновить АД в минимально эффективной дозе или в той дозе, при которой не было симптомов отмены, после чего отменить его более дробным и медленным титрованием».