🧠 Проектируем AI-чат: где заканчивается нейросеть и начинается обычная автоматизация? 💡🤖Разбираю на примере AI-чата #MedAssistGA для записи к врачу.
На первый взгляд всё просто.
💬 Пользователь:
«У меня болит горло третий день, к кому идти?»
💬 AI:
«Вам нужен ЛОР»
🔎 и дальше показывает врачей.
👉 Но в реальном продукте так делать технически криво.Потому что AI не должен управлять всем сценарием записи к врачу. Иначе он может превратиться в хаотичного диспетчера.
❗️ Это не автономный AI-агент.👉
Как обычно разделяют ответственность:🧠 AI помогает понять смысл сообщения пользователя.
⚙️ Backend+UI управляют бизнес-сценарием.
1️⃣ Что делает AIAI нужен там, где есть неопределённость.
Пользователь может написать:
▫️ «Болит горло и температура»
▫️ «У ребёнка сыпь»
▫️ «Мне нужен врач по спине»
▫️ «У меня уже есть диагноз, к кому записаться?»
То есть пользователь пишет не структурированные данные, а обычный человеческий текст.
И вот здесь AI полезен.
Он должен:
✅ понять намерение пользователя
✅ аккуратно уточнить симптомы
✅ не ставить диагноз
✅ не назначать лечение
✅ определить подходящую специализацию врача
✅ распознать потенциально опасные симптомы
✅ вернуть структурированное решение для Backend
📌 Например:
💬 Пользователь:
«Третий день болит горло, температура 37.8, заложен нос»
💬 AI:
«По описанию вам может подойти консультация ЛОР-врача. Уточните, пожалуйста, есть ли сильная боль при глотании, налёт на миндалинах или затруднение дыхания?»
После уточнения AI возвращает не просто текст, а структурированное решение:
{
"intent": "find_doctor",
"specialty": "ENT",
"specialtyName": "ЛОР",
"urgency": "planned",
"reason": "Пользователь описал боль в горле, насморк и температуру",
"nextStep": "ASK_CITY"
}
И всё.
На этом интеллектуальная часть закончилась.
2️⃣ Что делает автоматизацияДальше не нужно заставлять AI «думать», какую кнопку показать.
Это уже обычный backend/UI-flow.
После того как AI определил специализацию, система ведёт пользователя по понятному сценарию:
1. Спросить город
2. Подтвердить город
3. Показать клиники в этом городе
4. Дать выбрать клинику ИЛИ сразу показать врачей по найденной специализации
5. Дать отсортировать врачей по рейтингу/стажу/ближайшему слоту
6. Перейти к записи
📌 Например:
AI определил:
{
"specialty": "ENT",
"specialtyName": "ЛОР"
}
Дальше Backend переводит чат в состояние ASK_CITY.
UI показывает:
«В каком городе хотите найти врача?»
Пользователь выбирает город через виджет или пишет город текстом.
После на UI можно спросить что для пользователя более важно: выбрать клинику или врача?
Если клиника, то потом Backend переводит чат в состояние SELECT_CLINIC.
UI показывает клиники.
Потом Backend показывает врачей по параметрам:
▫️ город = Москва
▫️ клиника = выбранная клиника
▫️ специализация = ЛОР
▫️ сортировка = по рейтингу / ближайшему слоту
И далее обычная автоматизация для записи к врачу, без AI.
👉 А если пользователь пишет текст вместо выбора в виджете?📌 Например:
Система ждёт выбор клиники, а пользователь пишет:
«А до скольки работает клиника на Ленина?»
Тогда это уже событие clinic_info.
Система должна:
1. понять, о какой клинике речь;
2. получить часы работы из справочника;
3. ответить пользователю;
4. не потерять текущий сценарий записи.
📌 Ещё пример.
Система уже показала ЛОР-ов, а пользователь пишет:
«А можно лучше к терапевту?»
Тогда это событие change_specialty.
Система должна изменить специализацию и обновить список врачей.
👉 Почему не надо отдавать всё AI❌ Сложнее контролировать бизнес-процесс
❌ Сложнее тестировать сценарии
❌ Сложнее обрабатывать ошибки
❌ Сложнее объяснить разработчикам, что именно должно происходить
❌ Сложнее защититься от странных пользовательских сообщений
❌ Сложнее обеспечить стабильный UX
AI может хорошо понять смысл текста.
Но запись к врачу — это уже не «магия нейросети», а обычный процесс, подлежащий автоматизации.
В следующем посте покажу, как под такой сценарий написать системный промпт 🤝
#ИнтеграцииGA #AI_for_analysts