<aside>
🏔️
Кейс: діалоговий бот підтримки для e-commerce бренду outdoor-спорядження North Star Outdoors — контракт на Upwork у межах програми Upwork Talent Accelerator, із зовнішньою перевіркою результату. Дві збірки: браузерна (один файл, працює офлайн) і серверна на n8n.
</aside>
1) Context 🏙️
- Ніша: e-commerce — одяг для активного відпочинку та кемпінгове спорядження
- Аудиторія: роздрібні покупці у Північній Америці
- Замовник: Upwork Talent Accelerator, контракт AI Chatbot Developer
- Формат: бриф із фіксованими бізнес-правилами та зовнішнім оцінювачем; дедлайн 24–48 годин
- Обсяг задачі: чотири типи звернень — трекінг замовлення, повернення та обміни, підбір товару, передача живому оператору
2) Problem ⚠️
- Бізнес-задача: типова служба підтримки інтернет-магазину витрачає більшість часу на чотири повторювані питання. Їх можна закрити діалоговим ботом, але тільки якщо він розпізнає живу мову, а не сухі команди.
- Технічне обмеження, яке визначило все рішення: оцінювач мусив протестувати бота без API-ключів, без підписок, без реєстрації акаунтів і без жодних кроків налаштування.
- Чому це складно: будь-який виклик LLM означає ключ. Ключ означає, що перевіряльник не запустить бота — а отже, робота не буде зарахована. Стандартний підхід «підключити GPT» тут фізично не працює.
- Ціль: побудувати розпізнавання намірів із підтримкою різних формулювань і друкарських помилок, яке працює з нуля в браузері й не робить жодного мережевого запиту.
3) Solution ✅
Замість LLM — власний детермінований класифікатор намірів, який дає той самий результат на цій задачі, але без ключів, без затримки і без вартості за повідомлення.
Кожне повідомлення оцінюється за двома сигналами: багатослівні фрази (вага 3) і окремі ключові слова (до 1). Порівняння нечітке — відстань Дамерау-Левенштейна, тому retrun розпізнається як return, а це найпоширеніша реальна помилка користувача. Нижче порогу впевненості 1.00 бот не вгадує, а чесно каже, що не зрозумів, і пропонує варіанти.
Зверху — діалоговий менеджер зі станом: слот-філінг, можливість змінити тему на пів-дорозі, автоматична ескалація до живого оператора після двох промахів поспіль.
Окрема ідея, якої не було у вимогах — Intent Inspector: панель, що для кожного повідомлення показує розпізнаний намір, оцінку впевненості, на чому саме він спрацював і поточний стан розмови. Вона перетворює «здається, працює» на доказ: перевіряльник бачить логіку рішення, а не лише його результат.
4) Process 🔁 (Intent model → Dialog manager → n8n build → QA)
🧠 Intent model
- Дев'ять намірів, кожен із набором фраз і ключових слів; фрази важать утричі більше, бо саме вони ловлять реальні формулювання