Open WebUI и Docling: таблицы PDF для локального RAG
На странице · 5 разделов
Open WebUI может отправлять PDF в Docling Serve как внешний движок извлечения, а затем индексировать полученный текст для RAG. Сначала проверьте структуру таблицы в результате Docling, после загрузки — доступность нужной строки через поиск и ссылку на исходный PDF в ответе. Успешная загрузка файла сама по себе не доказывает правильности распознавания ячеек или ответа модели.
Срез документации — 7 октября 2026 года. Пошаговая страница Open WebUI о Docling опубликована как вклад сообщества и прямо помечена неподдерживаемой командой Open WebUI. Сверяйте интерфейс и совместимость на своих версиях. Документация Docling Serve описывает v1.21.0; это не означает, что ваш контейнер имеет эту версию. Modelium не запускал стек и не измерял качество. s1 s5
Когда нужен Docling вместо обычного чтения PDF?
Для вопроса по таблице важны не только слова, но и соответствие строки, столбца и страницы: ошибочно соединённые ячейки дадут правдоподобный, но неверный ответ. В этой схеме Docling Serve преобразует PDF, Open WebUI делит извлечённое содержимое на фрагменты и индексирует его, embedding-модель ищет фрагменты, а выбранная локальная LLM формулирует ответ. Это четыре разных этапа с разными проверками, а не одна кнопка «понимает PDF». Docling документирует обнаружение таблиц и экспорт в CSV/HTML; сохранность конкретной таблицы при импорте через Open WebUI проверяется отдельно. s1 s3 s6
Нужны работающий Open WebUI, модель ответа, настроенная локальная модель эмбеддингов, доступный Docling Serve и обезличенный PDF с известной таблицей. Для документов, которым нельзя покидать контур, проверьте фактические адреса extraction, embeddings и LLM: само слово «локальный» в названии интерфейса этого не гарантирует. У Docling Serve есть режим вызова удалённых сервисов для описания картинок; не включайте DOCLING_SERVE_ENABLE_REMOTE_SERVICES=true из примера сообщества, если такой сетевой вызов не нужен и не согласован. s1 s3 s4 s8
Как подключить Docling Serve без случайного доступа извне?
Разверните Docling Serve из документации проекта как отдельный HTTP-сервис. Официальный пример использует порт 5001, а справочник установки описывает контейнерный и однопроцессный варианты; Local engine выполняет задания на одном узле. Для закрытого пилота поместите Open WebUI и Docling в одну разрешённую контейнерную сеть и проверьте доступ к адресу сервиса из контейнера Open WebUI, а не только из браузера администратора. Публиковать порт Docling в интернет для этой схемы не нужно: входной маршрут ограничьте собственной сетью, а если сервис доступен другим клиентам, настройте DOCLING_SERVE_API_KEY и передавайте ключ как X-Api-Key. Сетевое ограничение остаётся отдельным требованием даже при ключе. s1 s5 s8
В Open WebUI откройте Settings → Admin → Documents, выберите Docling как движок извлечения и задайте URL Docling Serve. В примере интеграции указан адрес контейнера http://docling:5001, а localhost:5001 подходит только тогда, когда Docling действительно слушает в той же сетевой области, где работает вызывающий процесс; имена сервиса и адреса в вашем Compose могут отличаться. Если задан ключ Docling Serve, укажите его в предусмотренном поле Open WebUI и убедитесь, что он не попадает в статью или логи теста. Оставьте настройки описания картинок выключенными для первого текстового PDF. s1 s8
Рецепт сообщества предлагает параметры table_mode: accurate, do_ocr: true, ocr_engine: tesseract и список ocr_lang. Это варианты для проверки, не доказанный оптимум: для цифрового PDF и скана получатся разные ветки обработки. Формат кода языка зависит от OCR-движка (трёхбуквенный у Tesseract, двухбуквенный у EasyOCR); подбирайте его под тестовый русский документ и подтверждайте фактический результат. Не копируйте пример ocr_lang: ["eng"] для русского скана как готовую настройку. s1 s2
Как проверить таблицу до создания RAG-индекса?
Возьмите тестовый PDF с 2–3 строками и ручной эталон: страница, заголовки столбцов, артикул, количество и цена одного товара. Сначала преобразуйте его непосредственно в Docling Serve и просмотрите полученный Markdown. Отдельный официальный пример Docling показывает, как экспортировать найденные таблицы в CSV и HTML: это позволяет сверить пары «название столбца → значение» без влияния LLM. Если строка переехала под другой столбец, повторный вопрос к RAG не исправит извлечение: измените настройки конвертера или обработайте документ другим путём. Это протокол для вашего стенда, не результат проверки Modelium. s1 s5 s6
Если прямое преобразование проходит, загрузите тот же PDF в Workspace → Knowledge, дождитесь завершения обработки и откройте предварительный просмотр извлечённого содержимого. Проверьте, что искомый артикул, число и заголовки остались вместе и есть указание на исходный файл. Затем прикрепите базу к чату через # либо к модели в настройках Workspace; режим привязки влияет на то, получает ли модель контекст сразу или должна вызвать инструмент поиска. В Troubleshooting Open WebUI отдельно рекомендует сначала проверить preview, прежде чем винить генеративную модель. s3 s4 s7
Как проверить поиск и ответ с цитатой?
Задайте вопрос по одному точному артикулу и ожидаемому значению из строки. Сначала осмотрите найденный фрагмент или открытый файл: содержит ли он заголовок нужного столбца, артикул и число? Затем сравните ответ LLM с этой строкой и с оригинальной страницей PDF. Сохраните четыре свидетельства в своём журнале пилота: исходную строку, извлечённый текст, найденный фрагмент и ответ со ссылкой на файл. Наличие ссылки в ответе означает только связь с источником, не правильность ячеек; ошибку разметки таблицы надо ловить раньше. s3 s4 s6
Если модель ничего не находит, проверьте завершённость обработки, разрешения на базу знаний, включённые File Context/Builtin Tools и режим function calling. Документация предупреждает: база, прикреплённая к модели в режиме Default/Native при выключенных Builtin Tools, может остаться вообще недоступной модели. Для небольшого локального контекста уменьшите число подаваемых фрагментов или пересмотрите размер чанка; сначала докажите, что правильная строка извлечена и доступна поиску. s3 s4 s7
Что делать после смены движка или OCR-настроек?
Open WebUI прямо указывает: Reindex не разбирает исходный PDF заново; он использует уже сохранённый извлечённый текст. Поэтому при смене Docling, OCR или параметров извлечения загрузите тестовый файл повторно и сравните новый preview со старым. При смене embedding-модели, напротив, переиндексация базы нужна: старые и новые векторы не лежат в одном сопоставимом пространстве. Для файлов, загруженных только в чат, штатная переиндексация базы не заменяет повторную загрузку. s3
Типовые симптомы: невозможность соединения — проверяйте сеть между контейнерами и URL; 404 /v1alpha/convert/file — сравните версии Open WebUI и Docling Serve с документированным /v1 API; ошибки Task Not Found при нескольких Uvicorn workers на Local engine — верните один worker или проектируйте общий backend задач; пустой/неполный preview — сверяйте OCR, исходный PDF и ограничения времени конвертации. Это рекомендации документации сообщества и проекта, а не диагностированный Modelium сбой вашего экземпляра. s1 s7 s8
Следующий шаг: проведите контрольный тест качества RAG на обезличенном PDF. Не переносите реальные договоры, счета или персональные данные в новый стек, пока не подтверждены маршруты передачи, хранение, права доступа и качество извлечения на тестовом материале. s3 s4
Источники
- Open WebUI: Docling Document Extraction (community contribution) — Снимок official-01-openwebui-docling.html; авторский рецепт с предупреждением о неподдерживаемом сообществом руководстве, не гарантия работы.. Получено 07.10.2026.
- Open WebUI: Document Extraction — Снимок official-02-extraction.html; движки и ограничение Temporary Chat.. Получено 07.10.2026.
- Open WebUI: Retrieval Augmented Generation — Снимок official-03-rag.html; индексация, режимы, re-index и цитаты.. Получено 07.10.2026.
- Open WebUI: Knowledge Bases and Document Chat — Снимок official-04-knowledge.html; загрузка, привязка базы, проверка исходника.. Получено 07.10.2026.
- Docling: API server (docling-serve v1.21.0 documentation) — Снимок official-05-docling-serve.html; документация синхронизирована с v1.21.0, это не версия пользовательского сервера.. Получено 07.10.2026.
- Docling: Export tables example — Снимок official-06-export-tables.html; DataFrame, CSV и HTML для отдельного контрольного разбора.. Получено 07.10.2026.
- Open WebUI: Troubleshoot Document Retrieval — Снимок official-07-troubleshooting.html; preview извлечённого содержимого и диагностика поиска.. Получено 07.10.2026.
- Docling: API server deployment — Снимок official-08-deployment.html; внутренний сервис, X-Api-Key, локальный и RQ engine.. Получено 07.10.2026.