Вилучення параметрів діалогу: гібрид LLM та правил для чат-ботів

Замовники йдуть із чат-бота, якщо він перепитує те саме або втрачає деталі заявки. Ми розробляємо слот-філінг під ключ: гібрид правил і мовної моделі витягує параметри з живого діалогу та помітно скорочує ручний розбір звернень. Обговоримо ваше завдання й повернемося з оцінкою та планом.
Часті запитання

Чому слот-філінг чат-бота розвалюється на живих діалогах

У демо слот-філінг чат-бота виглядає надійно: асистент ставить запитання, користувач відповідає одним значенням, слот закривається, діалог іде далі.

На живому трафіку репліка майже ніколи не надходить в очікуваній формі — і вилучення параметрів діалогу починає втрачати значення на кожному кроці.

Вільні формулювання дають складені та відносні значення: «після обіду в п’ятницю», «як минулого разу», «години через дві». Словники й правила закривають перелічення варіантів, але не їхні комбінації.

Друга часта поломка — кілька сутностей в одній репліці: «доставка в Мінськ у четвер, дві адреси, одна з 10 до 12» — вилучається перша, решта осідають як незаповнені слоти, і форма перепитує те, що людина вже назвала.

Відмови й перенесення ламають логіку інакше: «поки не знаю», «давайте пізніше» — і модель упевнено пише значення в слот, бо форма вимагає заповнення.

Зміна теми всередині одного повідомлення («а оплата карткою можлива?» посеред збору даних) скидає вже зібраний набір, і користувач повертається до першого питання.

У Rasa та споріднених діалогових платформах це видно в логах одразу: слот порожній, форма зациклюється на перепитуванні, зростає кількість кроків до результату.

Помилки розпізнавання сутностей накопичуються: частка діалогів, де всі обов’язкові слоти заповнені без підключення оператора, падає, а ескалації та повторні уточнення з’їдають ефект від автоматизації.

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

Що дає слот-філінг чат-бота на гібридній схемі

Розбір параметрів діалогу на одній мовній моделі дає плаваючий результат: та сама фраза в різному контексті заповнює слот по-різному, а частина реплік іде в перепитування. На довгому сценарії це видно за діалогами, де клієнт уже втретє називає місто, дату або категорію послуги.

Гібридна схема nlp ділить роботу явно. Словники, регулярні правила та нормалізація закривають передбачувані конструкції — адреси, дати, числові діапазони, назви послуг.

Мовна модель підключається лише там, де шаблон не спрацював: вільне формулювання, кілька параметрів в одній репліці, нестандартний порядок реплік.

Перший вимірюваний ефект — точність вилучення параметрів.

Типові випадки закриває детерміноване правило, і модель їх не «переграє»; на розміченій вибірці реальних діалогів частка правильно заповнених слотів зростає, а спірні відповіді позначаються для розбору, а не йдуть у сценарій мовчки.

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

Третій — навантаження на мовну модель. Модель викликається лише на складних гілках, тому затримка відповіді передбачувана, а поведінка бота керована: правило можна виправити того самого дня без перенавчання і без ризику зламати сусідні слоти.

Режими вилучення параметрів: правила, модель, гібрид

Вибір режиму вилучення слотів іде не за «силою» моделі, а за передбачуваністю входу. Дивимося три речі: наскільки закритий список значень слота, як часто користувач перефразовує одну й ту саму думку і що сценарій робить із нерозібраною реплікою. Від цих відповідей залежить, де закінчуються правила і де підключається модель.

Варіант Коли підходить Обмеження
Правила й словники Закритий список значень: міста, тарифи, коди, дати; репліки однотипні Ламається на перефразах і одруках — кожне нове формулювання це правка шаблонів
Мовна модель Вільна мова, довгі репліки, багато синонімів, рідкісні сценарії Результат недетермінований, відповідь надходить із затримкою, можливі вигадані значення — потрібен валідатор
Гібрид Типові репліки закривають правила, модель працює на нерозібраному залишку Складніше проєктування: потрібен арбітраж між шарами й логування того, хто заповнив слот

Гібридний розбір діалогу зручно будувати пошарово: детермінований шар розбирає шаблонні репліки й заповнює слот зі словника, а мовна модель викликається лише на тому, що він не подужав.

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

Перехід між режимами не потребує переписувати сценарій діалогу — змінюється лише шар розбору, інтерфейс заповнення слотів залишається тим самим. Тому починати розумно з правил і вмикати модель точково, коли за логами видно частку реплік, які детермінований шар не закриває.

Як ми впроваджуємо вилучення параметрів: етапи робіт

