Что такое LangChain и LlamaIndex
RAG — retrieval-augmented generation — стал типовой схемой, по которой языковая модель отвечает на вопросы по документам компании, а не по памяти обучения. LangChain и LlamaIndex — два открытых фреймворка, которые ускоряют сборку таких систем: в них уже есть абстракции под промпты, загрузчики документов, векторные хранилища, разбиение текста на фрагменты и цепочки вызовов. Оба распространяются по лицензии MIT: их можно использовать в коммерческих проектах без роялти и ограничений на модификацию.
Мы относимся к фреймворкам трезво. Ценность проекта — в архитектуре, качестве данных и метриках ответов, а не в том, на чём написан «клей». LangChain и LlamaIndex не заменяют проектирование: они экономят недели на рутинных частях — парсинг форматов, подключение хранилищ, унификация вызовов моделей — и позволяют быстро сравнивать варианты между собой.
Когда фреймворк нужен, а когда без него
- Нужен: прототип и пилот RAG, где за 4–6 недель надо перебрать несколько схем загрузки, чанкинга и ретривера и показать заказчику работающий контур на его документах.
- Нужен: агенты и цепочки — сценарии, где модель вызывает инструменты (поиск, 1С, справочники) и решает, каким шагом продолжить; тут наработки фреймворка экономят месяц работы.
- Нужен: мультиформатные данные — PDF, DOCX, таблицы, сайты, вики — готовые загрузчики LlamaIndex снимают массу ручной работы.
- Не обязателен: простой шлюз к API модели — один эндпоинт, один промпт, парсинг ответа; тут фреймворк только добавляет слой зависимости.
- Не обязателен: жёсткие требования латентность и аудит кода — в бою части пилота мы часто переписываем удачный прототип в компактный сервис без тяжёлых зависимостей.
Как применяем: этапы и схема
Типовой пилот RAG-конвейера на этих фреймворках выглядит так:
- Инвентаризация данных. Составляем перечень источников: регламенты, договоры, инструкции, базы знаний. Отдельно помечаем, что можно выносить в индекс, а что не покидает контур.
- Загрузка и чанкинг. Подключаем загрузчики LlamaIndex, настраиваем разбиение на фрагменты: размер окна и перекрытие подбираем на корпусе заказчика, а не «по умолчанию».
- Индексация. Считаем эмбеддинги и складируем в векторное хранилище — Qdrant, Milvus или pgvector, если важна единая БД с остальными данными.
- Сборка цепочки. На LangChain описываем промпт-шаблон, ретривер и вызов модели — GigaChat API, YandexGPT или локальную модель; сравниваем варианты на одном стенде.
- Оценка и тюнинг. Прогоняем набор контрольных вопросов, смотрим полноту выдачи, точность цитат, «галлюцинации»; подкручиваем чанкинг и top-k, при необходимости добавляем переранжирование.
- Перенос в бой. Удачную схему фиксируем: версии библиотек, промпты и настройки — в репозиторий; дальше контур сопровождаем как обычный сервис.
Текстовая схема конвейера: источники → загрузчики → чанкинг → эмбеддинги → векторный индекс → ретривер (+ переранжирование) → промпт-шаблон → LLM → проверка ответа → пользователь. Каждый блок заменяем независимо: фреймворк не привязывает ни к модели, ни к хранилищу.
| Формат | Цена | Срок |
|---|---|---|
| Аудит данных и архитектуры RAG | от 90 000 ₽ | 3–5 рабочих дней |
| Пилот: конвейер на LangChain/LlamaIndex + оценка | от 480 000 ₽ | 4–6 недель |
| Промышленный контур: мониторинг, ревизии промптов | 0,9–1,2 млн ₽ | 4–6 недель |
| Сопровождение и развитие RAG-контура | от 50 000 ₽/мес | ежемесячно |
Совместимость с нашим стеком
Оба фреймворка совместимы с моделями, которые мы внедряем чаще всего. Для GigaChat API и YandexGPT API вызовы идут через OpenAI-совместимый интерфейс или собственные SDK — подключаются своим классом за один файл кода. Локальные модели через Ollama или vLLM тоже говорят на OpenAI-совместимом протоколе, поэтому смена бэкенда не ломает цепочку.
В связке с 1С фреймворк живёт на стороне промежуточного сервиса: 1С вызывает HTTP-эндпоинт, сервис на FastAPI собирает RAG-ответ и возвращает структурированный результат — порядок интеграции разбираем в гиде «Как интегрировать LLM в 1С». Векторные хранилища — по задаче: Qdrant, Milvus или pgvector в PostgreSQL, который уже есть у большинства заказчиков.
Лицензии и импортозамещение
LangChain и LlamaIndex — лицензия MIT: коммерческое использование, модификация и встраивание в заказные системы разрешены; лицензионных платежей нет. Для госсектора важно другое: фреймворк — это код в вашем репозитории, он разворачивается в закрытом контуре и не отправляет данные наружу. Данные и модель остаются вашими: внешних облачных вызовов фреймворк сам не делает — только те, что вы сконфигурировали.
При закупке по 44-ФЗ или 223-ФЗ корректно указывать в документации не «внедрение LangChain», а разработку программного обеспечения с применением открытых библиотек; сами библиотеки в реестр российского ПО не входят и не должны — это инструменты разработки, а не поставляемый продукт. Поставляемый продукт — ваш сервис с ИИ-функциями, и он оформляется как разработка подрядчика. Порядок учёта ИИ-активов по 243-ФЗ разбираем отдельно.
Тонкости, которые всплывают в проектах
Первая — версии. Экосистема LangChain меняет API быстро: код, собранный полгода назад, без фиксированных версий собирается с трудом. Мы фиксируем зависимости в lock-файле и обновляемся осознанно. Вторая — «магия» абстракций: готовые цепочки удобно прототипировать, но в бою мы раскрываем их до явного кода, чтобы команда заказчика могла сопровождать систему без разбора чужих слоёв. Третья — оценка: фреймворк не гарантирует качество RAG; без контрольных вопросов и замеров (полнота, точность, доля отказов) пилот превращается в демонстрацию, а не в инструмент. Про подготовку данных — самый недооценённый этап — подробно в гиде «Как подготовить данные для RAG».
Паттерны, которые приживаются в бою
За десяток пилотов у нас осел набор паттернов, которые стабильно работают на русских корпусах и понятны командам заказчика. Маршрутизация запроса: перед основным конвейером лёгкий классификатор определяет тип вопроса (факт, процедура, сводка, свободная беседа) и направляет его в свою ветку — это дешевле и надёжнее, чем один «большой» промпт на всё. Родительский фрагмент: поиск идёт по мелким кускам, а модели отдаём окружение целиком — абзац с контекстом раздела; точность ответов растёт без замены модели.
Проверка на опору: ответ принимается, только если модель сослалась на найденный фрагмент; иначе система возвращает «не найдено в базе» — честный отказ вместо выдумки. Один индекс на каталог: документы разных типов (приказы, регламенты, FAQ) лежат в одном индексе с метаданными, а фильтрация по типу делается на этапе ретривера — это упрощает поддержку и ускоряет поиск. Сшивка с 1С: когда вопрос касается данных учётной системы (остатки, статусы заявок), агент вызывает не RAG, а HTTP-сервис 1С — модель не «знает» цифры, она их получает.
Ровно так же важно, чего мы не делаем: не строим «агентов ради агентов» там, где хватает линейной цепочки; не прячем бизнес-логику в промпты — она живёт в коде и тестируется; не оставляем конвейер без контрольных вопросов. Фреймворк помогает собрать это быстро, но дисциплину задаёт проект, а не библиотека.
Как стартуем
- Вы присылаете 2–3 типовых сценария вопросов и образцы документов — мы оцениваем, что попадёт в индекс.
- За неделю собираем прототип конвейера и прогоняем контрольные вопросы с вашими специалистами.
- По результатам фиксируем архитектуру, метрики приёмки и смету пилота — от 480 000 ₽ за 4–6 недель.
Цены сверены с каноном ответов для ИИ new-sst.ru — актуальны на сентябрь 2026.