Розробка AI-плагіна для WordPress під ключ: від REST API до чат-віджета

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

Чому AI-плагін WordPress ламається під реальним навантаженням

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

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

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

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

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

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

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

Що змінюється на сайті WordPress після впровадження

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

Час до першого фрагмента відповіді

Відповідь віддається потоково: віджет показує перші слова, поки модель догенеровує решту, тому очікування до першого видимого тексту падає з 4–9 секунд до 0,5–1,5.

Повна відповідь надходить за 2–4 секунди — для відвідувача це різниця між «живим» інтерфейсом і відчуттям завислої сторінки.

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

Кеш за нормалізованим ключем (регістр, зайві пробіли, стоп-слова) разом із семантичним збігом на близькі формулювання закриває 30–60% повторів — типові питання про доставку, оплату, запис.

Відповідь береться з transient-сховища з обмеженим терміном життя, тому ні час відповіді, ні навантаження на модель не зростають разом із трафіком.

Стійкість під навантаженням

Черга запитів з обмеженням частоти на відвідувача та повторні спроби з наростаючою паузою не дають сайту піти в таймаути під час сплеску.

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

Клас відмов, який зникає повністю

Зникає найдорожча поломка — падіння сторінки через синхронний виклик моделі прямо в шаблоні теми.

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

Три підходи до підключення моделі: таблиця порівняння

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

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

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

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

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

Порядок робіт: від аудиту сайту до передачі коду

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

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

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

Склад постачання: конфігурації, схеми та регламенти

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

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

Комплект розрахований на інженера, а не на автора плагіна: розгорнути, подивитися журнали, змінити параметр і відкотитися можна за документами, без звернення до нас.

Кейс: чат-помічник у каталозі з 40 тисяч позицій

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

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

Що змінили

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

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

Метрики до і після

Показник До Після
Час до відповіді на питання про підбір хвилини самостійного пошуку один діалог, два-три уточнення
Частка відмов на картках каталогу більше половини візитів скоротилася приблизно втричі
Навантаження на сервер піки при масових підборах рівний графік, відгук каталогу не просідає
Трудовитрати редактора кілька годин на тиждень на однотипні відповіді розбір лише нестандартних випадків

«Раніше половина звернень була з розряду „підберіть аналог“. Зараз такі питання закриває помічник, а ми займаємося складними підборами, де потрібен інженер», — керівник напряму клієнта.

Що робити, якщо на сайті вже стоїть готовий чат-віджет?

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

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

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

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

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

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

Часті технічні питання перед початком робіт

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

Як захищені дані користувачів?

Ключі до моделей зберігаються на стороні сервера, у змінних середовища — з браузера їх не дістати.

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

Що буде при великому оновленні сайту?

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

Чи витримає віджет сплеск трафіку?

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

Чи можна зробити поетапний запуск?

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

Що входить у підтримку після здачі?

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

Обговоримо задачу й повернемося з оцінкою та планом

Щоб оцінка проєкту спиралася на факти, а не на припущення, для старту достатньо мінімального набору вихідних даних для розрахунку.

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

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

Що ви отримаєте у відповідь:

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

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

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

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

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