Наименование организации:
ООО «Мой Софт»
40702810310000021416
Расчетный счет:
АО «ТИНЬКОФФ БАНК»
Банк:
044525974
БИК:
781101001
Корреспондентский счет:
7811616280
ИНН:
781101001
КПП:
1167847299410
ОГРН:
ОКПО:
03614300
Бесщетников Антон Игоревич
Генеральный директор:
192019, г. Санкт-Петербург, ул. Мельничная, д. 18, литер А, пом. 18-H 10, оф. 805
Юридический адрес:
Почтовый адрес:
192019, г. Санкт-Петербург, а/я 2
Реквизиты компании ООО «Мой Софт»
По нишам

Чат-бот для аптеки

Как ИИ-агент аптеки отвечает про наличие и цену препарата по точкам сети, ведёт бронь по правилам из базы знаний и передаёт сложные вопросы фармацевту.

Команда платформы СаввиОбновлено 17 сентября 20267 мин чтения
Пластилиновая аптечная витрина с рядом баночек-таблеток, одна баночка кораллового цвета выделена вперёд
Коротко

Аптечный чат-бот отвечает на вопрос, есть ли препарат в конкретной точке сети, по какой цене и до какого часа работает касса. Данные берутся из таблицы остатков по точкам с числовыми колонками, которая обновляется по расписанию. Правила брони и выдачи хранятся в базе знаний, а вопросы о лечении и рецептах передаются фармацевту.

В аптеке на Мира спрашивают капотен 25, а он есть только в точке на Советской. Первостольник у кассы уже отвечает на два звонка сразу и не может бросить очередь ради поиска по трём филиалам. Клиент в мессенджере ждёт одного слова: да или нет, и в какой аптеке.

Разница между быстрым ответом и десятью минутами молчания — в том, откуда агент берёт данные, а не в человеке у кассы.

Почему в сети аптек «есть в наличии» — вопрос про точку

Один склад и один остаток бывают у одиночной аптеки — у сети остаток свой на каждой точке, и ответ «в наличии» без адреса ничего не значит: препарат может стоять на Советской и закончиться на Мира в тот же час.

Агент должен спрашивать или знать точку клиента раньше, чем идёт за остатком, а не после. Это меняет саму структуру данных: под каждый вопрос нужна таблица, где на пересечении точки и препарата стоит остаток и цена, а не одна цифра «сколько штук».

Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500

Собрать агента

Как устроена таблица остатков по точкам

Остатки приходят в раздел «Таблицы» выгрузкой из товароучётной системы и обновляются по расписанию: по умолчанию раз в сутки, чаще одного раза в 30 минут ставить не рекомендуется, плюс кнопка ручного обновления на случай внеплановой сверки.

1 Собрать таблицу Точка, название препарата, дозировка и форма выпуска, остаток, цена. Остаток и цена — это числовые колонки, без текста внутри.
2 Настроить точный поиск по точке Название или адрес аптеки клиент обычно называет верно, поэтому по этой колонке достаточно поиска по маске.
3 Настроить смысловой поиск по препарату Функция `VECTOR_SEARCH` с точностью 0,5–0,8: «капотен 25» и «Каптоприл 25 мг №40» — одна строка, но точным совпадением их не связать.
4 Ограничить выборку Лимит строк в ответе и предварительный фильтр «только положительный остаток» экономят токены и не дают агенту зачитать половину прайса на общий вопрос.

Тот же принцип разбора прайса на два вида поиска (точный по одной колонке и смысловой по другой) устроен и для таблиц в целом, только там колонки другие.

Вопрос клиентаЧто отвечает агентИсточник
Есть ли капотен на Советскойостаток и цена по этой точкетаблица остатков
До скольки работаете на Мирарежим работы точкибаза знаний
Можно отложить упаковку до вечераправило бронибаза знаний
Что выпить от горлапередаёт вопрос человекуфармацевт

Правила брони, выдачи и режима работы живут в базе знаний

Остаток и цена меняются каждый час и потому лежат в таблице. Режим работы точки, срок хранения брони, нужен ли паспорт при выдаче: это текст, который меняется редко, а значит, ему место в базе знаний.

Формат называется быстрые ответы: короткий файл с точным названием вроде «Бронь препарата» или «Режим работы точки», куда первостольник вписывает готовый ответ или инструкцию для агента. Платформа ищет такой файл по смыслу вопроса, а не по ключевым словам, поэтому «а вы держите до вечера» и «сколько лежит бронь» находят один и тот же документ. Для аптечной сети хватает десятка таких файлов на точку и общие правила, а верхний ориентир раздела — 70–80 файлов на агента.

!
Где грань между таблицей и базой знаний

Если значение отличается по точкам и обновляется чаще раза в неделю, это колонка в таблице. Если формулировка одна на все точки и меняется раз в квартал, это документ базы знаний. Смешать одно с другим означает либо устаревшие цифры в ответах, либо перечитывание неизменного текста в каждом диалоге.

Барьеры и контроль фактов: доверие к цифрам без выдумки

