25 серп. 2026 р.
RAG усередині наявного продукту на Laravel
Як додати відповіді з посиланнями на джерела до зрілого PHP-продукту без перебудови ідентифікації, дозволів, даних та операцій навколо чатбота.
RAG можна додати до наявного продукту на Laravel без переписування застосунку й перенесення доменної моделі до ШІ-фреймворку. Laravel має й далі відповідати за користувачів, організації, права, бізнес-записи та журнал дій. Рівень пошуку й моделі підключається через явні сервіси з тими самими правилами доступу, що й решта продукту.
Перше архітектурне запитання — не яку векторну базу встановити. Спочатку потрібно визначити, які джерела можуть відповідати якому користувачу, як перевіряється актуальність і які докази мають супроводжувати відповідь. Ці рішення сильніше впливають на завантаження, метадані, дозволи, цитування й оцінювання, ніж вибір між pgvector та окремим векторним сервісом.
Застосунок залишається джерелом повноважень
Автентифікований запит починається в Laravel. Застосунок визначає користувача, організацію, доступ до функції й межі відповідних ресурсів до початку пошуку. ШІ-сервіс отримує обмежений запит і контекст дозволів, а не головний ключ до бази чи повну копію внутрішніх документів.
Завантаження джерел може працювати через ті самі черги й фонові обробники, що вже використовує продукт. Конвеєр вилучає текст, ділить його на змістовні фрагменти, додає сталі ідентифікатори джерела та дозволи, обчислює векторні представлення й записує версію індексу. Видалення і зміна прав мають поширюватися так само свідомо, як створення, інакше індекс зберігатиме доступ, уже відкликаний у застосунку.
Відповідь має повертати ідентифікатори джерел і фрагменти разом із генерованим текстом. Laravel показує посилання лише на записи, які користувач має право відкрити. Цитата корисна тоді, коли веде до впізнаваного джерела й дає перевірити контекст.
В одному проєкті під NDA важливі правила доступу вже були частиною реляційної доменної моделі продукту. Якби ми перенесли документи до окремого ШІ-індексу без цього контексту, межі організацій і окремих записів зникли б. Тому застосунок залишився джерелом повноважень, а пошук отримував лише дозволені ідентифікатори записів: нова функція успадкувала чинні правила доступу замість створення другої системи дозволів.
Оцінювання є частиною поведінки продукту
До запуску збираємо реальні запитання від підтримки, операційної команди або галузевих фахівців. Для кожного випадку визначаємо прийнятні джерела, обов’язкові факти, заборонене розкриття та умови відмови чи уточнення. Ці самі випадки запускаються після зміни розбиття, пошуку, підказок, контенту або моделей.
Важливо відрізняти помилку пошуку від помилки генерації. Якщо правильний фрагмент не потрапив до контексту, переписування підказки не допоможе. Якщо пошук правильний, але відповідь спотворює джерело, потрібно змінювати модель або правила формування відповіді.
Додавайте функцію з чіткими межами
Перша версія може відповідати лише за одним контрольованим набором документів, а не за всіма записами продукту. Вона може готувати відповідь для перевірки замість автоматичного надсилання й відмовляти, коли немає достатньо релевантного джерела. Так функція раніше стає корисною й створює докази для розширення.
Стійка архітектура — це не «Laravel плюс чатбот». Це наявний продукт із новою функцією, що знає джерела: ідентифікація належить застосунку, дозволи пошуку явні, цитати можна перевірити, оцінювання має версії, а черги, моніторинг і резервна поведінка є частиною роботи.