fix(llm): RAG — страницы в цитатах, метки scrub, выбор КР по заболеванию (#62) #63

Merged
Eleboba merged 1 commits from fix/62-rag-fixes into dev 2026-10-04 11:14:21 +03:00
Owner

Что меняется

Исправления по аудиту RAG: верные страницы в цитатах, корректная работа с текстом после scrub(), приоритет профильной КР, если в вопросе названо заболевание.

Closes #62

Зона

A (app/llm/rag, config/rag, tests/test_llm_rag.py); конвертер в docs/source/rag. Корпус изменился только вставкой меток ⟦стр. N⟧ (проверено diff-ом).

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

make lint && make test
uv run python -m app.llm.rag "Иван Петров, 89161234567, что такое ПТСР"      # раньше: «ответа нет»
uv run python -m app.llm.rag "транскраниальная магнитная стимуляция при депрессии"   # раньше: цитата из КР ПТСР

Цифры: ошибочных страниц 24 → 3 (из ~2300 предложений, сверка постранично с pdftotext); отложенный набор hit@3: врач 11/11, пациент 7/11.

Чек-лист

  • rebase на origin/dev
  • make lint + make test зелёные (757 passed)
  • лог в issue (### 2026-10-04)
  • нет ПДн в логах, нет реальных данных, нет секретов
  • общие файлы не тронуты

🤖 Generated with Claude Code

## Что меняется Исправления по аудиту RAG: верные страницы в цитатах, корректная работа с текстом после `scrub()`, приоритет профильной КР, если в вопросе названо заболевание. Closes #62 ## Зона A (`app/llm/rag`, `config/rag`, `tests/test_llm_rag.py`); конвертер в `docs/source/rag`. Корпус изменился только вставкой меток ⟦стр. N⟧ (проверено diff-ом). ## Как проверить ```bash make lint && make test uv run python -m app.llm.rag "Иван Петров, 89161234567, что такое ПТСР" # раньше: «ответа нет» uv run python -m app.llm.rag "транскраниальная магнитная стимуляция при депрессии" # раньше: цитата из КР ПТСР ``` Цифры: ошибочных страниц 24 → 3 (из ~2300 предложений, сверка постранично с pdftotext); отложенный набор hit@3: врач 11/11, пациент 7/11. ## Чек-лист - [x] rebase на origin/dev - [x] make lint + make test зелёные (757 passed) - [x] лог в issue (### 2026-10-04) - [x] нет ПДн в логах, нет реальных данных, нет секретов - [x] общие файлы не тронуты 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 1 commit 2026-10-04 04:32:27 +03:00
- converter marks a paragraph glued across a page break with ⟦стр. N⟧; the chunker
  strips the marker and extends the chunk's page range (wrong-page citations 24 -> 3,
  the rest are scale-form table rows split by a page)
- [NAME]/[PHONE] placeholders from privacy.scrub() no longer count as unknown words
  (a scrubbed question used to fall below the coverage gate)
- a question naming one disease boosts its guideline in retrieval and passage choice
  ("ТМС при депрессии" was answered from the PTSD guideline); "антидепрессант" is not a cue

Refs #62

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba merged commit 7272203178 into dev 2026-10-04 11:14:21 +03:00
Eleboba deleted branch fix/62-rag-fixes 2026-10-04 11:14:21 +03:00
Sign in to join this conversation.