Ми створили багатоагентну платформу інтелектуального аналізу документів на базі AI з вибіркою на основі векторної бази даних для великих документів, спеціалізованими агентами для різних типів документів, оркестратором для міждокументного міркування та можливостями зворотного запису для редагування електронних таблиць.
Архітектура
- Оркестратор: Агент-оркестратор AI, що координує багатоетапні робочі процеси між спеціалізованими агентами
- Агент електронних таблиць: Обробляє аналіз Excel/CSV/Google Sheets, генерацію формул та редагування комірок
- Агент документів: Обробляє читання, вилучення та узагальнення документів PDF/Word
- Агент перехресних посилань: Виконує об'єднання, порівняння та узгодження між типами документів
- Векторна база даних: Milvus для семантичного індексування фрагментів документів та рядків електронних таблиць
- Шар LLM: Багатомодельний підхід з викликом функцій
- Бекенд: Python/FastAPI для обробки документів та оркестрації агентів
- Фронтенд: React дашборд із завантаженням файлів, інтерфейсом чату та попереднім переглядом електронних таблиць у реальному часі
- Сховище: S3 для оригінальних файлів, PostgreSQL для метаданих та відстеження завдань
Багатоагентна архітектура
Ролі агентів
1. Агент-оркестратор
Центральний координатор, який отримує запити користувачів, декомпозує їх на підзавдання та делегує спеціалізованим агентам. Він аналізує наміри користувача, створює плани виконання, керує потоком даних між агентами, агрегує результати та обробляє відновлення після помилок.
2. Агент електронних таблиць
Спеціалізується на операціях з табличними даними, включаючи розуміння схеми, переклад природної мови в запит, агрегації та фільтрацію, генерацію формул, редагування комірок та заповнення стовпців, пропозиції щодо діаграм та валідацію даних/виявлення аномалій.
3. Агент документів
Спеціалізується на неструктурованих та напівструктурованих документах, включаючи OCR та вилучення тексту з урахуванням макета, ідентифікацію розділів, вилучення пар ключ-значення з контрактів, узагальнення, семантичний пошук пунктів та вилучення таблиць з PDF/Word документів.
4. Агент перехресних посилань
Спеціалізується на міркуваннях між кількома документами, включаючи зіставлення сутностей між документами, узгодження даних та виявлення розбіжностей, аналіз часових шкал, вирішення залежностей для конфліктних даних та операції з'єднання, подібні до SQL, між типами документів.
Шар векторної бази даних
Чому векторна БД для документів
Великі документи та електронні таблиці не можуть поміститися в одне контекстне вікно LLM. Векторна база даних дозволяє виконувати семантичний пошук по мільйонах рядків та фрагментів документів, отримання лише відповідних частин за запитом, міждокументне зв'язування сутностей за допомогою подібності вбудовувань та постійне індексування, яке не потребує повторної обробки при кожному запиті.
Стратегія індексування
Індексування електронних таблиць:
Кожен рядок перетворюється на представлення природною мовою шляхом конкатенації значень ключових стовпців, потім вбудовується та зберігається з посиланнями на оригінальний файл, аркуш та індекс рядка для операцій зворотного запису.
Індексування документів:
Документи вилучаються з урахуванням макета, розбиваються на семантичні сегменти з перекриттям, вбудовуються та зберігаються з посиланнями на вихідний файл, розділ та номер сторінки.
Індекс сутностей між документами:
Окремий індекс пов'язує сутності (постачальники, продукти, люди, номери рахунків-фактур) між документами, дозволяючи запитам перехресних посилань швидко знаходити всі згадки сутності незалежно від вихідного файлу.
Конвеєр вибірки
Коли користувач ставить міждокументне питання, оркестратор визначає, які документи та агенти потрібні, виконує векторний пошук для знаходження відповідних даних у всіх джерелах, делегує спеціалізованим агентам для обробки та агрегує результати в зв'язну відповідь.
Двигун оркестрації
Декомпозиція запитів
Оркестратор розбиває складні запити на багатоетапні плани виконання. Наприклад, питання на кшталт "Знайти постачальників з простроченими поставками, перевірити пункти контракту про штрафні санкції та розрахувати можливі штрафи" буде декомпозовано на послідовні кроки: запит даних про доставку через Агента електронних таблиць, пошук контрактів через Агента документів та об'єднання результатів через Агента перехресних посилань.
Комунікація агентів
- Агенти спілкуються через структуровані повідомлення з типізованими корисними навантаженнями
- Оркестратор підтримує контекст виконання з проміжними результатами
- Невдалі кроки запускають стратегії повторної спроби або відкату
- Часткові результати повертаються, якщо деякі кроки виконані, а інші — ні
Редагування електронних таблиць та зворотний запис
Можливості редагування
Платформа підтримує оновлення комірок, заповнення стовпців, вставлення рядків, умовне форматування, створення нових аркушів та впровадження формул — все це пропонується агентами AI та застосовується за згодою користувача.
Конвеєр зворотного запису
- Агент визначає операцію редагування (які комірки, які значення)
- Користувачеві показується попередній перегляд редагування з виділенням відмінностей (старі проти нових значень)
- Користувач затверджує або змінює запропоновані зміни
- Бекенд застосовує зміни до файлу, використовуючи відповідні бібліотеки для кожного формату
- Змінений файл зберігається як нова версія з журналом аудиту редагування
- Векторний індекс оновлюється для змінених рядків
Контроль версій
- Кожне редагування створює нову версію файлу (оригінал зберігається)
- Журнал відмінностей показує, що саме змінилося, коли і чому
- Відкат до будь-якої попередньої версії одним кліком
- Атрибуція редагування: який агент або користувач зробив кожну зміну
Конвеєр обробки нових документів
Потік завантаження файлів
- Користувач завантажує файли (перетягуванням або через API)
- Тип файлу виявляється та направляється відповідному процесору
- Електронні таблиці: Розбираються, схема виводиться, рядки вбудовуються та індексуються
- PDFs: OCR (якщо відскановано) → вилучення макета → розділення на фрагменти → вбудовування → індексування
- Word Docs: Вилучення тексту → парсинг розділів → розділення на фрагменти → вбудовування → індексування
- Вилучення сутностей: NER ідентифікує людей, організації, дати, суми в усіх документах
- Міждокументне зв'язування: Індекс сутностей оновлюється новими згадками
- Метадані файлів зберігаються в PostgreSQL, вбудовування у векторній БД, оригінали в S3
Підтримувані формати
Платформа підтримує Excel, CSV та Google Sheets (з повним зворотним записом), нативні та відскановані PDFs (лише для читання), а також Word docs та Google Docs (з обмеженим зворотним записом).
Ключові особливості
- Багатоагентна архітектура — Спеціалізовані агенти для електронних таблиць, документів та перехресних посилань
- Оркестратор AI — Декомпозує складні запити на багатоетапні плани виконання
- Перехресне посилання між документами — Зв'язування сутностей та узгодження даних між типами файлів
- Вибірка на основі векторів — Семантичний пошук обробляє набори даних за межами контекстних обмежень LLM
- Зворотний запис електронних таблиць — AI редагує комірки, заповнює стовпці та впроваджує формули за згодою користувача
- Підтримка великих наборів даних — Електронні таблиці з 50 000+ рядками індексуються та доступні для запитів за допомогою векторного пошуку
- Контроль версій — Кожне редагування версіонується з журналом відмінностей та можливістю відкату
- Запити природною мовою — Ставте складні аналітичні питання простою англійською мовою
- Підтримка багатьох форматів — Excel, CSV, Google Sheets, PDF, Word, Google Docs
- Попередній перегляд змін — Попередній перегляд із виділенням відмінностей перед застосуванням будь-яких змін