Загрузить PDF в локальный чат легко. Сложнее добиться, чтобы нейросеть находила нужный абзац, не придумывала ответ и показывала источник. Если просто прикрепить сотню документов к маленькой модели, результат часто разочаровывает: система уверенно отвечает не по тому файлу или заявляет, что информации нет.

Ниже настроим локальную базу знаний на связке Ollama и Open WebUI. Документы будут индексироваться на вашем компьютере, а модель — отвечать по найденным фрагментам. Программировать собственный RAG-конвейер не понадобится.

Короткий ответ: установите Ollama и Open WebUI, загрузите отдельную embedding-модель, создайте Knowledge Base, добавьте несколько текстовых PDF и прикрепите базу к чату. В запросе требуйте отвечать только по документам и указывать файл и страницу. После индексации отключите интернет и проверьте систему на заранее подготовленных контрольных вопросах.

Что мы собираем

Компонент Роль Что влияет на качество
Ollama Запускает языковую и embedding-модели Размер модели, память и контекст
Open WebUI Хранит базу знаний и управляет поиском Режим retrieval, парсер и настройки фрагментов
Embedding-модель Преобразует текст и запросы в векторы Поддержка русского языка и совпадение модели при индексации
Языковая модель Формирует ответ по найденному контексту Следование инструкциям и размер контекстного окна
Документы Источник фактов Качество извлечённого текста и структура

Эта схема называется RAG — генерация с дополненным поиском. Система не обучает модель на ваших PDF. Она разбивает документы на фрагменты, находит подходящие части по запросу и передаёт их языковой модели вместе с вопросом.

Кому подходит локальная база знаний

  • специалисту, который работает с инструкциями и регламентами;
  • студенту или исследователю с коллекцией статей;
  • малому бизнесу с внутренними документами;
  • владельцу техники с большим архивом руководств;
  • пользователю, который не хочет отправлять файлы в облачный чат;
  • редактору, которому нужно искать факты по собственному архиву.

Локальный RAG не заменяет юриста, врача или инженера. Он ускоряет поиск и первичный анализ, но критичные выводы нужно сверять с оригиналом. Особенно опасны уверенно сформулированные ошибки в датах, ограничениях и отрицаниях.

Что понадобится

  • компьютер с установленными Ollama и Open WebUI;
  • минимум 16 ГБ RAM для комфортного старта;
  • языковая модель, помещающаяся в память;
  • embedding-модель с поддержкой русского языка;
  • несколько PDF, DOCX, TXT или Markdown для теста;
  • свободное место для моделей, индекса и исходных файлов.

Если базовая связка ещё не установлена, сначала выполните инструкцию по запуску Open WebUI и Ollama. Проверьте обычный чат без интернета, и только после этого добавляйте документы.

Как выбрать языковую модель

Для работы с документами важны не только знания модели, но и способность следовать контексту, цитировать источники и признавать отсутствие ответа. Огромная LLM, которая едва помещается в память, может работать хуже компактной модели с нормальным контекстным окном.

Начните с современной instruct-модели на 7–9 млрд параметров в подходящем квантовании, если компьютер имеет 16 ГБ RAM. Для 8 ГБ выбирайте вариант 3–4B и небольшую коллекцию. При наличии 32 ГБ или видеокарты можно тестировать более крупные модели.

Проверьте три способности:

  1. модель отвечает на русском без перехода на другой язык;
  2. выполняет инструкцию «если данных нет — так и скажи»;
  3. помещает найденные фрагменты и вопрос в доступный контекст.

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

Зачем нужна отдельная embedding-модель

Языковая модель пишет ответ, а embedding-модель ищет смысловое сходство. Она должна одинаково хорошо кодировать документы и пользовательские вопросы. Для русскоязычной базы выбирайте мультиязычный вариант либо модель, в документации которой прямо заявлен русский язык.

Не меняйте embedding-модель после загрузки половины архива без переиндексации. Векторы, созданные разными моделями, нельзя корректно сравнивать. После смены движка или модели запустите reindex для всей базы.

Подготовьте документы

Качество исходного текста часто важнее тонкой настройки RAG. Откройте PDF и попробуйте выделить абзац мышью. Если текст копируется нормально, документ, скорее всего, текстовый. Если каждая страница является изображением, понадобится OCR.

Перед загрузкой:

  • удалите дубликаты и устаревшие версии;
  • дайте файлам понятные имена;
  • разделите огромный сборник на логические документы;
  • уберите повторяющиеся рекламные страницы;
  • проверьте таблицы и формулы после извлечения;
  • для сканов выполните распознавание текста;
  • не смешивайте несвязанные проекты в одну базу.

