Локальна RAG система для документів з гібридним пошуком та підтримкою багатьох форматів
Команда, що створює інструменти для розробників, потребувала повністю локальної, конфіденційної системи інтелектуального аналізу документів, яка могла б обробляти численні формати файлів, створювати бази знань з можливістю пошуку та відповідати на запити природною мовою за допомогою Retrieval-Augmented Generation (RAG) — без надсилання будь-яких даних до зовнішніх API.
Обговоріть Ваш Проєкт
Виклик
Існуючі RAG рішення мали значні обмеження для сценаріїв використання, орієнтованих на конфіденційність та розробників:
- Залежність від зовнішніх API — Більшість RAG інструментів вимагали надсилання вмісту документів до хмарних embedding API, порушуючи вимоги конфіденційності
- Обмежена підтримка форматів — Рішення зазвичай обробляли лише звичайний текст або PDF, ігноруючи електронні таблиці, документи Word, HTML та Markdown
- Низька якість чанкінгу — Наївне розбиття тексту ігнорувало структуру документа (сторінки, аркуші, заголовки), створюючи чанки з бідним контекстом
- Прогалини в ключових словах — Пошук лише на основі вбудовувань пропускав точні збіги за ключовими словами, які виявив би лексичний пошук
- Сліпота щодо електронних таблиць — RAG системи не могли обробляти структуровані табличні дані або відповідати на запити з фільтрації/агрегації
- Відсутність Reranking — Первинна вибірка часто видавала лише частково релевантні результати без другого етапу фільтрації якості
Наше Рішення
Ми створили повну локальну RAG систему з обробкою документів у багатьох форматах, чанкуванням з урахуванням структури, генерацією локальних вбудовувань, гібридним пошуковим конвеєром (семантичний + повнотекстовий + за давністю), cross-encoder reranking та веб-інтерфейсом — усе працює повністю на машині користувача.
Архітектура
- Завантажувачі документів: Специфічні для формату парсери для PDF, DOCX, XLSX, CSV, HTML, Markdown та звичайного тексту
- Чанкер: Розбиття з урахуванням структури, що зберігає межі сторінок, аркушів та заголовків
- Вбудовування: Локальна модель вбудовувань через Transformers.js (без зовнішніх викликів API)
- Векторна база даних: LanceDB (бессерверна, файлова) для зберігання вбудовувань та пошуку схожості
- Повнотекстовий пошук: Триграмне індексування для лексичного зіставлення
- Reranker: Cross-encoder модель для оцінки результатів з урахуванням контексту
- Аналізатор запитів: Маршрутизація з визначенням наміру між семантичними та структурованими запитами
- Веб-сервер: Express.js API з керуванням проєктами та пошуковими ендпоінтами
- Frontend: Веб-інтерфейс для завантаження документів, керування та інтерактивного пошуку
Конвеєр обробки документів
Багатоформатні завантажувачі
Шаблон реєстру автоматично визначає тип файлу та направляє його до відповідного парсера:
- PDF — Видобування тексту з посегментною розбивкою на сторінки
- Word (.docx/.doc) — Парсинг із врахуванням заголовків, що зберігає ієрархію документа
- Excel/CSV — Поаркушний парсинг з виявленням заголовків та вмістом на рівні рядків
- HTML — Видобування з урахуванням тегів, що зберігає структуру
- Markdown — Парсинг розділів на основі заголовків
- Plain Text — Порядкова сегментація
Кожен завантажувач витягує метадані (назва, автор, дата створення, кількість сторінок/аркушів, кількість слів) разом із вмістом, створюючи структуровані розділи з посиланнями на джерела.
Чанкування з урахуванням структури
На відміну від наївного розбиття тексту, чанкер враховує межі документа:
- Зберігає розриви сторінок (PDF), межі аркушів (електронні таблиці) та ієрархію заголовків (Word/Markdown)
- Розмір на основі токенів з конфігурованим розміром чанка та перекриттям
- Ієрархічний резервний варіант: спочатку розділяє за розділами, потім за абзацами, потім за реченнями
- Кожен чанк зберігає вихідні метадані (номер сторінки, назва аркуша, заголовок) для атрибуції
Вбудовування та індексування
Локальна модель вбудовувань
- Працює повністю локально через Transformers.js — жодні дані не покидають машину
- Квантована модель для оптимізації продуктивності
- Пакетне вбудовування для ефективної масової обробки
- Автоматичне усічення на межах слів з L2 нормалізацією
Векторне сховище
LanceDB забезпечує бессерверне векторне сховище:
- Файлове (не потрібен окремий сервер баз даних)
- Ізоляція для кожного проєкту з незалежними індексами
- Ключі кешу на основі SHA256 для дедуплікації
- Метадані зберігаються разом з векторами для фільтрованої вибірки
Конвеєр гібридного пошуку
Конвеєр вибірки поєднує три сигнали ранжування для кращих результатів, ніж будь-який окремий підхід:
Сигнал 1: Пошук за вбудовуваннями (семантичний)
Пошук векторної схожості знаходить чанки з пов'язаним значенням, навіть коли використовуються різні слова. Обробляє перефразування, синоніми та концептуальні запити.
Сигнал 2: Повнотекстовий пошук (лексичний)
Триграмне індексування зі схожістю Жаккара виявляє точні збіги ключових слів, які пошук за вбудовуваннями міг би пропустити — важливо для технічних термінів, імен та ідентифікаторів.
Сигнал 3: Посилення за давністю
Зважування за експоненційним розпадом віддає перевагу документам, до яких нещодавно зверталися або які були змінені, забезпечуючи першочергове відображення актуальної інформації.
Комбінація оцінок
Сигнали комбінуються з конфігурованими вагами (за замовчуванням: 50% семантичний, 25% лексичний, 25% давність), нормалізуються та фільтруються за мінімальним порогом оцінки.
Cross-Encoder Reranking
Після первинної вибірки cross-encoder модель переоцінює найкращих кандидатів:
- Оцінка з урахуванням контексту розглядає пари запит-документ разом (а не незалежно)
- Розрахунок посилення ключових слів для перекриття термінів
- Змішана оцінка (cross-encoder + сигнали ключових слів)
- Створює остаточний ранжований список з вищою точністю, ніж лише первинна вибірка
Підтримка структурованих даних
Для вмісту електронних таблиць система надає додаткові можливості:
- Автоматичне визначення типів стовпців (числові, дата, булеві, рядкові)
- Фільтрація природною мовою (наприклад, "співробітники в інженерії з зарплатою вище порогу")
- Підтримка агрегації (кількість, сума, середнє, мін, макс)
- Аналізатор запитів направляє структуровані запити до спеціалізованого двигуна, замість пошуку за вбудовуваннями
Веб-інтерфейс
- Керування проєктами — Створення, оновлення та видалення проєктів бази знань
- Завантаження документів — Завантаження файлів перетягуванням з автоматичним визначенням формату
- Створення документів — Створення документів з тексту безпосередньо в UI
- Інтерактивний пошук — Інтерфейс запитів природною мовою з ранжованими результатами
- Статистика — Розмір індексу, кількість документів та розподіл форматів для кожного проєкту
Ключові особливості
- Повністю локальна — Уся обробка на пристрої; жодних зовнішніх викликів API для вбудовувань чи пошуку
- 9 вхідних форматів — PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, звичайний текст
- Чанкування з урахуванням структури — Зберігає сторінки, аркуші та заголовки як межі чанків
- Гібридний пошук — Поєднує семантичні, лексичні сигнали та сигнали давності для кращої вибірки
- Cross-Encoder Reranking — Другий етап оцінки для результатів з вищою точністю
- Структуровані запити — Фільтрація природною мовою та агрегація даних електронних таблиць
- Бессерверна векторна БД — Файлове сховище LanceDB без накладних витрат на інфраструктуру
- Запис документів — Можливості експорту для створення PDF, DOCX та XLSX
- Ізоляція проєктів — Незалежні бази знань з окремими індексами
- Веб-UI — Повний інтерфейс для керування документами та інтерактивного пошуку
Результати
Технологічний Стек
caseStudyDetail.more Кейси
Ознайомтесь з іншими нашими технічними впровадженнями
Аналіз електронних таблиць та документів на базі AI з багатоагентною оркестрацією та перехресним посиланням між документами
Корпоративній команді даних потрібно було аналізувати, запитувати та редагувати великі колекції електронних таблиць та документів (Excel, CSV, Google Sheets, PDF, Word документи), використовуючи природну мову — з можливістю перехресного посилання даних між кількома файлами та виконання багатоетапних аналітичних робочих процесів без ручної обробки даних.
Платформа Catant для управління персоналом та робочою силою
Catant — це модульна платформа для управління персоналом та робочою силою, яка допомагає підприємствам керувати співробітниками, заробітною платою, відвідуваністю та відповідністю вимогам з єдиної інформаційної панелі.
Готові Трансформувати Свій Бізнес?
Давайте обговоримо, як ми можемо застосувати подібні рішення для ваших завдань.