Розробка AI-бота для Telegram на базі LLM

Ручні відповіді в месенджері з'їдають час команди та гублять заявки в неробочі години. Ми розробляємо Telegram AI-бота на базі мовної моделі під ключ: підключаємо до ваших даних, налаштовуємо сценарії та передаємо з регламентами. Частка автовідповідей зростає, а час обробки звернення скорочується в рази.
Часті запитання

Telegram AI бот: що ламається в реальній експлуатації

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

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

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

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

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

Вимірюваний ефект: швидкість, навантаження, частка автовідповідей

Час першої відповіді

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

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

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

Саме передача контексту, а не сам автовідповідь, дає основне зниження навантаження на підтримку в пікові години.

Час обробки заявки та піки

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

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

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

Формати бота: асистент, заявки, підтримка

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

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

Варіант Коли підходить Обмеження
Асистент з базою знань Питання за документацією, регламентами, тарифами — відповідь уже є у ваших джерелах Якість відповіді впирається в повноту бази; потрібні регулярне вивантаження й оновлення, інакше бот упевнено відповідає застарілим
Заявки через бота Потрібно зібрати дані (тип запиту, контакти, вкладення) і передати в облікову систему Гнучкість моделі тут заважає: жорсткий сценарій передбачуваніший, бот зобов'язаний довести форму до кінця, а не розмірковувати
Підтримка першої лінії Масові однотипні звернення: статус, доступи, інструкції за кроками Закриває лише заздалегідь описані теми; усе, що поза сценарієм, накопичує роздратування — потрібен чесний вихід на людину
Гібрид з оператором Змішаний потік: типове віддаємо боту, складне — живому співробітнику Дорожче в налаштуванні: правила ескалації, передача контексту діалогу, робота оператора без втрати історії листування

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

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

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

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

  1. Аудит діалогів. Вивантажуємо історію, рахуємо частку повторюваних запитів, відзначаємо, де оператор перепитує, і збираємо список тем, відповідей на які немає ні в регламентах, ні в базі знань.
  2. Проєктування сценаріїв. Схема розмови: що вирішує модель, що — жорстка логіка, на якому кроці обов'язкова передача живому оператору, які дані бот збирає і куди їх пише.
  3. Підключення бази знань. Регламенти, інструкції та прайси ріжемо на смислові фрагменти, задаємо системну інструкцію моделі й правило: немає джерела — немає відповіді, замість здогадки уточнювальне питання.
  4. Налаштування інтеграцій. Зв'язка з обліковою системою та каналом підтримки, ролі й доступи, логування діалогів, обмеження на довжину і частоту відповідей.
  5. Тестування на реальних зверненнях. Проганяємо бота за вивантаженням з аудиту, рахуємо частку коректних відповідей і частку коректних відмов від відповіді, дописуємо відсутні гілки.
  6. Пілот на вузькому потоці. Підключаємо бота до частини звернень, звіряємо метрики з прогнозом, дивимося, де люди йдуть до оператора і чому.
  7. Передача в експлуатацію. Передаємо доступи й схеми, регламент правки бази знань, інструкцію для операторів і порядок відкату до попереднього сценарію.

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

Що залишається у вас: конфігурація, схеми, регламенти

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

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

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

Кейс: підтримка скоротила ручні відповіді втричі

Напрям — сервісна підтримка в Telegram: до запуску бота всі звернення розбирали оператори вручну. У пікові години перша відповідь займала 20-40 хвилин, у неробочий час клієнт чекав до ранку, а близько третини діалогів закривалося взагалі без відповіді.

Типові питання — статус замовлення, умови повернення, терміни доставки — давали до 70% потоку і з'їдали майже всю зміну.

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

Окремим правилом закрили нічне вікно: складні випадки не «висять» до ранку, а потрапляють у ранкову чергу з пріоритетом.

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

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

Клас відмов «клієнт не дочекався відповіді» практично зник: частка діалогів, закритих без реакції підтримки, впала з третини до одиниць відсотків. Важлива деталь — бот не намагається відповідати на все.

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

Чим відрізняється бот на мовній моделі від кнопок?

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

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

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

Бот на мовній моделі розбирає вільне формулювання, виділяє намір і утримує контекст кількох реплік. «Перенеси на після обіду» він розуміє без окремого пункту меню, тоді як сценарному варіанту потрібно, щоб людина спершу знайшла цю кнопку.

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

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

Порівняння підходів щодо підтримки теж не на користь однієї схеми.

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

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

Питання про дані, доступи та якість відповідей

Коли Telegram AI бот відповідає за внутрішніми документами, сумніви стосуються не моделі, а даних навколо неї.

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

Що якщо потрібних даних немає в базі знань?

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

Як бот переживає збої зовнішніх сервісів?

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

Як ви отримуєте доступ до внутрішніх даних?

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

Як оновлювати базу знань без простою?

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

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

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

  • 20–50 прикладів звернень як є: з одруками, голосовими, вкладеннями, сленгом. За ними видно, де бот відповідає впевнено, а де зобов'язаний передати діалог оператору.
  • Які дані бот має бачити: регламенти, прайси, історію тікетів, таблиці, вивантаження. Важливі формат і частота оновлення — від цього залежить схема підготовки знань.
  • Межі доступу: де є програмний інтерфейс, де лише вивантаження файлом за розкладом, хто видає облікові дані і в якому контурі все працює.
  • Точки входу: особистий чат, групи, кнопки, оплата, кілька ботів або один з ролями. Це визначає обсяг логіки навколо самого діалогу.
  • Заборони й правила: теми, у яких бот мовчить, робота з персональними даними, вимоги до зберігання історії та логів листування.
  • Критерії приймання: частка діалогів без оператора, час першої відповіді, точність на тестовому наборі. Без них приймання перетворюється на спір про смаки.
  • Ролі й терміни: хто підтверджує відповіді на стороні замовника, скільки часу відведено на пілот, до якої дати потрібен робочий запуск.

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

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

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

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