Имя вроде reglament-oplaty-2026-v3.pdf полезнее scan00042.pdf. Когда модель называет источник, пользователь сразу понимает, где его искать.

Создайте Knowledge Base в Open WebUI

  1. Откройте Workspace → Knowledge.
  2. Создайте новую базу и дайте ей узкое название.
  3. Добавьте описание: какие документы находятся внутри и для каких вопросов база предназначена.
  4. Загрузите два-три подготовленных файла.
  5. Дождитесь завершения извлечения текста и индексации.
  6. Откройте новый чат и прикрепите созданную базу.

Официальная документация Open WebUI разделяет Focused Retrieval, при котором система ищет подходящие фрагменты, и Full Context, когда весь документ передаётся модели целиком. Документация Open WebUI Knowledge

Не загружайте сразу тысячу файлов. Сначала настройте качество на небольшой коллекции, иначе будет трудно понять, виноват парсер, поиск, модель или сами документы.

Focused Retrieval или Full Context

Full Context

Весь документ добавляется в каждый запрос. Режим подходит для короткой памятки, договора или стилевого руководства, которое целиком помещается в контекст. Преимущество — модель видит весь текст. Недостаток — большой расход контекста и снижение скорости.

Focused Retrieval

Система выбирает несколько релевантных фрагментов. Это подходящий режим для десятков инструкций или длинного архива. Качество зависит от разбиения, embedding-модели и формулировки вопроса.

Практическое правило:

  • до нескольких страниц — попробуйте Full Context;
  • длинный PDF или коллекция — используйте RAG;
  • если ответ требует сопоставить весь документ, RAG может пропустить удалённую часть;
  • если нужен один конкретный факт, полный контекст избыточен.

Первый запрос к базе

Не начинайте с «Расскажи всё». Задайте вопрос, ответ на который вы заранее знаете и можете найти в документе. Используйте инструкцию:

Ответь только на основании прикреплённой базы знаний.
Укажи название файла и страницу или раздел.
Если в документах нет ответа, напиши: «В базе нет данных».
Не дополняй ответ общими знаниями.

Затем спросите, например: «Какой срок указан для подачи заявления?» или «Какие три условия перечислены в разделе 4.2?» Чем конкретнее вопрос, тем легче оценить поиск.

Тест пяти типов документов

Чтобы понять реальные возможности системы, создайте тестовую базу из пяти файлов:

  1. Короткий текстовый PDF. Один факт и понятные заголовки.
  2. Длинная инструкция. Повторяющиеся термины и разделы.
  3. Скан после OCR. Несколько намеренно сложных слов и чисел.
  4. Документ с таблицей. Строки, столбцы и сноски.
  5. Два противоречащих файла. Старая и новая версия правила.

Для каждого подготовьте три вопроса:

  • прямой вопрос с точной формулировкой из текста;
  • перефразированный вопрос;
  • вопрос, ответа на который в документе нет.

Записывайте не только правильность, но и источник. Хорошая система должна найти нужный фрагмент, сослаться на него и отказаться от выдумки в третьем тесте.

Как проверить, что поиск нашёл правильный фрагмент

Откройте сведения об источниках ответа. Сравните переданный контекст с оригинальным PDF. Возможны три ситуации:

  • Фрагмент найден и ответ неверный. Проблема в языковой модели или инструкции.
  • Фрагмент не найден. Настраивайте embeddings, разбиение и формулировку вопроса.
  • Текст извлечён с ошибками. Меняйте парсер или выполняйте OCR.

Такой разбор экономит время. Бессмысленно менять LLM, если в переданном контексте вместо таблицы находится набор обрывков.

Размер фрагментов и перекрытие

При индексации документ делится на chunks. Слишком маленькие куски теряют контекст: условие оказывается в одном фрагменте, исключение — в другом. Слишком большие ухудшают точность поиска и занимают контекстное окно.

Универсального числа нет. Для структурированных инструкций начните со средних фрагментов и небольшого перекрытия. Если ответ регулярно теряет соседний абзац, увеличьте chunk size или overlap. После изменения переиндексируйте тестовую базу и повторите те же вопросы.

Меняйте один параметр за раз. Иначе вы не узнаете, что улучшило или ухудшило результат.

Как работать со сканированными PDF

Скан содержит изображения страниц, а не текст. Обычный PDF-парсер может вернуть пустой файл. Выполните OCR до загрузки либо выберите поддерживаемый движок распознавания в Open WebUI.