Слот-філінг не вмикається готовим модулем: якість вилучення залежить від того, які параметри потрібні процесу і як клієнти їх формулюють. Тому впровадження nlp-розбору йде від реальних діалогів, а не від схеми, придуманої у вакуумі, і на кожному кроці є точка перевірки.

  1. Аудит діалогів. Вивантажуємо історію звернень, групуємо за сценаріями й отримуємо перелік цільових слотів із часткою випадків, де вони звучать явно.
  2. Розмітка діалогів. Пишемо інструкцію для розмітників: межі слота, типи значень, неоднозначні випадки. Частину корпусу розмічають двоє — розбіжності розбираємо до навчання, інакше модель вивчить шум.
  3. Схема параметрів. Фіксуємо типи, обов’язковість, нормалізацію (телефон, дата, довідкові значення) і поведінку при суперечностях, коли клієнт називає різні значення в одній розмові.
  4. Налаштування правил. Ідентифікатори, дати й значення з довідників закриваємо детермінованими правилами — вони передбачувані й слугують опорою для моделі.
  5. Налаштування моделі. Дообучаємо вилучення на розміченому корпусі для вільних формулювань, задаємо поріг упевненості й перепитування замість підстановки здогадки.
  6. Приймання діалогового асистента. Проганяємо відкладену вибірку: частка діалогів із повністю заповненими слотами, помилки за кожним параметром, ручний розбір спірних випадків.
  7. Передача в супровід. Віддаємо схему слотів, правила, інструкцію розмітки, панель метрик якості та регламент дообучення на нових формулюваннях.

Порядок етапів не переставляється: правила без розмітки не покривають живу мову, а модель без валідації підставляє правдоподібні, але неправильні значення.

Комплект постачання: схеми, правила, розмітка, регламенти

Комплект збирається так, щоб рішення можна було змінювати без нашої участі: інженер замовника відкриває схему, бачить, звідки взявся параметр, і править його там, де це передбачено, а не в коді бота. Нижче — що залишається у вас за підсумками проєкту зі слот-філінгу.

  • Карта параметрів діалогу — таблиця з усіма слотами: ім’я, тип, обов’язковість, джерело (пряма відповідь, висновок моделі, значення за замовчуванням), правила валідації та поведінка асистента при відмові користувача відповідати.
  • Словник сутностей — нормалізовані форми значень, синоніми й одруки, які розпізнаються як один і той самий слот; поповнюється без перезбирання логіки.
  • Схема маршрутизації — діаграма переходів між станами діалогу із зазначенням, у який момент підключається модель, а де працюють детерміновані правила.
  • Набір розмітки — еталонні приклади діалогів із проставленими слотами, розбиті на навчальну та перевірну частини; слугує і для дообучення, і для регресійних прогонів.
  • Регламент правок — порядок змін: хто додає слот, як перевіряється, яким тестом підтверджується, що нова логіка не зламала сусідні гілки.
  • Документація діалогового асистента — опис контрактів обміну з вашими системами, форматів відповіді, обробки частково заповнених заявок і передачі діалогу оператору.
  • Інструкція з експлуатації — як читати журнали, де дивитися частку успішно вилучених параметрів і за якими ознаками зрозуміти, що якість розбору просiла.

Кожен артефакт версіонується разом із кодом, тому зміни відстежуються: видно, що і навіщо правили, і можна повернутися до попереднього стану логіки.

Цього набору достатньо, щоб власними силами додавати нові слоти й сценарії — або, якщо вирішите продовжити з нами, ми підхопимо роботу без зворотного проєктування.

Приклад із практики: як зросла точність розбору діалогів

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

На шаблонних фразах це працювало, але варто було користувачу відповісти розгорнуто або назвати параметри в іншому порядку — розбір ламався. Частка коректно заповнених слотів трималася близько 62%, і кожен п’ятий діалог ішов у перепитування.

Правила ми не викидали: вони залишилися детермінованим шаром для нормалізації та передбачуваних сутностей — номери замовлень, дати, міста з довідника. Модель додалася поверх і взяла на себе вільні формулювання, одруки та параметри, названі в попередніх репліках.

Обидва результати зливаються за впевненістю: при розбіжності виграє надійніше джерело, а спірний слот позначається для уточнення. Правилову розмітку зібрали на spaCy — контракт відповіді назовні не змінювався.

Точність розбору заміряли на одному й тому самому наборі реальних діалогів — до і після впровадження гібридної схеми.

Метрика До Після
Коректно заповнені слоти 62% 91%
Діалоги з перепитуванням за параметром 21% 6%
Розбір реплік з одруками та сленгом 48% 87%

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

