LangChain RAG — это контур, в котором нейросеть отвечает на вопросы сотрудников по вашим документам и может прикладывать ссылку на источник, если сохранить метаданные и реализовать цитирование. LangChain даёт компоненты загрузки, разбивки и поиска, которые разработчик связывает с индексом, генерацией ответа и проверкой источников. На небольшом наборе файлов хватит обычного поиска; LangChain RAG нужен, когда ответ приходится искать в сотнях документов, а цифра из ответа уходит наружу.
Состав системы
Пилот начинайте с одного корпуса и набора рабочих вопросов. Отдельно проверяйте качество извлечения текста, попадание нужных фрагментов в поиск и точность ответа по источнику.
Систему собирают из четырёх узлов. Загрузчики читают PDF, Word и страницы вики и приводят их к тексту. Сплиттер режет текст на фрагменты по смысловым границам. Ретривер ищет фрагменты по вопросу сотрудника, а генератор формирует ответ; ссылки нужно собрать из метаданных найденных фрагментов и проверить. LangChain даёт готовые абстракции для каждого узла, но качество извлечения, права доступа, индексирование и цитирование остаются задачей разработчика. Общий обзор библиотеки и разговор о том, когда она вообще нужна компании, лежит в статье о LangChain для компаний — загляните туда, чтобы оценить масштаб задачи до начала разработки.
- Загрузка документов из папок, дисков и wiki в единый поток текста.
- Проверка извлечённого текста и сохранение нужных заголовков и страниц.
- Разбивка на фрагменты с перекрытием по смысловым границам.
- Векторный индекс и поиск по базе знаний под вопрос сотрудника.
- Ответ с проверяемыми ссылками; при пустом поиске — сообщение об отсутствии подтверждённого источника.
Загрузка документов
Начинайте с одного типа документов, которые чаще всего ищут сотрудники, — регламентов, договоров или инструкций. Загрузите файлы в папку, укажите LangChain-загрузчику путь и проверьте, сколько страниц ушло в обработку: разрыв между числом страниц в файле и числом страниц в логе — первый сигнал проблем с конвертацией. Сканы требуют отдельного прохода распознавания текста, этот этап закладывайте в план отдельной строкой. Дальше идёт разбивка: размер фрагментов и перекрытие подбирайте по тестовым вопросам. Перекрытие сохраняет мысль на стыке: конец одного фрагмента повторяется в начале следующего. Заголовки и страницы полезно хранить в метаданных, а заголовки, попавшие в начало фрагмента, работают как якоря при поиске. Каждый фрагмент превращается в вектор — числовой слепок смысла — и попадает в векторную базу. Выбор базы — отдельное решение: сравнение Qdrant, pgvector и других вариантов разобрано в статье о выборе векторной базы для RAG.
- Соберите пилотный корпус из десятка типовых документов одного вида.
- Подключите загрузчик LangChain и прогоните файлы в текст, сверьте число страниц.
- Разбейте текст на фрагменты с перекрытием по абзацам и заголовкам.
- Постройте индекс в выбранном хранилище и сохраните связь фрагмента с исходным документом.
- Задайте пять вопросов из реальной работы и проверьте найденные фрагменты глазами.
Поиск фрагментов
Поиск строится в два хода. Сначала настройте базовый поиск релевантных фрагментов. Реранкер добавляйте как отдельный этап, если тесты показывают, что нужный документ найден, но находится слишком низко в выдаче. Заголовки и номера страниц помогают восстановить происхождение фрагмента и сверить ответ, хотя ошибки генерации остаются возможными. Отдельная забота — таблицы: документы с ними пропускайте через загрузчик, который сохраняет структуру строк, иначе цифры разъедутся по ячейкам. Состав работ по такому контуру и факторы, от которых зависит стоимость, описаны на странице про нейросети для документов; цифры называем после разбора вашего корпуса.
| Приём | Что даёт | Когда подключать |
|---|---|---|
| Гибридный поиск | Векторы плюс точное вхождение термина | В корпусе много артикулов, фамилий и номеров |
| Reranker | Пересортировка десятка кандидатов под вопрос | После пилота, когда появились жалобы на релевантность |
| Метаданные | Фильтр по отделу, типу документа и дате | С первого дня, если документы разбиты по правам доступа |
Выбор приёмов зависит от корпуса: базовый поиск сравните с тестовыми вопросами; гибридный поиск добавляйте при артикулах и точных терминах. Метаданные и ограничения доступа нужны с первого дня, если документы принадлежат разным отделам.
Какой документ ваши сотрудники ищут чаще всего?
Ссылки на источники
Ответ без ссылки на источник в корпоративном контуре — недоработка, которую замечают первой. В LangChain документ, страницу и фрагмент можно сохранить в метаданных, а приложение построит из них ссылку: у сотрудника остаётся дорожка для проверки. Если подтверждённого источника нет, приложение так и сообщает, а вопрос попадает в журнал для доработки корпуса. Список случаев, когда нужен человек, лучше зафиксировать заранее: цены и сроки из договора, нормы и ответственность из регламента, любые цифры для внешнего документа. Соседний сценарий — агент, который после поиска совершает действие, разобран в материале про RAG-агента с инструментами; оба контура делят одну базу знаний, но разную зону ответственности.
- Для каждого содержательного ответа показывайте найденный источник и доступный идентификатор страницы или раздела.
- Человек сверяет цифры перед внешней отправкой.
- Пустой поиск честно показывается вместо выдуманного ответа.
- Повторяющиеся вопросы попадают в список доработки корпуса.
- Жалобы на ответы разбираются по журналу вопросов раз в неделю.
Проверка ответов
Основа тестов — эталонный набор: два-три десятка вопросов с верными ответами, которые составляют сотрудники отдела, где система будет работать. Прогоняйте вопросы через контур, сверяйте ответы, записывайте долю удачных и разбирайте промахи по журналу. Порог приёмки задайте до пилота по риску ошибок. Каждый промах разбирайте по этапам: распознавание текста, поиск, права доступа, сборка ответа и оформление цитаты. Ошибка может возникнуть в любом звене: из скана пропал текст, поиск вернул чужой документ, модель неверно связала фрагменты или ссылка указывает на другой фрагмент. Лечится метаданными, гибридным поиском и жёстким правилом: без найденного источника ответа нет. Подробности про повторную сортировку кандидатов ищите в материале о реранкере в RAG.
Возьмите десяток документов одного типа, соберите пять вопросов из реальной работы и прогоните их через черновой контур до всяких красивых интерфейсов. Если поиск находит верные фрагменты — расширяйте корпус; если мимо — меняйте разбивку и метаданные, добиваясь роста доли удачных ответов.
Когда пилот стабилен, подключайте интерфейс для сотрудников и журнал вопросов. Он покажет, каких документов в базе пока мало, — это самый дешёвый способ развивать систему дальше: каждая запись в журнале — готовая подсказка, какой раздел корпуса дописать или переразбить. Раз в неделю просматривайте вопросы без найденного источника: именно они показывают дыры в базе знаний.