Індексація баз знань (Confluence, Notion, SharePoint) для RAG

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

Чому RAG-індексація корпоративних баз знань дає сміттєві відповіді

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

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

Перше джерело збоїв — різнорідна розмітка. Сторінки в Confluence, Notion і SharePoint живуть вкладеними блоками, врізками та списками завдань; плаский парсер знімає ієрархію, і заголовок розділу відривається від свого тіла. У видачу потрапляють кроки із сусідньої інструкції, а порядок дій втрачає сенс.

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

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

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

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

Що змінюється після керованої перебудови пошуку по базі

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

Індексуємо простори Confluence, Notion і SharePoint в єдиному RAG-контурі: джерела залишаються на своїх місцях, змінюється лише шар пошуку.

Повнота видачі та опора на джерело

До перебудови сторінки індексувалися цілком: довгий документ розмивався в один вектор, і потрібний абзац не потрапляв у топ. Після нарізки на смислові блоки з перекриттям контексту частка запитів, де правильний фрагмент опинився в першій п’ятірці, зросла з 61% до 93%.

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

Швидкість відповіді та актуальність бази знань

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

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

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

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

Повна, інкрементальна та гібридна перебудова: що вибрати

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

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

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

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

Як вибрати режим під потік змін

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

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

Етапи RAG-індексації: від аудиту джерел до приймання

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

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

Схеми розбиття тексту, політики доступу та регламенти оновлення

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

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

Підтримка без нас

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

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

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

До впровадження база знань жила в трьох системах: регламенти — в Confluence, продуктові нотатки — в Notion, шаблони листів — у SharePoint.

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

Ми звели джерела в один індекс, розбили документи на фрагменти за ієрархією заголовків і зберегли метадані: власник розділу, дата останньої правки, статус «чинний/архів».

У контур відповіді додали поріг упевненості — якщо опори в документах не вистачає, система не вигадує, а передає питання оператору разом із знайденими фрагментами.

Динаміка метрик

Показник До Після
Відповіді без опори на документ 38% 6%
Частка нерелевантних відповідей 31% 8%
Час підготовки відповіді 7 хвилин 45 секунд
Звернення з повторним розбором 44% 13%
Відповіді з посиланням на джерело немає 100%

Зворотний зв’язок команди

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

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

Що робити, якщо база знань уже проіндексована стороннім сервісом?

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

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

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

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

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

Перемикання за прапорцем, коли метрики збіглися; відкат тим самим прапорцем, старий індекс тримаємо в запасі кілька тижнів.

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

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

Технічні сумніви: права доступу, розмітка, втрата контексту

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

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

Як успадковуються права доступу на фрагменти?

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

Таблиці та вкладення перетворяться на кашу?

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

У кожного фрагмента залишається посилання на вихідний розділ, відповідь можна перевірити в першоджерелі.

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

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

Що з застарілими сторінками та суперечностями?

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

Документи різними мовами?

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

Обговоримо задачу: з чого почнемо і що потрібно від вас

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

  • Аудит джерел. Перелік просторів у Confluence, баз Notion, бібліотек SharePoint, файлових сховищ і внутрішніх порталів — із позначкою, що реально використовується в роботі, а що залишилося архівом і в індекс не піде.
  • Частота правок. Як швидко застарівають сторінки, чи є регламент публікації, хто стежить за актуальністю й чи потрібно переіндексовувати все або достатньо зміненого.
  • Доступи та вивантаження. Сервісний обліковий запис із правом читання, вивантаження сторінок у відкритому форматі або разовий знімок бази. Якщо контур закритий — обговорюємо збирання всередині вашої мережі.
  • Обмеження щодо даних. Розділи, які індексувати не можна: кадри, договори, персональні дані. Винятки закладаємо в правила збору на старті, а не після.
  • Очікувані сценарії. 5–10 реальних питань, на які асистент має відповідати, — за ними видно, які типи документів критичні, а які можна не чіпати.
  • Відповідальний за приймання. Одна людина з вашого боку, яка підтверджує повноту відповідей і вирішує спірні випадки на етапі налаштування.

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

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

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

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