feat(bot): ответы на вопросы о лечении из базы знаний КР (#64) #65

Merged
Eleboba merged 1 commits from feat/64-rag-dialog into dev 2026-10-04 11:29:50 +03:00
Owner

Что меняется

Бот отвечает на вопросы пациента о состоянии и лечении из базы знаний по КР (RAG #60/#62): новая кнопка меню «Вопрос о лечении» и ответы на вопросы в свободном тексте.

Closes #64

Зона

A (app/dialog/**, app/llm/rag/qa.py, config/texts/**, tests/test_dialog_knowledge.py). Контракты не тронуты.

Как работает

Сообщение Ответ
меню «Вопрос о лечении» → «что такое флэшбек?» цитата из КР + «Источник: КР ПТСР 2023, стр. 2» + «решает ваш врач»
свободный вопрос «помогает ли психотерапия при ПТСР?» то же, из базы знаний
нет ответа в КР меню: «уточните у врача»; свободный текст: обычная фраза поддержки
«можно увеличить дозу?» фиксированный текст: дозу решает врач
вопрос о своём препарате как раньше: med_qa, только инструкция ГРЛС
побочки / бросить / алкоголь как раньше: чек-ин и правила
острый риск как раньше: кризисный скрипт, база знаний не вызывается

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

make lint && make test

Демо-консоль / Telegram: меню → «Вопрос о лечении» → «что такое флэшбек?».

Чек-лист

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

🤖 Generated with Claude Code

## Что меняется Бот отвечает на вопросы пациента о состоянии и лечении из базы знаний по КР (RAG #60/#62): новая кнопка меню «Вопрос о лечении» и ответы на вопросы в свободном тексте. Closes #64 ## Зона A (`app/dialog/**`, `app/llm/rag/qa.py`, `config/texts/**`, `tests/test_dialog_knowledge.py`). Контракты не тронуты. ## Как работает | Сообщение | Ответ | |---|---| | меню «Вопрос о лечении» → «что такое флэшбек?» | цитата из КР + «Источник: КР ПТСР 2023, стр. 2» + «решает ваш врач» | | свободный вопрос «помогает ли психотерапия при ПТСР?» | то же, из базы знаний | | нет ответа в КР | меню: «уточните у врача»; свободный текст: обычная фраза поддержки | | «можно увеличить дозу?» | фиксированный текст: дозу решает врач | | вопрос о своём препарате | как раньше: `med_qa`, только инструкция ГРЛС | | побочки / бросить / алкоголь | как раньше: чек-ин и правила | | острый риск | как раньше: кризисный скрипт, база знаний не вызывается | ## Как проверить ```bash make lint && make test ``` Демо-консоль / Telegram: меню → «Вопрос о лечении» → «что такое флэшбек?». ## Чек-лист - [x] rebase на origin/dev - [x] make lint + make test зелёные (779 passed) - [x] лог в issue (### 2026-10-04) - [x] нет ПДн в логах, нет реальных данных, нет секретов - [x] общие файлы не тронуты 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 1 commit 2026-10-04 11:28:06 +03:00
- menu button «Вопрос о лечении» -> kb.question -> rag.answer (KR quote + source)
  or «уточните у врача»; dose questions get a fixed doctor redirect
- free text in idle that looks like a question (no check-in signals, not a drug
  question) -> knowledge base; no answer -> the usual support phrase
- routing order unchanged: consent/safety first, side effects/quit/alcohol -> check-in,
  own drug -> med_qa (instruction only, SPEC §7 p.5)
- question cues, small talk and texts in config/texts/knowledge.yaml; scrub placeholders
  before "что такое X" no longer hide the definition question

Refs #64

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba merged commit 53818ac76c into dev 2026-10-04 11:29:50 +03:00
Eleboba deleted branch feat/64-rag-dialog 2026-10-04 11:29:50 +03:00
Sign in to join this conversation.