feat(bot): answer treatment questions from the clinical-guideline knowledge base
CI / ruff · pytest (pull_request) Successful in 1m30s
CI / ruff · pytest (pull_request) Successful in 1m30s
- 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>
This commit is contained in:
@@ -63,6 +63,7 @@ idle:
|
||||
buttons:
|
||||
checkin: "Как я сегодня"
|
||||
med_question: "Вопрос о лекарстве"
|
||||
kb_question: "Вопрос о лечении"
|
||||
contact_doctor: "Связаться с врачом"
|
||||
revoke: "Отозвать согласие"
|
||||
# Заглушки кнопок меню; ветки ветерана (#36/#37) и med_qa (#15) подменяют их своими триггерами.
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# Вопросы пациента о состоянии и лечении → база знаний по клиническим рекомендациям (#64, RAG #60).
|
||||
# Зона clinical вычитывает формулировки. Сам ответ — только цитата из КР с источником (config/texts/rag.yaml
|
||||
# задаёт его обрамление); здесь — тексты диалога и признаки того, что свободное сообщение — вопрос.
|
||||
|
||||
# Кнопка меню «Вопрос о лечении» → бот просит написать вопрос.
|
||||
prompt: |-
|
||||
Напишите ваш вопрос о состоянии или лечении — например, «что такое флэшбек?» или «помогает ли психотерапия?».
|
||||
Я отвечу цитатой из клинических рекомендаций Минздрава и укажу источник. Вопросы о дозе и о вашем препарате решает врач.
|
||||
|
||||
# Вопрос о дозе (увеличить, уменьшить, полтаблетки): бот не отвечает по существу — это решение врача.
|
||||
dose_redirect: "Дозу и схему приёма подбирает только ваш врач — менять их самостоятельно нельзя. Могу передать ваш вопрос врачу: нажмите «Связаться с врачом»."
|
||||
|
||||
# Свободное сообщение считается вопросом, если в нём есть «?» или оно начинается с одного из этих слов.
|
||||
# Тогда бот ищет ответ в базе знаний; если ответа нет — отвечает обычной фразой поддержки.
|
||||
question_starts:
|
||||
- "что такое"
|
||||
- "что значит"
|
||||
- "что означает"
|
||||
- "почему"
|
||||
- "зачем"
|
||||
- "как"
|
||||
- "когда"
|
||||
- "сколько"
|
||||
- "можно ли"
|
||||
- "нужно ли"
|
||||
- "надо ли"
|
||||
- "помогает ли"
|
||||
- "поможет ли"
|
||||
- "правда ли"
|
||||
- "бывает ли"
|
||||
- "что делать"
|
||||
- "что будет"
|
||||
- "чем"
|
||||
- "где"
|
||||
- "есть ли"
|
||||
|
||||
# Бытовые фразы — не вопросы о лечении, даже со «?»: «как дела?», «как ты?». База знаний для них не ищется
|
||||
# (иначе «как дела» находит «линия делит» — у слов одна основа), бот отвечает обычной фразой поддержки.
|
||||
small_talk:
|
||||
- "как дела"
|
||||
- "как ты"
|
||||
- "как вы"
|
||||
- "как жизнь"
|
||||
- "как поживаете"
|
||||
- "что нового"
|
||||
- "кто ты"
|
||||
- "ты кто"
|
||||
- "ты бот"
|
||||
- "ты робот"
|
||||
- "привет"
|
||||
- "спасибо"
|
||||
Reference in New Issue
Block a user