Що потрібно для інтеграції ChatGPT або Claude у застосунок?
Інтеграція ChatGPT або Claude у застосунок означає додати бекенд-сервіс, який надсилає ретельно побудовані промпти до API великої мовної моделі (LLM), спирає відповіді на ваші власні дані й повертає результати, яким користувачі можуть довіряти. Сам виклик API - це кілька рядків коду. Справжня робота полягає у виборі правильного сценарію, підготовці даних, проєктуванні промптів, додаванні обмежень, вимірюванні якості й утриманні витрат у передбачуваних межах.
Цей посібник описує кроки, якими ми в Lytvynov Production додаємо функції на LLM до наявного SaaS-продукту. Він написаний для CTO та власників продукту, які хочуть розуміти рішення до того, як виділяти бюджет. Якщо ви радше передасте роботу команді, перегляньте наші послуги з інтеграції ШІ.
Коротка версія процесу:
- Оберіть один вузький сценарій, який можна виміряти.
- Оберіть модель і провайдера (і залиште можливість змінити їх).
- Спроєктуйте промпти та структуровані відповіді.
- Спирайте відповіді на ваші дані через пошук (RAG).
- Побудуйте інтерфейс із потоковою передачею відповідей.
- Додайте обмеження для вхідних даних, відповідей і дій.
- Створіть набір для оцінювання якості до запуску.
- Додайте спостережуваність і облік витрат.
- Урегулюйте приватність, DPA та відповідність вимогам.
- Розгортайте поступово за feature flag.
З якого сценарію почати?
Почніть зі сценарію, де хибна відповідь коштує дешево, успіх легко виміряти, а користувачі вже виконують це завдання вручну. Добрі перші кандидати: підготовка чернеток, підсумовування, класифікація, вилучення даних із документів і відповіді на запитання за вашим довідковим центром чи базою знань.
Не починайте з відкритого "ШІ-асистента, який робить усе". Його важко оцінити, важко захистити й важко пояснити користувачам. Краща перша функція має чіткі вхідні дані, чіткий очікуваний результат і метрику: зекономлений час на завдання, частка чернеток, прийнятих без правок, кількість звернень до підтримки, які не дійшли до людини, або точність вилучення даних на вибірці реальних документів.
Наш власний продукт AI Resume Master - добрий приклад вузького обсягу. LLM генерує, переписує й покращує розділи резюме та створює адаптовані супровідні листи, а користувачі отримують резюме за 3-5 хвилин. Продукт досяг 50 000 активних користувачів на місяць; див. кейс AI Resume Master. Функція працює, бо завдання обмежене, а користувач завжди перевіряє результат.
Як обрати між OpenAI, Anthropic Claude та моделями з відкритими вагами?
Обирайте за результатами тестів, а не за брендом. І OpenAI, і Anthropic пропонують топові моделі з довгим контекстом, використанням інструментів і структурованими відповідями; моделі з відкритими вагами (наприклад, родини Llama, Qwen, Mistral чи gpt-oss) дають повний контроль над хостингом і даними ціною власної інфраструктури.
| Критерій | API OpenAI | API Anthropic Claude | Моделі з відкритими вагами (власний хостинг) |
|---|---|---|---|
| Якість на складних завданнях | Топовий рівень; кілька рівнів моделей | Топовий рівень; сильні на довгих документах, текстах і коді | Добра й зростає; на складних міркуваннях зазвичай поступаються найкращим хмарним моделям |
| Контроль витрат | Рівні моделей, кешування промптів, знижки на пакетну обробку | Рівні моделей, кешування промптів, знижки на пакетну обробку | Ви платите за GPU, а не за токени; дешево за стабільно великого навантаження, дорого під час простою |
| Робота з даними | Бізнес-дані з API за замовчуванням не використовуються для навчання; DPA; варіанти зберігання залежать від тарифу | Ті самі принципи; DPA; варіанти зберігання залежать від тарифу | Дані ніколи не залишають вашу інфраструктуру |
| Розмір контексту | Великі контекстні вікна (сотні тисяч токенів у нових моделях) | Великі контекстні вікна (сотні тисяч токенів, у деяких моделях більше) | На практиці зазвичай менше; обмежено пам'яттю ваших GPU |
| Інструменти й структуровані відповіді | Зрілий function calling і відповіді за JSON-схемою | Зріле використання інструментів, структуровані відповіді, підтримка MCP | Підтримується багатьма моделями й стеками для запуску, якість різна |
| Доступність у хмарах | Пряме API та Microsoft Azure | Пряме API, AWS Bedrock, Google Cloud Vertex AI | Будь-яка хмара чи власні сервери |
Точні ціни й назви моделей змінюються що кілька місяців, тож ми не прописуємо їх у план жорстко. Незмінною залишається логіка рішення. Використовуйте хмарну топову модель, коли якість найважливіша, а обсяг помірний. Використовуйте меншу хмарну модель для простих кроків на великих обсягах. Розгляньте моделі з відкритими вагами, коли дані не можуть залишати ваше середовище, коли потрібне глибоке донавчання або коли стабільний обсяг робить GPU дешевшими за токени.
Що б ви не обрали, сховайте провайдера за власним інтерфейсом: один сервіс, який приймає завдання, версію промпту й параметри та повертає типізований результат. Це зменшує залежність від постачальника і перетворює A/B-тести між моделями на зміну конфігурації.
Як проєктувати промпти для функції в продакшені?
Ставтеся до промптів як до коду: версіонуйте, тестуйте й перевіряйте зміни. Продакшен-промпт має стабільну системну інструкцію (роль, правила, тон, що робити в разі невпевненості), чітко відокремлений розділ контексту, введення користувача та явний формат відповіді.
Практичні правила, що економлять час:
- Вимагайте структуровану відповідь. Використовуйте JSON-схему чи описи інструментів, щоб ваш код отримував типізовані поля, а не довільний текст, який доводиться розбирати.
- Відокремлюйте інструкції від даних. Розміщуйте вміст від користувача та знайдені документи в чітко позначених розділах, щоб модель не сприймала їх як інструкції.
- Давайте приклади. Два-три короткі приклади вхідних даних і відповідей зазвичай працюють краще за довгий абзац правил.
- Зберігайте промпти поза релізом коду. Промпти в базі даних з історією версій дають змогу налаштовувати тон чи правила без деплою. Ми використали цей підхід у проєкті AI Grief Companion, де промпти зберігаються в базі даних з історією версій.
Коли потрібен RAG і яке його місце в системі?
Генерація з доповненням пошуком (RAG) потрібна щоразу, коли відповідь залежить від даних, яких модель не бачила: вашої документації, договорів, тікетів, каталогу товарів чи записів про клієнтів. RAG у момент запиту знаходить найрелевантніші фрагменти й додає їх у промпт, тож модель відповідає з ваших джерел і може на них посилатися.
Мінімальне налаштування RAG складається із завдання завантаження, яке ділить документи на фрагменти й зберігає ембединги, кроку пошуку (в ідеалі гібридного, за ключовими словами й векторами, з переранжуванням) і промпту, що містить найкращі фрагменти з ідентифікаторами джерел. Права доступу важливі: фільтруйте результати за тим, що дозволено бачити поточному користувачеві, до того, як щось потрапить до моделі. Наш посібник із впровадження RAG детально описує поділ на фрагменти, векторні бази даних і оцінювання, а сторінка розробки RAG пояснює, як ми це реалізуємо.
Як побудувати добрий інтерфейс із потоковою передачею?
Передавайте токени користувачеві потоково, щоб перші слова з'являлися приблизно за секунду, а не після очікування повної відповіді. Обидва основні API підтримують стримінг; ваш бекенд пересилає потік у браузер через Server-Sent Events або WebSockets.
Добрий інтерфейс для LLM також включає:
- Помітну кнопку "стоп" і можливість згенерувати відповідь заново.
- Посилання на джерела поруч із відповідями, що спираються на ваші дані.
- Зрозумілі стани "думає", "шукає" та "викликає інструмент" у багатокрокових сценаріях.
- Крок редагування перед тим, як щось буде надіслано, збережено чи опубліковано від імені користувача.
- Елемент зворотного зв'язку (палець угору чи вниз із необов'язковим коментарем), що поповнює ваш набір для оцінювання.
Якщо ви створюєте розмовний інтерфейс, сторінка розробки чат-ботів на ШІ описує передачу розмови живим операторам і проєктування діалогів.
Які обмеження потрібні функції на LLM?
Функції на LLM потрібні обмеження в трьох точках: перед моделлю (вхідні дані), після моделі (відповідь) і навколо будь-якої дії, яку модель може запустити. Мета - зробити збої рідкісними, помітними й дешевими.
| Рівень | Що перевіряти | Типова реалізація |
|---|---|---|
| Вхідні дані | Спроби prompt injection, образливий вміст, ліміти розміру, персональні дані, які не варто надсилати | Ліміти довжини, модераційний endpoint, маскування персональних даних, відокремлення неперевіреного тексту |
| Пошук | Права користувача, застарілі чи суперечливі джерела | Фільтри ACL у пошуковому запиті, метадані актуальності |
| Відповідь | Відповідність схемі, заборонений вміст, непідтверджені твердження | Перевірка за схемою, модерація, правило "відповідай лише з контексту", перевірка посилань |
| Дії | Незворотні чи дорогі операції | Дозволений список інструментів, права для кожного інструменту, підтвердження людиною для запису, ліміти запитів |
Ніколи не викликайте API провайдера з браузера і ніколи не давайте моделі облікових даних із ширшими правами, ніж у поточного користувача. Якщо ваша функція дає моделі викликати внутрішні API, MCP-сервер з обмеженими інструментами - чистий спосіб відкрити до них доступ.
Як оцінювати якість до запуску і після нього?
Створіть набір для оцінювання до запуску: 50-200 реальних вхідних даних з очікуваними відповідями чи критеріями оцінки, що покривають типові випадки, граничні випадки та відомі сценарії збоїв. Проганяйте його при кожній зміні промпту, моделі чи пошуку і не випускайте реліз, якщо оцінки падають.
Оцінювання зазвичай поєднує три методи. Точні перевірки працюють для структурованих відповідей (чи збіглася вилучена сума рахунку?). Оцінювання за рубрикою іншою моделлю з вибірковою перевіркою людиною працює для вільного тексту (чи відповідь вірна джерелам, повна, у правильному тоні?). Сигнали з продакшену, як-от частка прийнятих відповідей, правки, оцінки "палець вниз" і ескалації, показують те, що пропустив тестовий набір. Щотижня додавайте погані приклади з продакшену назад до набору для оцінювання.
Що логувати й моніторити?
Логуйте кожен виклик LLM з версією промпту, моделлю, кількістю вхідних і вихідних токенів, затримкою, вартістю, ідентифікаторами знайдених документів, викликами інструментів і відгуками користувачів. Без цих даних ви не зможете розібрати погану відповідь, пояснити стрибок витрат чи довести покращення.
Дашборди, які варто мати з першого дня: витрати на день і на функцію, витрати на активного користувача, затримка p50 і p95, частка помилок і тайм-аутів за провайдерами та сигнали якості з відгуків користувачів. Маскуйте персональні дані в логах і застосовуйте ті самі правила зберігання, що й для решти продукту. Інструменти бувають від загальних стеків спостережуваності до спеціалізованих платформ трасування LLM; вибір важить менше, ніж наявність трасувань, прив'язаних до версій промптів.
Як тримати витрати на LLM під контролем?
Контролюйте витрати чотирма важелями: кешування промптів, маршрутизація моделей, ліміти контексту та квоти на користувача. Разом вони зазвичай важать більше, ніж заявлена ціна за токен.
- Кешування промптів. Тримайте довгу стабільну частину промпту (інструкції, приклади, спільні документи) на початку, щоб провайдер міг її кешувати; кешовані вхідні дані в обох основних API оплачуються з великою знижкою.
- Маршрутизація моделей. Передавайте прості кроки (класифікація, вилучення даних, короткі переписування) малій моделі, а велику залишайте для складних запитів.
- Дисципліна контексту. Знаходьте 5-10 добрих фрагментів замість того, щоб запихати в кожен виклик цілі документи.
- Пакетна обробка. Використовуйте пакетні API для неінтерактивних завдань, як-от нічні підсумки чи масова розмітка.
- Квоти й ліміти. Встановлюйте ліміти на користувача й на клієнта (tenant), щоб один акаунт не міг згенерувати несподіваний рахунок.
Типові ринкові діапазони, які ми бачимо у 2026 році: внутрішній інструмент з невеликим трафіком коштує десятки доларів на місяць, а асистент для клієнтів з інтенсивним використанням може коштувати кілька тисяч доларів на місяць. Закладайте вартість запиту у свою модель ціноутворення якомога раніше.
Як щодо приватності, DPA та відповідності вимогам?
Перш ніж надсилати дані клієнтів будь-якому провайдерові моделей, підпишіть його угоду про обробку даних, підтвердьте політику зберігання для вашого тарифу й оновіть власну політику конфіденційності та перелік субпроцесорів. Для регульованих даних розгляньте регіон провайдера чи хмарне розгортання, що відповідає вашим зобов'язанням, або модель з відкритими вагами на власному хостингу.
Надсилайте мінімум: прибирайте ідентифікатори, які моделі не потрібні, і шифруйте збережені розмови. На платформі AI Grief Companion ми шифруємо кожне повідомлення під час завантаження окремим ключем AES-256-GCM під конвертним ключем KMS і підтримуємо видалення всіх даних користувача одним кліком, бо продукт працює з дуже особистими матеріалами. Більшості SaaS-продуктів такий рівень не потрібен, але їм потрібна чітка відповідь на запитання "куди йдуть дані наших клієнтів?".
Як розгортати функцію на LLM?
Розгортайте поетапно: спершу внутрішні користувачі, потім невеликий відсоток клієнтів за feature flag, потім усі. На кожному етапі порівнюйте якість і витрати з цілями, які ви поставили на першому кроці.
Типовий графік для однієї чітко окресленої функції:
| Тиждень | Робота |
|---|---|
| 1 | Оцінка обсягу, метрики сценарію, доступ до даних, тест провайдерів на реальних прикладах |
| 2-3 | Проєктування промптів, RAG чи конвеєр даних, абстракція над провайдером |
| 4-5 | Інтерфейс зі стримінгом, обмеження, набір для оцінювання, логування |
| 6 | Внутрішня бета, усунення збоїв, оптимізація витрат |
| 7-8 | Поступове розгортання для клієнтів, моніторинг, передача |
Заплануйте запасний варіант на випадок збоїв провайдера (другий провайдер або коректний стан "спробуйте ще раз") і залиште feature flag після запуску, щоб вимкнути функцію за лічені секунди.
Як ми працюємо над інтеграціями LLM
У Lytvynov Production ми даємо фіксовану ціну після короткої розмови для оцінки обсягу; у нас функція ШІ для наявного продукту коштує від 5 000 USD. На першому етапі ми тестуємо дві-три моделі на ваших реальних даних і визначаємо набір для оцінювання. Наш бекенд зазвичай на PHP/Symfony, і ми інтегруємо API OpenAI та Anthropic Claude, RAG і MCP-сервери в наявні продукти. Якщо хочете отримати незалежну думку щодо свого плану, запишіться на дзвінок.