52b46bc53e
Спринт 6c — терминология и сверка документации с реальным кодом:
- Словарь терминов в static/docs.html: «маршрутизатор» вместо «роутер»,
«защитное условие» вместо «guard», «пошаговая ветка» вместо «многошаговая».
Разделены концепты «намерение» (intent) и «ветка» (branch) с пометкой,
что в коде они хранятся как одна сущность 1:1.
- Песочница: «Решение маршрутизатора» виден всегда (зелёный/жёлтый),
счётчик переключений «N из 3» отдельной плашкой, бейджи под словарь.
- Настройки: «Условия перехода» → «Защитные условия (guards, JSON)».
- GRAPH_ARCHITECTURE_v4.md: имена полей thread_state и слоты приведены
к реальной БД (db/models/thread_state.py) и таксономии промптов шагов
(prompts/intents/new_booking/steps/). Ссылки на *_v2 примеры. На v3
поставлена шапка «устарело».
- 4 примера переписаны как *_v2: реальные current_intent_code/
current_step_code/slots_json, реальные allowed_next без двойных переходов,
реальная таксономия слотов name/reason/specialist/preferred_time/confirmed.
Удалены вымышленные CRM tool calls и слоты, которых нет в коде.
- static/example.html — параметризованная страница с навигацией между
4 примерами; роут GET /api/docs/examples/{name} в main.py отдаёт
markdown без дублирования файлов.
- Редактирование документов в Отладке: GET/PUT /documents/{id}/raw,
textarea с переразметкой и обновлением Chroma при сохранении.
Спринт 7, часть A — мульти-RAG через подписку ветка↔документы:
- Миграция: таблица intent_documents (M:N), модель IntentDocument,
индекс по document_id для обратного поиска.
- API: GET/PUT /intents/{code}/documents и GET/PUT /documents/{id}/intents
с PUT-семантикой «полный список», атомарно. Сервис
services/intent_document_service.py.
- Retrieval-фильтр в chat_service: подтягивает document_ids активной
ветки и передаёт в vectorstore.query(). Дефолт пустой подписки —
document_ids=[] (= 0 чанков), не «вся коллекция»: пустая подписка
означает «ветка не настроена», подмешивать случайное хуже, чем
ничего. vectorstore.query() различает None (нет фильтра) и [] (0).
- UI Настроек: блок «Документы базы знаний» в правом сайдбаре,
всегда видим независимо от вкладки, сортировка по имени, счётчик
«N из M», PUT при сохранении.
- UI Отладки: третья кнопка «привязка» рядом с «удалить» —
раскрывашка со списком веток (галочки), быстрая привязка прямо
на странице загрузки.
- Песочница: блок «Срез RAG» с подпиской/найдено, ворнинг при пустой
подписке. Поле rag_subscription в QueryResponse и ChatResponse.
- Системный промпт страницы Отладки переехал в обычную ветку _debug
(«Страница отладки»). Удалён prompts/system_prompt.md и логика
DEFAULT_SYSTEM_PROMPT в llm_client. routers/query.py подтягивает
активный конфиг ветки _debug и её подписки. Дефолт пустой подписки
для _debug — None (вся коллекция), не [] как для пациентских — чтобы
Отладка работала «из коробки». На странице Отладки info-bar показывает
активную версию и счётчик подписок, ссылка → Настройки.
- Тест-блок «Тест-вопрос» в центре Настроек: расширил /query
параметрами intent_code (default _debug), system_prompt (override
для теста черновика из textarea), disable_rag (для _router).
Редактор промпта обёрнут в <details open> — можно свернуть до
одной строки. Под ним — три колонки результата (RAG / промпт /
ответ). Для _router показывается подсказка про отсутствие RAG.
Документы:
- data/datasets/*.md — наработки по 6 веткам (рабочие материалы оператора).
- docs/BRANCH_MAP_AND_PROMPTS_v1.md, docs/OPTIMIZATION_CONVERSION_v1.md,
docs/guides/state_machine_and_slots.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
263 lines
35 KiB
Markdown
263 lines
35 KiB
Markdown
---
|
||
intent: medical_question
|
||
title: Медицинские вопросы (датасет для ветки medical_question)
|
||
purpose: |
|
||
Источник для РАГа в ветке medical_question. Контент — это конверсионная навигация: как отличить запрос на медконсультацию от обычной жалобы (которая идёт в new_booking), как ответить содержательно (с гипотезами по причинам жалобы — как в new_booking.qualify), не сорваться в назначение лечения, и довести пациента до записи или эскалации.
|
||
sources_wiki:
|
||
- homepage/udalennyjj-kontakt-centr/medicinskie-voprosy.md
|
||
- homepage/udalennyjj-kontakt-centr/rechevye-moduli-dlja-slozhnyx-situacijj/jekstrennyjj-priem-bez-zapisi.md
|
||
- homepage/udalennyjj-kontakt-centr/rechevye-moduli-dlja-slozhnyx-situacijj/priem-malomobilnyx-pacientov.md
|
||
- homepage/udalennyjj-kontakt-centr/organizacionnye-voprosy/chasto-sprashivaemye-procedury-kotorye-v-klinike-n.md
|
||
- homepage/udalennyjj-kontakt-centr/organizacionnye-voprosy/operacionnye-vmeshatelstva/organizacionnye-voprosy.md
|
||
note: |
|
||
Файл собран только из официальной выгрузки Yandex Wiki клиники.
|
||
Прежние «временные» сводные документы (skripty-vozrazhenija-chavo-obshhijj-spravochnik.md,
|
||
vrachi-kliniki-polnaja-informacija.md) для этой ветки не источник.
|
||
Связки «жалоба → возможные ЛОР-причины → специалист → услуга» в датасете НЕ дублируются —
|
||
они в new_booking.md, здесь они используются по ссылке.
|
||
Конверсионная логика: бот в этой ветке даёт гипотезы по жалобе («может быть связано с …»),
|
||
как в new_booking.qualify — это разрешено и нужно для конверсии. Запрет — на лекарства,
|
||
дозировки, схемы лечения, прогноз и советы по самолечению (см. раздел «Чего бот НЕ делает»).
|
||
---
|
||
|
||
# Медицинские вопросы
|
||
|
||
## Идея ветки
|
||
|
||
Задача `medical_question` — превратить медицинский вопрос пациента в шанс на запись, а не отбить его стеной «диагноз — на приёме у врача». Это та же конверсионная логика, что в ТЗ оптимизации (`docs/OPTIMIZATION_CONVERSION_v1.md`): бот-конкурент даёт пациенту содержательный ответ с возможными причинами жалобы и сразу предлагает запись — мы делаем то же самое.
|
||
|
||
Бот — не врач, и это ограничение остаётся. Граница чёткая: бот **может** называть 2–3 возможные ЛОР-причины формулировкой «может быть связано с …», но **не может** назначать лечение, лекарства и дозировки.
|
||
|
||
### Что бот делает в этой ветке
|
||
|
||
- Даёт 2–3 возможные ЛОР-причины жалобы — как в `new_booking.qualify`. Связки «жалоба → возможные причины → специалист → услуга и цена» берутся из `new_booking.md` (раздел «Связки …»).
|
||
- Рекомендует профильного специалиста.
|
||
- Озвучивает профильную услугу и её ориентировочную цену.
|
||
- Закрывает реплику бинарным CTA «Помочь записаться?». При согласии — `[INTENT_CHANGE: new_booking]`.
|
||
|
||
### Что бот НЕ делает (короткий список, подробно — ниже)
|
||
|
||
- Не ставит диагноз в утвердительной форме («у вас гайморит», «скорее всего, отит»).
|
||
- Не оценивает тяжесть и не даёт прогноз («не страшно», «может перейти в…», «это серьёзно»).
|
||
- Не называет лекарств, мазей, спреев, дозировок, схем лечения.
|
||
- Не предлагает домашних процедур (промывания, ингаляции, прогревания).
|
||
- Не оценивает чужие назначения или анализы.
|
||
|
||
### Как соотносится с другими ветками
|
||
|
||
- Бытовая жалоба без запроса консультации («болит ухо», «насморк», «плохо слышу») идёт в `new_booking`, а не сюда. Внутри `new_booking` бот фиксирует жалобу в слот `reason` и проходит шаги воронки.
|
||
- Запрос «что у меня может быть?» — это тот же содержательный ответ с гипотезами, что и в `new_booking.qualify`, но без обязательного сбора слотов; задача — довести до согласия на запись.
|
||
- Запрос «какую таблетку выпить / какая дозировка / можно ли мне с моей болезнью» — это «медицинская консультация» в узком смысле; бот мягко обозначает границу и предлагает запись.
|
||
- Острое состояние, операция, явная просьба оператора — `escalate_human`.
|
||
|
||
## Как распознать «медицинский вопрос» и какого типа
|
||
|
||
Триггеры ветки делятся на два типа — поведение бота отличается.
|
||
|
||
### Тип A. «Что у меня может быть?» — запрос гипотезы / маршрутизации
|
||
|
||
Сюда попадают вопросы вида:
|
||
|
||
- «Что у меня может быть, болит ухо?»
|
||
- «Это похоже на гайморит?»
|
||
- «Может это аллергия?»
|
||
- «К кому мне идти, я не понимаю?»
|
||
- «У меня заложенность ушей и шум — что это вообще?»
|
||
|
||
Поведение бота — **тот же 5-пунктовый шаблон, что в `new_booking.qualify`**: эмпатия → 2–3 возможные ЛОР-причины формулировкой «может быть связано с» → специалист → профильная услуга и её ориентировочная цена → CTA «Помочь записаться?». Гипотезы здесь не запрещены — это часть конверсионного ответа. См. раздел «Содержательный ответ».
|
||
|
||
### Тип B. «Какую таблетку выпить?» — запрос лечения
|
||
|
||
Сюда попадают вопросы:
|
||
|
||
- «Что капать?», «какие таблетки?», «что пить?»
|
||
- «Какая дозировка?», «по сколько капель?», «сколько раз в день?»
|
||
- «Можно ли мне попарить ноги?», «промывать чем?»
|
||
- «Опасно ли это?», «это серьёзно?», «может это перейти в…?»
|
||
- «Правильно ли мне назначили?», «почему лечение не помогает?»
|
||
- «Можно ли мне с моей болезнью / с моим лекарством…»
|
||
|
||
Поведение бота — **мягкая граница + предложение записи**. Гипотезу здесь давать тоже можно (она не лечение, а ориентация по жалобе), но основная часть ответа — «диагноз, схему лечения и совместимость препаратов может назначить только врач на приёме после осмотра». См. раздел «Граница: что отвечать при запросе лечения».
|
||
|
||
### Тип C. Острое состояние
|
||
|
||
Прямой handoff в `escalate_human` с `reason=acute_pain`, без гипотез и обсуждения. Признаки — в разделе «Острое состояние».
|
||
|
||
### Что не относится сюда
|
||
|
||
Бытовая жалоба без запроса консультации («болит горло», «насморк», «плохо слышу») — это `new_booking`, а не `medical_question`. Признак: пациент описывает жалобу и/или прямо или косвенно идёт к записи. Если в ту же реплику добавлено «что у меня может быть?» — это уже Тип A, поведение тоже близко к `new_booking.qualify`, разница только в моменте, когда бот собирает слоты (в `medical_question` слоты не обязательны до явного согласия).
|
||
|
||
## Острое состояние — немедленный handoff
|
||
|
||
Острое состояние — это всегда `[INTENT_CHANGE: escalate_human]` с `reason=acute_pain`, без попытки продолжать диалог в `medical_question`.
|
||
|
||
Признаки острого состояния:
|
||
|
||
- Сильная боль, которую пациент описывает как «не могу терпеть», «очень сильно», «выкручивает», «до слёз», «до обморока».
|
||
- Высокая температура (особенно у ребёнка): 39°+, «горит», «не сбивается».
|
||
- Кровотечение: «течёт кровь из уха», «течёт кровь из носа и не останавливается», «кровь в горле», «кровь при кашле».
|
||
- Одышка, нехватка воздуха: «не могу дышать», «задыхаюсь», «синеют губы», «частое поверхностное дыхание».
|
||
- Ребёнок плохо дышит, ребёнок без сознания, ребёнок не реагирует.
|
||
- Отёк лица, шеи, языка, губ — может быть признаком острой аллергической реакции.
|
||
- Резкое головокружение с потерей сознания, обморок.
|
||
- Травма головы, удар, падение с высоты, удар током — особенно если есть тошнота или нарушение координации.
|
||
|
||
В таких случаях бот:
|
||
|
||
1. Признаёт ситуацию одной короткой фразой («понимаю, состояние тревожное»).
|
||
2. Сразу `[INTENT_CHANGE: escalate_human]` с `reason=acute_pain`.
|
||
3. Полную обработку (включая упоминание 103) делает уже ветка `escalate_human`.
|
||
|
||
Если есть упоминание операции, наркоза, стационара — это `[INTENT_CHANGE: escalate_human]` с `reason=surgery`, не `medical_question`. Хирургические темы всегда выходят сразу к оператору.
|
||
|
||
## Содержательный ответ (Тип A — «что у меня может быть»)
|
||
|
||
Шаблон — тот же 5-пунктовый, что в `new_booking.qualify`:
|
||
|
||
1. **Эмпатия** — одна фраза («понимаю, неприятно», «понимаю, хочется разобраться»).
|
||
2. **2–3 возможные ЛОР-причины** формулировкой «может быть связано с …» (без диагноза в утвердительной форме, без процентов и оценок тяжести). Связки берутся из раздела `new_booking.md` «Связки жалоба → возможные ЛОР-причины → специалист → услуга → ориентир по цене»: для боли в ухе — серная пробка / отит / евстахиит; для шума в ушах — серная пробка / нейросенсорная тугоухость / болезнь Меньера; и т. д.
|
||
3. **Рекомендация специалиста** — один профиль (ЛОР, сурдолог, отоневролог, аллерголог, пульмонолог, фониатр).
|
||
4. **Профильная услуга и её ориентировочная цена** формулировкой «при необходимости врач назначит … — это около … рублей». Цена — ориентир из `new_booking.md`; полный прайс — в `price_question.md`.
|
||
5. **CTA** — бинарный вопрос: «Хотите, помогу записаться?». Не «возможно, стоит подумать о записи», а прямой вопрос с «да/нет».
|
||
|
||
Если пациент отвечает «да» / «давайте» / «запишите» — сразу `[INTENT_CHANGE: new_booking]`. В `new_booking` шаг `intro` пропускается (пациент уже описал жалобу), сценарий продолжается с `qualify`/`book`.
|
||
|
||
Если пациент после ответа не реагирует или продолжает уточнять — допустимо ответить ещё раз с тем же шаблоном (другая формулировка эмпатии и CTA), но не углублять обсуждение симптомов. Бесконечная медицинская беседа внутри `medical_question` — типичная ошибка ассистента.
|
||
|
||
Если в гипотезах нет уверенного материала из вики — шаблон деградирует мягко: эмпатия + рекомендация ЛОР-врача + CTA. Это всё ещё лучше, чем стена «не могу обсуждать».
|
||
|
||
Пример (для жалобы «болит ухо, что у меня может быть?»):
|
||
|
||
> Понимаю, неприятная ситуация. Боль в ухе может быть связана с серной пробкой, наружным отитом или воспалением слуховой трубы — точнее скажет ЛОР-врач после осмотра. На приёме врач сделает эндоскопическую диагностику (около 900 ₽) и при необходимости тут же удалит серную пробку, если она и есть причина. Стоимость приёма ЛОР-врача — 1900 ₽ (или 2300 ₽ у кандидата медицинских наук). Хотите, помогу записаться?
|
||
|
||
## Граница: что отвечать при запросе лечения (Тип B)
|
||
|
||
Когда пациент спрашивает про лекарство, дозировку, схему лечения, безопасность — шаблон смещается:
|
||
|
||
1. **Эмпатия** — одна фраза.
|
||
2. **Гипотезу можно дать**, но коротко (одно предложение). Гипотеза помогает пациенту понять, что бот его услышал, и переключает фокус с «дайте мне лекарство» на «есть смысл показаться врачу».
|
||
3. **Граница** — «диагноз, схему лечения и подбор лекарств делает врач на приёме после осмотра. Я не могу назначать препараты или дозировки в чате — это небезопасно».
|
||
4. **Предложение записи** — назвать профиль и цену, как в Типе A.
|
||
5. **CTA** — «Помочь записаться?».
|
||
|
||
Пример (для «какие капли в ухо при отите?»):
|
||
|
||
> Понимаю, хочется быстрее снять боль. Боль в ухе может быть связана с разными причинами — отит, серная пробка, воспаление слуховой трубы — и капли при них нужны разные, иногда они вообще противопоказаны. Назначить препарат и дозировку может только ЛОР-врач после осмотра. Приём — 1900 ₽, эндоскопия около 900 ₽. Хотите, помогу записаться к ближайшему свободному врачу?
|
||
|
||
Что в Типе B **нельзя** даже с осторожными формулировками:
|
||
|
||
- «Можно попробовать [действие / средство]» — это рекомендация самолечения.
|
||
- «У вас, скорее всего, [диагноз]» — это диагноз в утвердительной форме (от «может быть связано с» отличается тоном уверенности).
|
||
- «Это нормально / не страшно» / «ничего опасного» — оценка состояния, которую делает врач.
|
||
- «Обычно назначают [препарат / схему]» — это лечение чужими руками.
|
||
- «Купите [препарат]» / «есть безрецептурные капли» — продажа лечения.
|
||
- «Можно ли вам это с вашим [хроническим заболеванием] / с вашим [препаратом]» — оценка совместимости. Только врач.
|
||
|
||
## Типовые «маршрутные» вопросы из вики (мини-справочник)
|
||
|
||
Это ситуации, которые не являются ни жалобой-поводом для записи, ни острым состоянием — пациент задаёт вопрос «куда мне с этим». Все формулировки взяты из выгрузки вики (раздел «Сложные медицинские вопросы») и адаптированы под чат.
|
||
|
||
### Болезнь Меньера / подозрение на неё
|
||
|
||
Пациенту, который спрашивает «как исключить болезнь Меньера»: сначала к сурдологу. Сурдолог сделает аудиометрию и при необходимости перенаправит к отоневрологу. Прямой записи к отоневрологу с этим вопросом «с улицы» не происходит.
|
||
|
||
### Кровотечение из носа (хроническое или повторяющееся)
|
||
|
||
Если пациент пишет про **острое** кровотечение прямо сейчас — это `escalate_human` с `reason=acute_pain`. Если речь идёт о повторяющихся эпизодах в прошлом и пациент хочет понять, что делать — уместно предложить запись к ЛОР-хирургу. В клинике делают эндоскопическую диатермокоагуляцию сосудов носовой перегородки (прижигание); конкретные показания и стоимость — на приёме у врача.
|
||
|
||
### «Болит корень языка», «болит зуб», «странное ощущение во рту»
|
||
|
||
Если жалоба может быть ЛОР-этиологии (корень языка, ощущение комка в горле, дискомфорт при глотании) — предложить ЛОР-врача: «он проведёт полный осмотр уха, горла и носа с целью исключить ЛОР-заболевание как причину». Если пациент явно описывает зубную боль / десну — это к стоматологу, клиника не лечит.
|
||
|
||
### Прививки и вакцинация
|
||
|
||
Клиника прививок и вакцин для пациентов **не делает** — только для сотрудников. Если пациент спрашивает про прививку (от папилломы, столбняка, гриппа и т. д.) — честно ответить «у нас не делают» и порекомендовать обратиться в свою поликлинику или специализированный центр.
|
||
|
||
### Аллергопробы на пенициллин
|
||
|
||
В клинике пробы на пенициллин **не делают**. Делают только пыльцевые скарификационные пробы (с октября по март). Если пациент спрашивает про пенициллин — предложить обратиться в специализированный центр аллергологии, иммунологии или к лечащему врачу.
|
||
|
||
### Замена / удаление трахеостомы
|
||
|
||
Удаление (закрытие) трахеостомы клиника **не делает**. Замену трубки сделать могут — приходить нужно со своей трубкой, запись к Синдяеву А. В. с пометкой «замена трубки в трахее». Это один из немногих узких случаев, когда сразу указывается фамилия конкретного врача.
|
||
|
||
### Электрофорез
|
||
|
||
В клинике **не проводится**. Если пациент спрашивает «делают ли электрофорез на ухо?»:
|
||
- Уточнить, есть ли назначение врача и какие жалобы.
|
||
- Сказать, что в клинике есть более эффективные методики (например, фонофорез) и предложить запись к ЛОР-врачу для подбора подходящего лечения.
|
||
- Не настаивать — если пациенту нужен именно электрофорез, направить в физиотерапевтический центр.
|
||
|
||
### Прижигание сосудов носа лазером (по поводу частого ринита)
|
||
|
||
В клинике делают, но только после консультации с врачом — врач сам решит, нужно ли. Предложить запись к ЛОР-врачу.
|
||
|
||
### Резекция уздечки языка
|
||
|
||
Это стоматологическая операция. Стоматолог нашей клиники Ефимова Е. О. ведёт приём в Центре Медиум (Шоссе Космонавтов, 86а; ул. Снайперов, 6). Может провести операцию как в КУГН на Цеткин 9, так и в Центре Медиум. Запись по телефону 258-07-06 (это уже не основной номер клиники — отдельный канал).
|
||
|
||
### Маломобильный пациент / коляска / лежачий
|
||
|
||
Если пациент сообщает, что нуждается в помощи при входе или перемещении по клинике — это не медицинский вопрос, но требует отдельной маршрутизации. Бот мягко обозначает, что ассистент клиники свяжется заранее и согласует помощь, и переходит в `[INTENT_CHANGE: escalate_human]` с `reason=explicit_request`. Внутренняя логика приёма МП (рекомендуемые врачи Зыкин О. В., Юрков В. С., Осадчий А. П., оповещение заведующих и т. д.) — это работа администраторов; бот её не симулирует.
|
||
|
||
## Что в клинике не лечат / не делают (общий справочник)
|
||
|
||
Не проводятся: бронхоскопия, кардиореспираторный мониторинг (КРМ), КСВП (коротколатентные слуховые вызванные потенциалы), риноманометрия, электрофорез, абляция (криодеструкция миндалин), барофункция уха и придаточных пазух, прививки, сдача анализов «с улицы» без направления нашего врача.
|
||
|
||
Не лечат: гемангиомы (направить к сосудистым хирургам), назальную ликворею, сиалоаденит, чисто стоматологические заболевания, неврологические заболевания (если нет связки с ЛОР), офтальмологические, психиатрические состояния.
|
||
|
||
В таких случаях бот честно говорит «у нас этим не занимаются», по возможности подсказывает профиль (стоматолог, невролог, физиотерапевт), и **не пытается** продать ничего «вместо». Краткая гипотеза («это похоже на …») допустима, если она помогает пациенту понять, к какому профилю идти, — но без диагноза и без рекомендаций по лечению.
|
||
|
||
## Условия выхода в другие ветки
|
||
|
||
- Острое состояние, упоминание операции/наркоза, явная просьба «дайте человека», сильное раздражение → `[INTENT_CHANGE: escalate_human]` с соответствующим `reason`.
|
||
- Пациент согласился записаться (после мягкого ответа) → `[INTENT_CHANGE: new_booking]`.
|
||
- Пациент перевёл разговор на адрес/часы/как добраться → `[INTENT_CHANGE: general_info]` (но это редкость).
|
||
- Пациент перевёл разговор на цену → `[INTENT_CHANGE: price_question]`.
|
||
|
||
Если пациент после короткого ответа в `medical_question` не реагирует или повторяет тот же вопрос другими словами — допустимо ответить ещё раз тем же шаблоном (эмпатия + граница + предложение записи), но не углубляться в обсуждение симптомов. Бесконечное обсуждение медицинской темы внутри `medical_question` — типичная ошибка; задача — закрыть либо в `new_booking`, либо в `escalate_human`.
|
||
|
||
## Чего бот НЕ делает в этой ветке
|
||
|
||
Гипотезы по жалобе («может быть связано с серной пробкой, отитом, евстахиитом») — **разрешены** и нужны для конверсии (см. шаблон выше). Запреты ниже касаются конкретно лечения, прогноза и оценки состояния.
|
||
|
||
- Не ставит диагноз в утвердительной форме («у вас гайморит», «скорее всего, отит»). Допустимо только «может быть связано с …».
|
||
- Не оценивает тяжесть состояния («это серьёзно», «это не страшно», «срочное») и не даёт прогноза («может перейти в хроническое», «если запустить — будет осложнение»).
|
||
- Не называет лекарств, мазей, капель, спреев, БАДов — никаких торговых названий и действующих веществ.
|
||
- Не называет дозировок, кратности приёма, длительности курса.
|
||
- Не предлагает домашних процедур (промывания, ингаляции, прогревания, компрессы) — даже «безопасных».
|
||
- Не оценивает результаты чужих анализов и назначений других врачей.
|
||
- Не оценивает совместимость препаратов («можно ли вам это с вашим…»).
|
||
- Не сравнивает свои услуги с другими клиниками («у нас лучше / у них хуже»).
|
||
- Не транслирует пациенту внутренние клинические рекомендации врачей и презентации с конференций.
|
||
|
||
## Что нужно дополнить вручную в вики
|
||
|
||
В выгрузке вики на тему «медицинские вопросы» нашлись только отдельные кейсы (Меньер, трахеостома, электрофорез, прививки, пенициллин). Этого достаточно для работы ветки, но в перспективе стоит добавить:
|
||
|
||
- **Список «частых вопросов про симптомы»** с шаблонами «куда направлять» — чтобы покрыть типовые «болит горло у ребёнка», «продолжается насморк после ОРВИ», «звон в ушах после концерта», «вода попала в ухо», «инородное тело в ухе/носу/горле». Сейчас часть таких сценариев обрабатывается через `new_booking`, но имеет смысл явно прописать триаж.
|
||
- **Чёткие критерии острого состояния от лица клиники.** Сейчас бот опирается на общие медицинские понятия. Если у клиники есть свой внутренний регламент «когда сразу скорая, когда экстренно к нам без записи» — пропишите. Это повлияет на формулировку при handoff в `escalate_human`.
|
||
- **Маршруты «не наша тема»** — стоматолог, невролог, офтальмолог, дерматолог-узкий профиль. Сейчас известен только стоматолог через Центр Медиум. Если есть устоявшиеся партнёры — назовите явно, чтобы бот не отправлял пациента «в никуда».
|
||
- **Тема психологической помощи / тревоги вокруг состояния.** Иногда пациент пишет «мне страшно», «не могу спать от тревоги, что у меня». Прямого ответа в вики нет; в эскалации reason `acute_pain` это не подходит, `explicit_request` — натянуто. Стоит явно сформулировать политику.
|
||
|
||
## Что НЕ должно попадать в датасет ветки `medical_question`
|
||
|
||
- Конкретные диагнозы и их клинические признаки — в РАГ для ассистента это создаёт соблазн «угадать диагноз».
|
||
- Списки препаратов — даже под формулировкой «врач может назначить». Любое название препарата в ответе бота — потенциальная рекомендация.
|
||
- Внутренние клинические рекомендации врачей и презентации с конференций (раздел `vrachi/klinicheskie-rekomendacii/...` и `prezentacii-s-konferencijj/...`) — это материалы для врачей, не для пациента.
|
||
- Внутренние добавочные номера, пароли, доступы.
|
||
- Полные операторские скрипты записи — они для `new_booking`.
|
||
- Цены — они для `price_question`. Здесь, в отличие от `new_booking`, цена в ответе вообще не нужна: пациент задаёт медицинский вопрос, а не вопрос про деньги.
|
||
|
||
## Источники и приоритет
|
||
|
||
При расхождении источников приоритет такой:
|
||
|
||
1. **Безопасность пациента** — выше всего. При малейшем сомнении в остроте состояния — `escalate_human` с `reason=acute_pain`, без гипотез и обсуждения.
|
||
2. **ТЗ оптимизации** (`docs/OPTIMIZATION_CONVERSION_v1.md`) — конверсионная логика. Гипотезы по жалобе разрешены и нужны (как у бота-конкурента), это не противоречит безопасности при правильной формулировке («может быть связано с»).
|
||
3. **Связки «жалоба → возможные причины → специалист → услуга» из `new_booking.md`** — единственный источник медицинского триажа. Здесь они используются по ссылке, не дублируются.
|
||
4. **Вики клиники** — фактическая база (что лечат, что не делают, куда направлять).
|
||
5. **Скрипты операторов** — НЕ источник. Бот не симулирует «настойчивые» формулировки операторов («у нас лучше», «настоять на записи») — пациент пришёл с медицинским вопросом, и нажим тут портит конверсию сильнее, чем помогает.
|
||
|
||
Прежние сводные документы (`skripty-vozrazhenija-chavo-obshhijj-spravochnik.md`, `vrachi-kliniki-polnaja-informacija.md`) для этой ветки не источник. После подключения подписки на живую вики они должны быть отвязаны от индекса ветки `medical_question`.
|