После OCR проверьте:

  • фамилии и названия;
  • цифры 0/8 и 1/7;
  • знаки «не» и дефисы;
  • порядок столбцов таблицы;
  • переносы слов;
  • номера страниц и разделов.

Ошибочный OCR становится «официальным источником» для модели. Она не знает, что символ распознан неверно, и уверенно повторяет ошибку.

Почему таблицы распознаются плохо

Обычное извлечение превращает таблицу в последовательность строк. Заголовки могут отделиться от значений, а ячейки — поменять порядок. Для важных таблиц полезно подготовить отдельную версию в Markdown или CSV с понятными заголовками.

Задавайте вопрос с названием столбцов: «Какое значение указано в строке X и столбце Y?» После ответа обязательно откройте источник.

Как уменьшить галлюцинации

  1. Требуйте отвечать только по найденному контексту.
  2. Просите указывать источник для каждого важного утверждения.
  3. Добавьте явную фразу отказа при отсутствии данных.
  4. Уменьшите творческую вариативность ответа.
  5. Не смешивайте документы разных проектов.
  6. Удалите устаревшие версии или явно пометьте даты.
  7. Проверяйте retrieval-контекст, а не только итоговый текст.

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

Что делать с разными версиями документов

Если база содержит регламент 2024 и 2026 года, модель может найти оба. Добавьте дату в имя файла и метаданные, а в запросе указывайте: «Используй самую новую версию и перечисли расхождения».

Для критичных процессов лучше держать архив отдельно от действующей базы. Тогда устаревший документ не будет конкурировать с актуальным при обычном вопросе.

Работает ли база полностью офлайн

После загрузки языковой и embedding-моделей, установки Open WebUI и индексации документов основной сценарий может работать без интернета. Проверьте это самостоятельно:

  1. закройте старый чат;
  2. отключите сетевое подключение;
  3. создайте новый диалог;
  4. прикрепите локальную базу;
  5. задайте новый контрольный вопрос;
  6. проверьте источник ответа.

Веб-поиск, удалённые API, облачные OCR и некоторые расширения требуют сети. Локальный интерфейс не делает автоматически локальной каждую подключённую функцию.

Конфиденциальность

Перед загрузкой чувствительных документов проверьте маршрут данных. Open WebUI может подключаться к облачной модели, внешнему embedding-провайдеру, веб-поиску или стороннему инструменту. Отключите ненужные интеграции и используйте локальные endpoints.

Также важно:

  • защитить учётную запись Open WebUI;
  • не публиковать порт панели в интернет;
  • ограничить доступ к папке данных;
  • шифровать ноутбук или сервер;
  • не устанавливать неизвестные плагины;
  • создавать отдельные базы для пользователей с разными правами.

Подробнее о базовой защите устройств и аккаунтов — в материале о защите персональных данных.

Резервное копирование базы знаний

Исходные документы должны храниться независимо от Open WebUI. Экспорт или копия базы не заменяет архив оригиналов. Сохраняйте:

  • исходные файлы;
  • очищенные или OCR-версии;
  • настройки embedding-модели;
  • экспорт базы знаний;
  • шаблон системной инструкции;
  • список контрольных вопросов и правильных ответов.

После восстановления повторите контрольный тест. Наличие файлов на диске ещё не означает, что индексы созданы и retrieval работает так же.

Типовые ошибки

Документ загружен, но модель его игнорирует

Проверьте, прикреплена ли база к текущему чату, включён ли File Context и завершена ли индексация. Затем задайте точный вопрос и откройте найденные источники.

Ответ обрывается или не учитывает все фрагменты

Увеличьте контекст модели, уменьшите число возвращаемых фрагментов или используйте более компактные chunks. Слишком много найденного текста может не поместиться в окно.

После смены embedding-модели поиск стал бессмысленным

Переиндексируйте документы. Запрос и сохранённые векторы должны создаваться совместимой моделью одной размерности.

Русский вопрос не находит русский документ

Проверьте поддержку русского языка embedding-моделью и качество извлечённого текста. Попробуйте точную и перефразированную формулировку. Если поиск работает только по буквальному совпадению, модель представлений выбрана неудачно.

Скан отображается пустым

В PDF нет текстового слоя. Выполните OCR и загрузите новую версию, затем удалите пустую запись и переиндексируйте базу.

Когда Open WebUI недостаточно

