База знаний ИИ, разбор PDF и качество векторной БД

Симптом: RAG индексирует тысячи PDF, но отвечает со ссылками на копирайт в колонтитулах, битые таблицы или устаревшие приложения — при этом embedding-задачи «зелёные».
Причина: плохие PDF ломаются на этапе PDF Parsing; грязные чанки всё равно попадают в Vector Database, а уверенность retrieval часто растёт.

В июле 2026 мы аудировали 2 400 корпоративных PDF для внутренней Knowledge Base. Точность цитирования по золотым вопросам упала с 78% до 51%. 63% top-3 содержали повторяющиеся колонтитулы или шум OCR. Это практический анти-загрязняющий пайплайн — не рейтинг парсеров, а шлюзы и оценка до embedding. Данные на 2026-08-07.

Что внутри: исследовательский гайд — Quick Answer, 5 паттернов, матрица парсеров, чеклист из 7 шагов.

Quick Answer: сначала блокируем грязь, потом recall

СитуацияСделать в первую очередьНе спешить
Первая партия PDF50 файлов, сравнить парсеры + порог извлеченияМенять embedding-модель
Ответы цитируют колонтитулыУбрать header/footer + dedup строкДобавлять документы
Галлюцинации в таблицахОтдельный парсинг таблицСлепо уменьшать chunk
В основном сканыOCR-скор + ручная очередьPyPDF для всего
Большой индекс, падение качестваУдаление по source_id + gold-регрессияПолный re-embed без анализа

5 паттернов, загрязняющих Vector Database

ПаттернПризнакВредСигнал
Повтор колонтитуловОдин текст на каждой страницеХиты на copyrightКороткая строка ≥3×
Шум OCRПутаница символовСемантика ломаетсяНесловарные символы >8%
Битые таблицыСломанные колонкиВыдуманные числаДлинные цифры без разделителей
Две колонки/сноскиСмешение колонокНесвязные цитатыСкачок ширины строки
Устаревшие приложенияСтарые политикиВерно, но устарелоmtime ≠ версия

Шлюзы до embedding

  1. Файл: пароль, 0 символов, извлечение <15% → отказ/OCR.
  2. Страница: пустая, только картинка, почти-дубликат → пропуск.
  3. Чанк: <30 токенов, >40% повторов → отброс.
  4. Бизнес: без source_id → запись запрещена.

Длинный контекст не заменяет чистый ingest — Kimi K3 1M и границы RAG.

PDF Parsing: по отвечаемым вопросам, не по числу символов

Замер (июль 2026, 50 PDF): hit@3 layout-aware 74% vs pdfplumber 61%.

Кейс: откат 2 400 PDF

МетрикаДоПосле шлюзов
40 gold hit@351%79%
Цитаты с header/copyright63%4%
Всего чанков1,28M0,71M

Чеклист из 7 шагов

  • 50 PDF в выборке.
  • Два парсера на 20 gold-вопросах.
  • Правила колонтитулов в staging.
  • Метаданные и удаление по source_id.
  • 20–50 gold-вопросов еженедельно.
  • Всплеск отказов под мониторингом.
  • Ежеквартально — просроченные документы.

Локально: AI-окружение за 30 минут.

Парсинг на воркерах; Vector Database — только чистые чанки

Облачный Mac Macstripe для batch на macOS, синхронизация с Linux-сервисом векторов.

FAQ

Почему PDF хуже Markdown?

Скрытая вёрстка, OCR, повторы, таблицы — embeddятся как контент.

Минимальный шлюз?

Извлечение, повторы, длина, язык; source_id обязателен.

Какой парсер?

Цифровые: PyMuPDF. Сложная вёрстка: Unstructured. Сканы: OCR. Gold-вопросы.

Итог

Порядок: PDF Parsing → шлюзы → чанки + метаданные → gold-оценка → embedding.

Далее: Длинный контекст vs RAG · Локальное AI-окружение