Після налаштування порогів частка сценаріїв, що дійшли до цільової дії з першого проходу, зросла з 71% до 94%, а передача оператору скоротилася майже вдвічі.

Чим гібридна схема відрізняється від чистої мовної моделі?

Різниця видна там, де слот-філінг перестає бути демонстрацією: один параметр надходить із вільної репліки, другий — із кнопки, третій спливає посеред уточнювального питання.

Чиста мовна модель витягує формулювання, яких немає в розмітці, але не гарантує однаковий результат на однаковому вході й не пояснює, чому слот заповнився саме так.

Гібридна схема ділить роботу: правила й скінченний автомат тримають критичні параметри та порядок кроків, модель розбирає вільний текст, валідатор вирішує, що потрапить у стан діалогу. Порівняння підходів обробки природної мови зручно звести до трьох осей.

Основна робота — на стику: правила пріоритетніші за кандидатів моделі, конфлікт значень вирішується за джерелом і давністю, кожне рішення пишеться в лог. Діалог стає відтворюваним: збій повторюється на тому самому вході, а правка правила закриває клас помилок, а не одну розмову.

Для підтримки це зміщує навантаження з розбору «чому модель так відповіла» на ведення правил і регресійних сценаріїв. У Rasa такі набори описуються декларативно — правку вносить інженер без перенавчання моделі.

Технічні сумніви: обмеження та стійкість підходу

Слот-філінг у чат-боті не закриває все: у гібрида є межі. Слоти без лексичних маркерів — «зроби як минулого разу», «нам дорожче» — правилами не вилучаються, тут потрібна модель з історією діалогу, а правила лише перевіряють, що значення потрапило в допустимий набір.

Якщо ознака розмазана по трьох репліках або в одній фразі сховані два параметри, точність падає. Це обмеження nlp-розбору, а не помилка налаштування: такі гілки ми позначаємо як зону ручного розбору, а не маскуємо під автоматику.

Одруки знімаються нормалізацією та нечітким зіставленням: розкладка, повтори літер, склейки слів, числа прописом. Поріг збігу налаштовується під словник замовника, а спірні спрацювання логуються — за ними видно, де словник треба дописати.

Дані діалогу залишаються в контурі замовника: логи та вилучені параметри зберігаються на його боці, строк зберігання та знеособлення задає політика, назовні йдуть лише метрики якості без тексту реплік.

Що буде при зміні бізнес-правил?

Правила лежать окремо від моделі й описані декларативно. Правка словника або умови займає години, перенавчання не потрібне: проганяємо регрес-набір діалогів, перевіряємо, що частка правильно заповнених слотів не просiла, і викочуємо.

Як відкотитися, якщо якість просiла?

Конфігурація й модель версіонуються разом, повернення — перемикання на попередню версію. Історія діалогів при цьому зберігається, втрачених заявок немає.

Обговоримо ваше завдання вилучення параметрів діалогу

Точна оцінка задачі вилучення параметрів тримається на даних, а не на описі «хочемо розумного бота». Щоб повернутися з планом робіт і складом розмітки, а не з приблизною вилкою, потрібен мінімум контексту. Нижче — що надіслати і що уточнити.

  • 30-50 реальних діалогів із розміткою: яке значення мало бути вилучено в кожному випадку. Окремо — приклади, де параметр названий опосередковано, через заперечення або з одруком.
  • Перелік параметрів: обов’язкові та необов’язкові, правила при конфлікті в одному повідомленні — перепитувати чи брати значення за замовчуванням.
  • Доменні сутності та словники: назви послуг, синоніми, скорочення, суміш латиниці й кирилиці, сленг вашої аудиторії.
  • Канали та формат відповіді: текст, кнопки, голосова розшифровка; у якому вигляді система чекає результат — структурований json або поля в CRM.
  • Цільові метрики за кожним параметром: допустима частка помилок, що важливіше — точність чи повнота, як бот поводиться при низькій упевненості розбору.
  • Обмеження: де можна обробляти дані, скільки зберігати логи, хто дає доступи до розмітки й тестового контуру.
  • Поточний контур: що вже працює — правила, скрипти, промпти — і на якій платформі живе діалоговий асистент.

Якщо йдеться про розробку NLP-рішення з нуля, додайте цільове навантаження та мови, з якими доведеться працювати.

Із цього ми збираємо схему гібрида: правила закривають передбачувані параметри та валідацію, мовна модель — варіативні формулювання, а невпевнений розбір іде на уточнювальне питання.

Так слот-філінг у чат-боті залишається керованим: видно, який параметр вилучено і на якій підставі. Опишіть завдання і обговоріть діалогового асистента з нами — повернемося з оцінкою обсягу та планом робіт.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142