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>
119 lines
12 KiB
YAML
119 lines
12 KiB
YAML
# Тексты диалогового движка (issue #10): согласие, возраст, меню, кризис, шкалы, отзыв согласия.
|
||
# СТАТУС: черновик, утверждает психиатр (#8).
|
||
#
|
||
# Правила текстов: без диагнозов и названий расстройств; без советов по дозам; не обещать конфиденциальность
|
||
# сверх реальной; не использовать слова «учёт», «контроль», «психиатрический надзор» (проверяется тестом).
|
||
# Кризисный скрипт — в crisis.yaml (отправляется дословно, LLM не вызывается).
|
||
|
||
status: "черновик, утверждает психиатр (#8)"
|
||
|
||
settings:
|
||
# Повторный C-SSRS по сигналу POSSIBLE не чаще, чем раз в N часов (сигнал всё равно пишется в safety_events).
|
||
cssrs_cooldown_hours: 24
|
||
# Сколько последних safety-событий хранить в dialog_state.data["safety_events"].
|
||
max_safety_events: 50
|
||
# Флаги шкал (config/scales/*.yaml), при которых сессия шкалы сразу уходит в кризисный путь.
|
||
crisis_flags: [phq9_item9_positive, cssrs_high]
|
||
# Шкала-скрининг суицидального риска (POSSIBLE и положительный п.9 PHQ-9 → эта шкала).
|
||
risk_screen_scale: cssrs_screen
|
||
# Брошенный шаг (чек-ин, шкала): если пациент молчит дольше N часов, следующее событие сначала возвращает
|
||
# диалог в idle (уже данные ответы сохранены), затем обрабатывается. 0 — выключено. На кризис не действует.
|
||
abandon_after_hours: 6
|
||
|
||
commands:
|
||
# Текстовые команды отзыва согласия (сравниваются после приведения к нижнему регистру).
|
||
revoke: ["/revoke", "отозвать согласие", "отзываю согласие"]
|
||
|
||
consent:
|
||
version: "v1-draft-2026-10-03"
|
||
text: |-
|
||
Здравствуйте! Я — цифровой помощник, который сопровождает вас между визитами к врачу: напоминаю о приёме препарата, спрашиваю о самочувствии и передаю важное вашему лечащему врачу.
|
||
|
||
Прежде чем начать, мне нужно ваше согласие на обработку персональных данных, в том числе сведений о здоровье (152-ФЗ «О персональных данных», ст. 9 и 10).
|
||
|
||
• Что обрабатывается: ваши ответы о самочувствии, сне, приёме препарата и результаты коротких опросников. Перед автоматической обработкой из сообщений удаляются имена, телефоны и другие личные данные.
|
||
• Кто видит данные: только ваш лечащий врач. Данные хранятся в России и не передаются третьим лицам без вашего согласия, кроме случаев, прямо предусмотренных законом.
|
||
• Я не ставлю диагнозов и не заменяю врача. Решения о лечении принимает только врач.
|
||
• Участие добровольное. Отказ никак не влияет на вашу медицинскую помощь.
|
||
• Отозвать согласие можно в любой момент в один шаг: кнопкой «Отозвать согласие» или командой /revoke.
|
||
|
||
Я не служба экстренной помощи. Если вам угрожает опасность прямо сейчас — звоните 112.
|
||
accept: "Согласен(на)"
|
||
decline: "Не согласен(на)"
|
||
refused: |-
|
||
Понимаю, это ваше право. Без согласия я не обрабатываю и не сохраняю ваши сообщения. Ваше лечение у врача продолжается как обычно.
|
||
Если передумаете — нажмите кнопку ниже или отправьте /start.
|
||
reconsider: "Я передумал(а)"
|
||
code_invalid: "Код подключения не найден или уже использован. Пожалуйста, уточните код у вашего врача и отправьте его ещё раз."
|
||
|
||
age_gate:
|
||
question: "Уточните, пожалуйста: вам уже исполнилось 18 лет? Можно нажать кнопку или написать год рождения (например, 1990)."
|
||
adult: "Да, мне 18 или больше"
|
||
minor: "Нет, мне меньше 18"
|
||
unclear: "Не удалось понять ответ. Нажмите кнопку или напишите год рождения четырьмя цифрами, например 1990."
|
||
minor_stop: |-
|
||
Спасибо, что ответили. Этот помощник рассчитан на взрослых, поэтому дальше я не смогу с вами работать и не сохраняю ваши ответы.
|
||
Если вам тяжело или нужна поддержка — позвоните на Детский телефон доверия 8-800-2000-122 (бесплатно, анонимно, круглосуточно) или расскажите взрослому, которому доверяете: родителям, учителю, школьному психологу.
|
||
Если есть угроза жизни прямо сейчас — звоните 112.
|
||
|
||
idle:
|
||
welcome: |-
|
||
Спасибо, всё готово! Я буду на связи каждый день: напомню о препарате и спрошу о самочувствии. Если захотите что-то рассказать — просто напишите или выберите кнопку ниже.
|
||
menu_prompt: "Чем могу помочь?"
|
||
buttons:
|
||
checkin: "Как я сегодня"
|
||
med_question: "Вопрос о лекарстве"
|
||
kb_question: "Вопрос о лечении"
|
||
contact_doctor: "Связаться с врачом"
|
||
revoke: "Отозвать согласие"
|
||
# Заглушки кнопок меню; ветки ветерана (#36/#37) и med_qa (#15) подменяют их своими триггерами.
|
||
stub_checkin: "Короткий опрос о самочувствии скоро появится здесь. А пока можно просто написать, как вы себя чувствуете сегодня."
|
||
stub_med_question: "Напишите ваш вопрос о препарате. Я отвечаю только по официальной инструкции, а если ответа в ней нет — передам вопрос врачу."
|
||
contact_doctor_ack: "Я отметил вашу просьбу связаться с врачом — она появится в вашей карточке у врача. Если ситуация срочная, звоните 112."
|
||
visit_stub: "Онлайн-запись появится здесь позже. Пока вы можете записаться к своему врачу через регистратуру клиники."
|
||
|
||
revoked:
|
||
confirm: |-
|
||
Согласие отозвано. Я больше не буду писать вам и обрабатывать ваши сообщения, а ваши данные помечены к удалению.
|
||
Если передумаете — отправьте /start. Если вам угрожает опасность — звоните 112.
|
||
|
||
crisis:
|
||
# Повторный острый сигнал в уже открытом кризисе: скрипт второй раз не шлём, только это + ресурсы.
|
||
repeat: "Я рядом. Ваш при угрозе жизни звоните 112. Если вам угрожает опасность прямо сейчас — позвоните:"
|
||
# Любое другое сообщение, пока кризис открыт (до подтверждения врача).
|
||
hold: "Я на связи и читаю вас. Не ждите ответа врача, если помощь нужна сейчас. Если станет хуже — звоните 112 или на телефон доверия +7 (495) 989-50-50."
|
||
# Врач подтвердил кризисный алерт (doctor_ack): выходим из кризиса.
|
||
closed: "Ваш врач получил сообщение и в курсе вашей ситуации. Спасибо, что остаётесь на связи. Если снова станет тяжело — напишите мне в любой момент."
|
||
|
||
scale:
|
||
intro: "Несколько коротких вопросов ({count}). {instruction}"
|
||
question: "{n}/{total}. {text}"
|
||
clarify: "Не совсем понял ответ. Выберите, пожалуйста, вариант кнопкой или опишите, как часто это было."
|
||
buttons_only: "На этот вопрос, пожалуйста, ответьте кнопкой."
|
||
done: "Спасибо, ответы сохранены. Ваш врач увидит результаты."
|
||
risk_screen_intro: "Спасибо, что поделились. Мне важно задать несколько коротких вопросов, чтобы лучше понять, как вы сейчас."
|
||
|
||
safety_plan:
|
||
title: "Ваш план безопасности:"
|
||
# Шаблон Стэнли–Брауна, если план ещё не составлен с врачом на визите.
|
||
template:
|
||
- "Мои тревожные сигналы: что я замечаю, когда становится хуже."
|
||
- "Что помогает мне самому: прогулка, душ, дыхание, любимое дело."
|
||
- "Люди и места, которые отвлекают: к кому можно пойти."
|
||
- "Кому позвонить, если тяжело: близкий человек, сослуживец."
|
||
- "Специалисты: ваш врач, телефон доверия +7 (495) 989-50-50, экстренные службы 112."
|
||
- "Безопасная среда: оружие и лишние лекарства — на хранение близкому человеку."
|
||
means_restriction: "Если дома есть оружие или запас лекарств — попросите близкого человека временно хранить их у себя."
|
||
|
||
reach_out:
|
||
silence: "Давно не было вестей от вас. Как вы? Можно ответить одним словом — мне важно знать, что с вами всё в порядке."
|
||
missed_doses: "Заметил, что несколько приёмов препарата пропущено. Всё ли в порядке? Если что-то мешает — расскажите, я передам врачу."
|
||
default: "Хотел узнать, как вы. Напишите пару слов, когда будет удобно."
|
||
|
||
visit:
|
||
button: "Записаться к врачу раньше"
|
||
|
||
unavailable: |-
|
||
Сейчас у меня технические неполадки, и я не могу сохранить ваше сообщение. Пожалуйста, напишите чуть позже.
|
||
Если вам плохо прямо сейчас — звоните 112 или на телефон доверия +7 (495) 989-50-50.
|