📖 Теория: LangChain и PromptHub

← К оглавлению урока

⚡ Суть

  • LangChain — фреймворк-конструктор для LLM: цепочки (chains), модели, промпты, интеграция с данными.
  • Цепочка = последовательность операций (промпт → LLM → обработка → инструмент).
  • Document Loaders + Vector Stores → вопрос-ответ по документам (основа RAG).
  • PromptHub — платформа управления промптами: версии, история, командная работа (как Git).

Зачем нужны LangChain и PromptHub

По мере усложнения AI-приложений простой связки «отправил промпт — получил ответ» становится мало. Представьте чат-бота, который:

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

Кодировать каждый такой шаг «вручную» — сложно и запутанно. Нужны инструменты, которые помогают организовать процесс.

Двигатель и автомобиль. LLM — мощный двигатель. Сам по себе он хорош, но чтобы построить «автомобиль» (приложение), нужны инструменты управления двигателем и соединения его с другими частями — это LangChain. А «топливо» — промпты, и управлять ими помогает PromptHub.
ИнструментЗа что отвечает
LangChainНабор инструментов для управления «двигателем» LLM: строит сложные цепочки обработки, интегрирует внешние данные и инструменты.
PromptHubПлатформа для работы с промптами: хранение, организация, совместная разработка, версионирование.

LangChain: основная концепция — Цепочки (Chains)

У LangChain несколько ключевых концепций: помимо цепочек есть агенты (Agents), инструменты (Tools) и память (Memory) — их затронем позже (агенты — в уроке 06). Сегодня фокус на цепочках.

Цепочка в LangChain — это последовательность операций, выполняемых одна за другой. Каждая операция может быть: вызовом LLM с промптом · обработкой данных (от LLM или из внешнего источника) · вызовом внешнего инструмента или сервиса.

Аналогия — производственная линия. Деталь проходит через несколько станций обработки; на каждой с ней что-то делают, и в конце получается готовый продукт. Данные в цепочке LangChain так же проходят через последовательность шагов, и на выходе — нужный результат.

Преимущества LangChain

  • Упрощение разработки — фреймворк берёт на себя рутину по управлению LLM, промптами и интеграцией, оставляя вам логику приложения.
  • Модульность и гибкость — готовые компоненты комбинируются и переиспользуются, как блоки LEGO.
  • Интеграция — поддержка множества LLM-моделей, векторных БД, API, веб-сайтов и других сервисов.

Основные компоненты

КомпонентНазначение
Models (Модели)Единый интерфейс к разным LLM: OpenAI, Hugging Face, Google и др. Лёгкое переключение между моделями.
Prompts (Промпты)Создание, управление и оптимизация промптов; разные типы (few-shot, chain-of-thought).
Chains (Цепочки)Основной строительный блок. Типы: LLMChain, SequentialChain (последовательно), RouterChain (выбор цепочки по входу) и другие.
⚠️ Современный LangChain (0.2+) рекомендует собирать цепочки через LCEL (LangChain Expression Language) — оператором |: prompt | llm | parser. Классический LLMChain считается устаревшим. Сравнение — на странице Старый vs Новый.

Это лишь вершина айсберга, но для вводного урока достаточно, чтобы понять принципы.

LangChain: интеграция с внешними источниками данных

LLM мощные, но их знания ограничены данными обучения: они не знают о событиях после даты обучения и не имеют доступа к вашим личным данным и базам компании. Чтобы приложение было по-настоящему полезным, его часто нужно соединить с внешними данными.

Примеры задач, где это критично:

  • Ответ по содержимому веб-страницы — «Какая погода в Лондоне сейчас?» (нужна актуальная информация из интернета).
  • Анализ данных из БД — «Сколько было продаж по категории "электроника"?» (нужны данные из базы).
  • Суммаризация документов — «Суммаризируй этот PDF-отчёт» (нужно прочитать содержимое файла).
Инструмент LangChainЧто делает
Document Loaders (загрузчики)Читают данные из разных форматов (TXT, PDF, CSV, веб-страницы) и превращают их в «документы», которые LangChain умеет обрабатывать.
Vector Stores (векторные хранилища)Базы данных для хранения и быстрого поиска векторных эмбеддингов. LangChain интегрируется с Chroma, FAISS, Pinecone и др.

Как работает «вопрос-ответ по документам»

Вспомним механику векторного поиска из урока 04 — в LangChain она оформлена в готовую цепочку:

  1. Загружаем документы через Document Loaders.
  2. Разбиваем на фрагменты (чанки) — большие документы дробят на части, чтобы поиск был точнее.
  3. Создаём эмбеддинги для каждого фрагмента (модель эмбеддингов, например от Google).
  4. Сохраняем эмбеддинги в векторном хранилище.
  5. На вопрос пользователя строим эмбеддинг вопроса и ищем в хранилище самые похожие фрагменты.
  6. Найденные фрагменты + вопрос складываем в промпт для LLM — и получаем ответ по контексту документов.
⚠️ Этот приём — «достать релевантные куски и подставить в промпт» — называется RAG (Retrieval-Augmented Generation). Подробно разберём в уроке 09. Шаг разбиения на чанки в LangChain делают сплиттеры (например, RecursiveCharacterTextSplitter) — это уже за рамками лекции.

LangChain даёт готовые компоненты для загрузки, разбиения, эмбеддингов, интеграции с хранилищами и сборки промптов — цепочку собирают из блоков, а не пишут с нуля.

PromptHub: обзор платформы

Промпты — «топливо» LLM-приложений: чем лучше промпт, тем лучше результат. Когда приложений и промптов становится много, ими сложно управлять. PromptHub — платформа для хранения, обмена и совместной работы над промптами.

Зачем нужен PromptHub

  • Организация и управление — библиотеки промптов, каталогизация, теги и описания; нужный промпт легко найти.
  • Командная работа — делиться промптами с коллегами, обсуждать, предлагать улучшения.
  • Готовые промпты сообщества — искать и переиспользовать промпты, созданные другими разработчиками.
  • Версионирование — сохранять версии, отслеживать изменения, откатываться к рабочей версии.

Типичный интерфейс

РазделЧто в нём
Библиотека промптовПросмотр и поиск, фильтры по категориям/тегам/авторам, описания, примеры, рейтинги.
Редактор промптовСоздание и правка: текст промпта, параметры (температура, длина ответа), переменные, предпросмотр.
Совместная работаКомментарии, предложения изменений, обсуждения, уведомления.
ВерсионированиеИстория изменений, сравнение версий, откат к предыдущим.
PromptHub ≈ Git для промптов. Как Git позволяет команде совместно работать над кодом, PromptHub — над промптами. Версионирование особенно полезно при экспериментах: создаёте новую версию, тестируете, и если она хуже — откатываетесь к рабочей. Эксперименты становятся безопасными.
⚠️ PromptHub — не единственная и не обязательно общедоступная платформа управления промптами; существуют аналоги (например, LangSmith Prompt Hub, PromptLayer и др.). Конкретный интерфейс и возможности зависят от платформы и версии.

Итог. LangChain и PromptHub значительно упрощают разработку LLM-приложений: позволяют делать их сложнее, функциональнее и качественнее, чем «вручную». Сегодня — общее представление; чтобы освоить по-настоящему, нужна практика.