Цена и остаток — это числа, и любое неточное число в ответе аптеки клиент проверяет ногами на кассе. Для таких случаев в настройке агента есть контроль поведения с готовым барьером «Числа только из источников»: перед отправкой ответа модель перепроверяет, взята ли цифра из таблицы или базы знаний, а не досочинена по смыслу разговора.

Рядом работает контроль фактов, режим, при котором агент отвечает только тем, что подтверждено в базе знаний или таблице. Строгий режим проверяет каждое утверждение, обычный проверяет только ключевые факты. Если ответа на вопрос в источниках нет, агенту задаётся фраза-заглушка и правило, что делать дальше: остановить диалог, позвать сотрудника или и то и другое.

Тем же правилом закрывается вопрос про лечение. Инструкция агента описывает, что он отвечает про наличие, цену, точку, режим работы, правила брони и выдачи, срок поставки под заказ, а разговор о самом лечении передаёт человеку. Правило под этим одно: модели не дают уверенно говорить то, чего она не проверила, — от этого же зависит, выдумывает ли ИИ-агент ответы вообще.

~15 стоимость диалога с проверкой остатка и цены
0,5–0,8 рабочая точность смыслового поиска по названию препарата
53,8 % обращений приходят вне Пн–Пт с 9 до 18
Источник: Рекомендации по точности поиска — из руководства платформы Савви. Доля обращений вне графика — по диалогам платформы. Стоимость диалога — при оплате по токенам, 1000 токенов = 1 ₽.

Передача провизору по типу вопроса

Рецептурная позиция или вопрос про совместимость препаратов узнаётся по формулировке — агенту не нужно её домысливать, достаточно триггера на фразу во входящем сообщении. Срабатывает отдельный файл базы знаний с флагом «Прерывать диалог»: агент перестаёт отвечать, а в Telegram сотруднику приходит уведомление, что клиента нужно забрать в ручной режим.

Второй канал передачи работает по факту пробела в данных, а не по формулировке: тот же вызов менеджера подключается как запасной сценарий в барьере или в настройке контроля фактов, когда ответа в источниках просто нет. Первый сценарий реагирует на конкретный тип вопроса, второй на отсутствие ответа, и оба настраиваются независимо друг от друга.

!
Зачем прерывать диалог, а не просто звать менеджера

Без флага «Прерывать диалог» агент продолжит генерировать ответы параллельно с фармацевтом, и клиент получит два голоса сразу. Прерывание останавливает бота на этом файле, пока сотрудник не закроет диалог сам.

Разложите путь одной брони по трём местам хранения

Разложите бронь на составляющие, и станет видно, где что должно лежать — остаток и цена в таблице, правило брони и срок хранения в базе знаний, а напоминание клиенту о готовности в отдельном действии.

Напоминание настраивается через шаг «Установить фоллоу-ап» с передачей агенту даты события: например, время, когда препарат забронирован, и смещение в один день или два часа до истечения брони. Агент вызывает функцию notify_customer с этими датами, и сообщение уходит клиенту само, без ручного контроля со стороны сотрудника. Если бронь сняли раньше срока, включается отдельная функция отмены, иначе клиент получит напоминание про упаковку, которую уже вернули на полку.

Начать стоит с малого — одна таблица остатков на две-три точки и десяток файлов с правилами брони. Регистрация и тарифы платформы — на suvvy.ai, а расширять список точек и правил можно постепенно, по мере того как видно, какие вопросы в переписке повторяются чаще всего.

Частые вопросы

Откуда агент знает, есть ли препарат именно в моей аптеке

Из таблицы остатков, где каждая строка — это препарат в конкретной точке сети с числовыми колонками цены и количества. Точку находят точным совпадением по названию или адресу, а название препарата ищут смысловым поиском, потому что клиенты пишут его не так, как в прайсе.

Что отвечает агент, если препарата нет ни в одной точке

Смотрит в ту же таблицу или базу знаний на срок поставки под заказ и называет его, если он там прописан. Обещать точную дату без источника агент не должен, это правило задаётся барьером на числовую информацию.

Может ли агент посоветовать, что выпить от температуры

Такие вопросы уходят человеку. В инструкции агента прописано, что он отвечает про наличие, цену, режим работы, правила брони и выдачи, а вопросы о выборе препарата и дозировке передаёт фармацевту через отдельный файл базы знаний.

Как устроена бронь препарата

Правила брони и выдачи (срок хранения, нужен ли паспорт, можно ли отменить) хранятся в базе знаний как быстрые ответы на типовые вопросы. Подтверждение брони агент берёт слово в слово из того же документа, что использует первостольник.

Что если клиент спрашивает про рецептурный препарат

Такое сообщение распознаётся по фразе во входящем тексте, агент прерывает автоматические ответы и уведомляет сотрудника в Telegram. Дальше с клиентом общается фармацевт, а не бот.

Сколько стоит один такой диалог

Около 15 ₽ при оплате по токенам, где тысяча токенов стоит 1 ₽. Цена не зависит от числа точек сети или размера таблицы остатков.

Команда платформы СаввиПишем о том, как бизнес внедряет ИИ-агентов, на данных платформы. Обновлено 17 сентября 2026.
BLOG500
Собрать агента