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,5 @@
Рисунок 1 «Схема течения ДЭ и РДР и этапов терапии» (модель D.J. Kupfer, 1991). Описание графика:
- Горизонтальная пунктирная линия делит уровни «Симптомы» (выше) и «Синдром» (ниже). Кривая состояния опускается ниже линии — «Прогрессирование заболевания» до уровня синдрома.
- «Эффективное лечение» (стрелка) — кривая поднимается обратно выше линии и выходит на плато: точка «Ремиссия».
- После ремиссии на плато отмечена точка «Обострение» (пунктирные ветви вниз — возможный возврат симптомов), далее точка «Выздоровление», затем точка «Рецидив» (пунктирная ветвь вниз).
- Подписи этапов терапии под графиком: «Купирующая» (от начала эффективного лечения до ремиссии), «Стабилизирующая» (от ремиссии до выздоровления; в этот период возможно обострение), «Противорецидивная» (после выздоровления; в этот период возможен рецидив).
@@ -0,0 +1,62 @@
Б1. Блок-схема «Этапы ведения пациента (взрослые) с ДР или РДР». Пошаговая запись. Ссылки «Стр. N, раздел X» стоят на схеме мелким шрифтом рядом с блоками и указывают на страницы исходного документа. Текст блоков сверен с официальной версией КР с рубрикатора Минздрава (КР 301, 2024 г.).
1. «Пациент с подозрением на ДЭ или РДР» → шаг 2.
2. «Диагностика пациента с подозрением на ДЭ или РДР (подсхема Б.2)» (Стр. 17, раздел 2.1–2.5) → вопрос 3.
3. «Установлен ли диагноз ДЭ или РДР?»
- Нет → «Диагностика другого психического расстройства».
- Да → шаг 4.
4. «Купирующая терапия (подсхема Б.3 или Б.4)» (Стр. 21, раздел 3.1–3.4) → вопрос 5.
5. «Достигнута ли ремиссия?»
- Нет → возврат к шагу 4 (купирующая терапия).
- Да → «Стабилизирующая терапия» (Стр. 40, раздел 3.5) → вопрос 6.
6. «Сохраняется ли ремиссия не менее 6 месяцев?»
- Нет → возврат к шагу 4 (купирующая терапия).
- Да → вопрос 7.
7. «Необходима ли противорецидивная терапия?»
- Нет → «Окончание терапии» (Стр. 44, раздел 3.6).
- Да → «Противорецидивная терапия, психообразование» (Стр. 41, раздел 3.6) → вопрос 8.
8. «Возник ли рецидив ДЭ?»
- Да → возврат к шагу 4 (купирующая терапия).
- Нет → «Окончание терапии».
Б2. Подсхема «Диагностика пациента (взрослые) с ДР или РДР» (нижняя схема на стр. 52). На этой странице схема в низком разрешении, поэтому текст блоков сверен с той же схемой в официальной версии КР с рубрикатора Минздрава (КР 301, 2024 г.). Пошаговая запись:
1. «Диагностика пациента с подозрением на ДЭ или РДР» → «Провести психиатрическое и медицинское обследование, определить клинический статус пациента» → вопрос 2.
2. «Соответствует ли состояние пациента общим критериям ДЭ?»
- Нет → «Перейти к клиническим рекомендациям, наиболее соответствующим состоянию пациента».
- Да → вопрос 3.
3. «Имеются ли сведения о маниакальном, гипоманиакальном или смешанном эпизоде в анамнезе?»
- Да → «Перейти к клиническим рекомендациям "Биполярное аффективное расстройство (F31)"».
- Нет → вопрос 4.
4. «Является ли текущий эпизод повторным?»
- Нет → «Диагностировать ДЭ (F32.-)» → вопрос 5.
- Да → «Диагностировать РДР, текущий эпизод (F33.-)» → вопрос 5.
5. «Присутствуют ли в состоянии пациента психотические симптомы?»
- Да → «Диагностировать ДЭ тяжелой степени с психотическими симптомами (F3x.3)» → вопрос 9.
- Нет → вопрос 6.
6. «Соответствует ли состояние пациента критериям ДЭ тяжелой степени без психотических симптомов?»
- Да → «Диагностировать ДЭ тяжелой степени без психотических симптомов (F3x.2)» → вопрос 10.
- Нет → вопрос 7.
7. «Соответствует ли состояние пациента критериям ДЭ средней степени?»
- Да → «Диагностировать ДЭ средней степени (F3x.1)» → вопрос 10.
- Нет → вопрос 8.
8. «Соответствует ли состояние пациента критериям ДЭ легкой степени?»
- Да → «Диагностировать ДЭ легкой степени (F3x.0)» → вопрос 10.
9. (ДЭ с психотическими симптомами) «Может ли дать и дает ли пациент согласие на госпитализацию?»
- Да → «Проводить купирующую терапию ДЭ тяжелой степени с психотическими симптомами в условиях стационара».
- Нет → «Принять решение о недобровольной госпитализации» → «Проводить купирующую терапию ДЭ тяжелой степени с психотическими симптомами в условиях стационара».
10. (ДЭ тяжелой степени без психотических симптомов, средней или легкой степени) «Существует ли суицидальный риск?»
- Да → вопрос 11.
- Нет → см. примечание ниже.
11. «Нуждается ли пациент в стационарном лечении?»
- Нет → «Проводить купирующую терапию ДЭ в амбулаторных условиях».
- Да → вопрос 12.
12. «Может ли дать и дает ли пациент согласие на госпитализацию?»
- Да → «Проводить купирующую терапию ДЭ без психотических симптомов в условиях стационара».
- Нет → вопрос 13.
13. «Есть ли показания для недобровольной госпитализации?»
- Да → «Принять решение о недобровольной госпитализации» → «Проводить купирующую терапию ДЭ без психотических симптомов в условиях стационара».
- Нет → см. примечание ниже.
Примечание: на схеме линии «Нет» от вопроса 10 («Существует ли суицидальный риск?») и от вопроса 13 («Есть ли показания для недобровольной госпитализации?») соединены друг с другом. Стрелкой ни к одному блоку они не доведены, так что куда они ведут, по схеме не определить.
@@ -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. «Симптомы СОПА» — по выраженности:
- «Легкая выраженность симптомов» → «Необходимо успокоить пациента, объяснив временный характер симптомов».
- «Умеренная выраженность симптомов» → «Симптоматическая терапия».
- «Тяжелая выраженность симптомов» → два варианта:
а) «При отмене СИОЗС или СИОЗСН можно перейти на флуоксетин; при отмене АД из других групп можно перейти на фармакодинамически сходный АД с более длительным периодом полувыведения с прекращением приема исходного АД после нескольких недель лечения новым АД и постепенной отменой последнего в последующем»;
б) «Можно возобновить АД в минимально эффективной дозе или в той дозе, при которой не было симптомов отмены, после чего отменить его более дробным и медленным титрованием».
+30
View File
@@ -0,0 +1,30 @@
Блок-схема «Алгоритм ведения пациента с посттравматическим стрессовым расстройством» (Приложение Б). Пошаговая запись:
1. Точка входа А: «Обращение к врачу общей практики, медицинскому психологу» → вопрос 2.
2. «Было в течение последних шести месяцев выраженное травматическое событие?»
- нет → «Дальнейший диагностический поиск».
- да → вопрос 3.
3. «Имеются предположительные данные за ПТСР или сомнения в оценке состояния?»
- нет → «Дальнейший диагностический поиск».
- да → «Обращение к врачу-психотерапевту, врачу-психиатру» (шаг 4).
4. Точка входа Б: «Обращение к врачу-психотерапевту, врачу-психиатру» → вопрос 5.
5. «Имеются диагностические критерии ПТСР?»
- нет → «Дальнейший диагностический поиск».
- да → «Диагноз ПТСР» → шаг 6.
6. «Оценка суицидального риска, тяжести состояния, коморбидной патологии, наличия социальной поддержки» → вопрос 7.
7. «Имеются показания для госпитализации (суицидальный риск, наличие выраженной психической или соматической патологии, отсутствие социальной поддержки)?»
- нет → «Оказание помощи в первичном звене здравоохранения (психотерапевтический кабинет, ПНД, психотерапевтический центр и др.) амбулаторно или в условиях дневного стационара» → «Проведение курса лечения ПТСР (психотерапия и фармакотерапия)» → «Оценка состояния» (шаг 10).
- да → вопрос 8.
8. «Есть актуальная соматическая патология, требующая неотложной госпитализации в соматический стационар?»
- да → «Госпитализация и лечение в соматическом стационаре» → «Оценка состояния» (шаг 10).
- нет → «Госпитализация и лечение в психиатрическом стационаре» → вопрос 9.
9. «Есть показания для помещения в психиатрическое отделение с интенсивным наблюдением (суицидальный риск, психотическая симптоматика)?»
- нет → «Госпитализация и лечение в отделении пограничных состояний (отделение неврозов)» → «Оценка состояния» (шаг 10).
- да → «Госпитализация и лечение в отделении интенсивного наблюдения» → «Оценка состояния» (шаг 10).
10. «Оценка состояния» → вопрос 11.
11. «Есть необходимость продолжения лечения?»
- да → возврат к шагу 6 («Оценка суицидального риска, тяжести состояния, коморбидной патологии, наличия социальной поддержки»).
- нет → вопрос 12.
12. «Есть необходимость проведения реабилитационных мероприятий?»
- нет → «Завершение лечения».
- да → «Направление на реабилитацию».
+18
View File
@@ -0,0 +1,18 @@
Блок-схема «Алгоритм терапии ПТСР» (Приложение Б1). Пошаговая запись. Цифры после названий (1, 2,3,4,5,6, 8, 9, 10, 11) стоят на схеме как сноски; их расшифровки на странице нет. Написание «велафаксином» сохранено как в оригинале (имеется в виду венлафаксин).
1. «ДИАГНОЗ ПТСР» → вопрос 2.
2. «Психотерапевтическое лечение возможно и целесообразно? 1»
- да → «Проведение психотерапии» → вопрос 3.
- нет → «Монотерапия сертралином/пароксетином/флуоксетином/велафаксином 2,3,4,5,6» → вопрос 3.
3. «Лечение эффективно?»
- да → «Поддерживающее лечение, реабилитационные мероприятия».
- нет → «5,6» → «Смена антидепрессанта на другой из 1-й линии / Совместное применение психотерапии и психофармакотерапии 8» → вопрос 4.
4. «Лечение эффективно?»
- да → «Поддерживающее лечение, реабилитационные мероприятия».
- нет → «Присоединение к терапии рисперидона, кветиапина, оланзапина 9» → вопрос 5.
5. «Лечение эффективно?»
- да → «Поддерживающее лечение, реабилитационные мероприятия».
- нет → «Замена антидепрессанта на амитриптилин, имипрамин, миртазапин 10» → вопрос 6.
6. «Лечение эффективно?»
- да → «Поддерживающее лечение, реабилитационные мероприятия».
- нет → «Переход к стратегиям преодоления резистентности 11».