Локальный ИИ · обучение · RAG
Как загрузить школьные учебники в локального ИИ-репетитора: RAG, PDF и цитаты
Локальный ИИ-репетитор становится намного полезнее, если отвечает не только из памяти модели, а опирается на конкретный учебник, параграф или методичку. Для этого используют RAG: документы разбиваются на фрагменты, индексируются локальной embedding-моделью и перед ответом ИИ получает только те куски, которые относятся к вопросу ученика.
RAG простыми словами
RAG — Retrieval-Augmented Generation, то есть генерация ответа с предварительным поиском информации. Вместо того чтобы спрашивать LLM «что ты знаешь по теме», система сначала ищет нужный материал в собственной базе документов.
«Почему зимой день короче?»
Найти параграф по окружающему миру.
Передать нужный фрагмент LLM.
Объяснить по возрасту ученика.
Показать учебник и раздел.
В Open WebUI этот механизм встроен в Knowledge Bases: документы становятся поисковой базой, которую можно прикрепить к чату или конкретному профилю модели.
RAG — это не обучение модели на учебнике
Документ можно заменить, удалить или переиндексировать без изменения весов LLM.
Полезен для формата, стиля и устойчивых паттернов, но не лучший способ хранить учебник.
Если завтра ребёнок перейдёт на другой учебник, RAG-базу можно заменить за несколько минут. Fine-tuning ради этого был бы дороже, сложнее и хуже контролировался бы.
Как устроен RAG-pipeline
Какие материалы лучше загружать
Не стоит сваливать все документы всех классов и предметов в одну гигантскую коллекцию. Предметная база работает предсказуемее, если её scope понятен.
knowledge/
├── 2-class/
│ ├── matematika/
│ │ ├── textbook.pdf
│ │ ├── rules.md
│ │ └── exercises.md
│ └── russkiy/
│ ├── textbook.pdf
│ └── dictionary.md
└── 8-class/
├── fizika/
└── algebra/
PDF — самое слабое место, если его неправильно извлечь
PDF может визуально выглядеть идеально, но внутри содержать текст в неправильном порядке, отдельные символы вместо слов или вообще только сканы страниц. Перед индексированием важно проверить, что реально извлеклось.
Текст выделяется мышью и обычно извлекается достаточно хорошо.
Нужен OCR до RAG, иначе индексировать почти нечего.
Две колонки, сноски, таблицы и боковые вставки могут ломать порядок текста.
Текстовый RAG не понимает саму схему или иллюстрацию без multimodal pipeline.
Chunking: как резать учебник на фрагменты
Если отправить весь учебник в embedding как один документ, поиск будет слишком грубым. Если порезать его на отдельные предложения, потеряется смысл. Поэтому chunk должен быть достаточно коротким для точного поиска и достаточно длинным, чтобы сохранять контекст.
Мало контекста: неизвестно, откуда определение и о чём соседний абзац.
Определение + пример + 1–2 связанных абзаца.
Поиск возвращает много лишнего, а полезный факт теряется внутри большого блока.
Open WebUI поддерживает разбиение по символам или токенам и умеет сначала учитывать Markdown headings, а затем дополнительно делить большие секции. Это особенно удобно, если учебник предварительно конвертирован в чистый Markdown с заголовками.
Embedding-модель: что использовать для русского
Embedding-модель не пишет ответ. Она превращает вопрос и chunks документов в векторы, чтобы можно было найти фрагменты, близкие по смыслу.
Open WebUI позволяет использовать локальный SentenceTransformers backend, Ollama embeddings или OpenAI-compatible embeddings. Для русскоязычной базы лучше выбирать действительно multilingual-модель.
Семейство 0.6B, 4B и 8B; поддержка более 100 языков, включая русский, и отдельные reranker-модели.
GitHub →Dense, sparse и multi-vector retrieval; более 100 языков и длинный вход.
GitHub →Qwen3-Embedding официально поддерживает русский и более 100 языков, а линейка содержит отдельные embedding и reranking модели. Это делает её удобным современным кандидатом для русскоязычных учебных баз. citeturn276160search0turn276160search1
Почему обычного vector search иногда мало
У школьных материалов много точных терминов: фамилии, даты, номера формул, обозначения, параграфы. Семантический поиск полезен для смысла, но keyword search иногда точнее.
Поэтому в Open WebUI можно включить hybrid search: vector retrieval объединяется с BM25, после чего кандидаты дополнительно проходят reranking. Такая схема особенно полезна для вопросов вроде «что сказано в параграфе 17 про фотосинтез?».
Как это делается в Open WebUI Knowledge
- Открыть Workspace → Knowledge.Создать базу, например «Математика 2 класс».
- Загрузить учебник и дополнительные материалы.Open WebUI извлечёт текст и построит embeddings.
- Прикрепить Knowledge Base к модели.Например, к профилю «Учитель математики».
- Проверить retrieval вручную.Задать вопросы по разным главам и открыть цитируемые фрагменты.
- Настроить chunking и search при необходимости.Не менять параметры только ради «оптимизации» без тестового набора вопросов.
Коллекции документов, Focused Retrieval и Full Context.
DOCSRAG PipelineChunking, embeddings, hybrid search, reranking и citations.
APIKnowledge APIЗагрузка файлов и управление коллекциями программно.
Когда RAG не нужен: Full Context
Если документ короткий — например, памятка на 2–4 страницы, список правил или план урока — retrieval может быть лишним. Open WebUI умеет передать весь файл в контекст модели.
Ищем несколько нужных фрагментов и экономим context window.
Весь документ помещается в prompt и доступен модели целиком.
Для 300-страничного учебника Full Context обычно бессмысленен: даже если модель формально поддерживает большое окно, это медленнее и менее эффективно, чем качественный retrieval.
Цитаты — обязательная часть учебного режима
Open WebUI умеет показывать citations для RAG-контекста. Для ребёнка и родителя это особенно полезно: можно открыть фрагмент и проверить, действительно ли ответ опирается на учебник.
Испарение — это переход вещества из жидкого состояния в газообразное с поверхности жидкости. Скорость испарения зависит от температуры, площади поверхности и движения воздуха.
Как сделать режим «отвечай только по учебнику»
Одним prompt нельзя гарантировать абсолютную строгость, потому что LLM всё равно имеет собственные знания. Но поведение можно сделать заметно более контролируемым.
Отвечай на фактические вопросы по предмету только на основе
контекста, полученного из подключённой базы знаний.
Если в retrieved context нет ответа:
1. прямо скажи, что информация в учебнике не найдена;
2. не придумывай факт из памяти модели;
3. предложи уточнить вопрос или выбрать другой учебник.
Всегда отделяй:
- факт из источника;
- своё объяснение или аналогию.
Что делать с рисунками, картами, схемами и формулами
Обычный текстовый RAG индексирует то, что удалось извлечь в текст. Поэтому подпись к рисунку он найдёт, а саму схему электрической цепи или географическую карту может не понять.
Определения, параграфы, вопросы, подписи.
Важно не потерять символы и структуру выражения.
Изображение нужно подавать мультимодальной модели.
Текстовый индекс + сохранённые изображения и ссылки на страницы.
Для первого школьного прототипа разумно начать с текстовых предметов и простых PDF. Затем отдельно добавлять vision для страниц, где без изображения теряется смысл.
Одна база или отдельная база на каждый предмет
Учебник, формулы, правила, типовые решения.
Учебник, словари, орфографические правила.
Учебник, даты, карты, дополнительные источники.
Как вести урок, формат ответов, критерии проверки.
Это даёт чистый scope и снижает шанс, что на вопрос по русскому языку retrieval случайно подмешает фрагмент из методички по истории.
Что происходит при обновлении материалов
Если вы заменили учебник или изменили chunking, старые chunks не обязаны исчезнуть автоматически. В Open WebUI при изменении chunk size старые документы сохраняют прежнюю нарезку до re-index. Для единообразия лучше переиндексировать коллекцию.
При смене embedding-модели re-index уже не просто желателен, а необходим: vectors разных моделей несовместимы. Это прямо отмечено в документации Open WebUI. citeturn978648search0
- проверить embedding model;
- проверить chunking;
- запустить re-index;
- прогнать тот же набор тестовых вопросов;
- сравнить retrieval до и после изменения.
Как собрать первый рабочий вариант
- Выбрать один учебник.Например, математика одного класса.
- Проверить извлечение текста.Случайно открыть 10–15 страниц после parsing.
- Создать одну Knowledge Base.Без смешивания разных предметов.
- Начать с базовых настроек Open WebUI.Не оптимизировать chunking до первого теста.
- Составить 30 реальных вопросов.Определения, «почему», «сравни», номера параграфов и вопросы ученика.
- Проверять сначала retrieval.Нашёл ли система правильный fragment — до оценки ответа LLM.
- Включить hybrid search/reranking при необходимости.Если точные термины или даты ищутся плохо.
- Добавить strict-mode prompt.Нет источника → честно сказать, что ответ не найден.
Типичные ошибки
Частые вопросы
Нужно ли обучать LLM на школьном учебнике?
Обычно нет. Для знаний из конкретного учебника лучше RAG: документ остаётся отдельно и подмешивается в контекст только когда нужен.
Можно ли всё сделать без Интернета?
Да. Парсинг документов, embeddings, vector database, reranking и LLM могут работать локально. Модели и программы потребуется один раз скачать.
Можно ли загрузить учебник PDF прямо в Open WebUI?
Да. Knowledge Bases рассчитаны на работу с PDF и другими документами. Но качество зависит от того, насколько правильно извлёкся текст конкретного PDF.
Какая embedding-модель подходит для русского?
Нужна multilingual-модель. Среди актуальных вариантов — Qwen3-Embedding и BGE-M3. Выбор лучше проверять на собственном наборе вопросов и учебников.
Можно ли заставить ИИ отвечать только по учебнику?
Можно существенно приблизиться к этому режиму: обязательный retrieval, правило «нет контекста — нет ответа» и citations. Абсолютную математическую гарантию один system prompt не даёт.
Что делать с рисунками и схемами внутри учебника?
Для них нужен multimodal pipeline: сохранить изображения страниц или отдельных схем и подключать vision-модель. Обычный текстовый RAG видит только извлечённый текст.
Источники и проекты
Продолжить про локальный ИИ для обучения
Следующий материал