Встроенная база знаний удобна для личного архива и небольших команд. Отдельный RAG-конвейер понадобится, если нужны:

  • сложные права доступа к отдельным документам;
  • тысячи постоянно обновляемых файлов;
  • специализированный поиск по таблицам и изображениям;
  • строгая оценка качества retrieval;
  • интеграция с корпоративными системами;
  • журналирование и контроль версий.

Не начинайте с внешней векторной базы только потому, что она упоминается в технических статьях. Если десять подготовленных PDF работают во встроенной системе, усложнение пока не требуется.

Как оценивать качество не «на глаз»

Создайте таблицу из 15–30 контрольных вопросов. Для каждого укажите правильный ответ, файл, страницу и допустимые формулировки. После изменения модели или параметров прогоняйте тот же набор.

Проверка Оценка
Найден правильный документ 0 или 1
Найден нужный фрагмент 0 или 1
Ответ передаёт смысл без искажений 0–2
Указан проверяемый источник 0 или 1
Система отказалась выдумывать отсутствующий факт 0 или 1

Так вы отделите красивый стиль от полезности. Модель, которая пишет убедительно, но находит правильный источник в половине случаев, не готова к рабочему архиву.

Три шаблона запросов для разных задач

Поиск конкретного факта

Найди в базе точный ответ на вопрос ниже.
Приведи значение без пересказа и укажи файл и раздел.
Если есть несколько версий, перечисли их даты.

Сравнение документов

Сравни документы по четырём критериям: срок, стоимость,
обязанности и исключения. Для каждого пункта укажи источник.
Не объединяй положения, если они противоречат друг другу.

Проверка отсутствия информации

Проверь, содержит ли база данные по вопросу.
Если прямого ответа нет, напиши об отсутствии данных.
Не делай вывод по общим знаниям модели.

Сохраните удачные инструкции в шаблонах Open WebUI. Это снижает различия между сеансами и помогает другим членам семьи или команды получать сопоставимые результаты.

Как разделить доступ нескольких пользователей

Если Open WebUI используется не одним человеком, не прикрепляйте конфиденциальную базу ко всем моделям по умолчанию. Создавайте отдельные коллекции и проверяйте права пользователей. Общая учётная запись лишает возможности понять, кто загрузил файл и изменил настройку.

Перед удалением сотрудника или передачей компьютера отзовите доступ, смените пароли и проверьте экспортированные файлы. Локальное хранение не защищает документ от другого пользователя той же панели.

Готовый чек-лист запуска

  • обычный локальный чат отвечает без интернета;
  • выбрана отдельная мультиязычная embedding-модель;
  • документы очищены и имеют понятные имена;
  • для сканов выполнен OCR;
  • создана отдельная база для одного проекта;
  • выбран подходящий режим RAG или Full Context;
  • проверены прямые, перефразированные и отсутствующие вопросы;
  • ответ содержит файл и страницу или раздел;
  • отключены ненужные облачные интеграции;
  • создана резервная копия исходников и настроек.

Если компьютер не справляется с моделью, сначала прочитайте инструкцию по выбору локальной нейросети. Владельцам новых ноутбуков поможет разбор NPU и его реальной пользы. Для автоматической обработки новых файлов можно позднее подключить локальный n8n.

Частые вопросы

Обучается ли Ollama на моих документах?

Нет. В описанной схеме документы индексируются и релевантные фрагменты добавляются в контекст запроса. Параметры языковой модели не переобучаются.

Можно ли работать с PDF без видеокарты?

Да. Индексация и небольшая языковая модель работают на CPU, но ответы будут медленнее. Важнее подобрать модель, которая помещается в оперативную память.

Почему нейросеть не указывает страницу?

Парсер мог не сохранить номера страниц либо фрагменты не содержат этих метаданных. Проверьте источники retrieval и используйте документы с корректной структурой.

Можно ли загрузить конфиденциальные договоры?

Технически да, но сначала убедитесь, что языковая и embedding-модели локальные, облачные инструменты отключены, а панель и диск защищены. Для юридически значимых документов необходима дополнительная политика доступа.

Итог

Полезная локальная нейросеть для документов — это не кнопка Upload, а связка из качественного текста, подходящей embedding-модели, настроенного retrieval и контрольных вопросов. Начинайте с нескольких файлов и проверяйте найденные фрагменты до расширения базы.

Если система умеет отвечать по источнику, честно признаёт отсутствие данных и работает после отключения интернета, базовый RAG настроен правильно. Только после этого добавляйте большой архив и автоматическую синхронизацию.

Еще записи из этой же рубрики

Что будем искать? Например,Технология

Минуту внимания
Мы используем cookies для корректной работы сайта и понимания, как им пользуются читатели.