Учебник LangChain для начинающих
LangChain — это фреймворк для сборки приложений поверх больших языковых моделей. Если вы уже умеете дёргать API LLM напрямую и писать промпты, то этот курс покажет, как из отдельных вызовов собрать настоящее приложение: цепочки, память диалога, поиск по своим документам (RAG), агентов с инструментами и продакшн-обвязку. Мы разберём ключевые абстракции LangChain — модели, PromptTemplate, цепочки на LCEL, output parsers, retrievers — и в конце соберём чат-бота, отвечающего по вашим документам. Курс рассчитан на тех, кто знает Python и базово знаком с LLM; примеры с пакетами LangChain даны для чтения, исполнимые вставки — на чистом Python.
Курс «LangChain: приложения на LLM» состоит из 7 разделов и 21 урока: Введение: зачем нужен LangChain, Модели и промпты, Цепочки, LCEL и парсеры, Память диалога, Документы, эмбеддинги и retrieval, Агенты, инструменты и стриминг и Практика и продакшн. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Введение: зачем нужен LangChain
- Что такое LangChain и какую проблему он решает
LangChain как фреймворк оркестрации LLM-приложений: от одиночного вызова API к цепочкам, памяти, RAG и агентам.
- Установка, пакеты и первый запуск
Структура пакетов LangChain (core, интеграции, langchain), установка, ключи API и первый вызов модели.
- Экосистема: где LangChain среди RAG, промптов и API
Как LangChain соотносится с прямым API LLM, промпт-инжинирингом и RAG: что фреймворк добавляет поверх.
- Что такое LangChain и какую проблему он решает
2 Модели и промпты
- LLM против Chat models и типы сообщений
Разница между текстовыми LLM и chat-моделями в LangChain, роли сообщений: System, Human, AI.
- PromptTemplate: параметризация промптов
Шаблоны промптов в LangChain: PromptTemplate и ChatPromptTemplate, подстановка переменных, плейсхолдеры.
- Few-shot prompting: примеры в шаблоне
Few-shot промпты в LangChain: как передать модели примеры через FewShotPromptTemplate и зачем это нужно.
- LLM против Chat models и типы сообщений
3 Цепочки, LCEL и парсеры
- LCEL и pipe-синтаксис: цепочки через |
LangChain Expression Language: оператор |, интерфейс Runnable, invoke/batch/stream и составление цепочек.
- Output parsers: структурированный вывод
Парсеры вывода в LangChain: StrOutputParser, JSON и Pydantic-парсеры, как получить структуру вместо текста.
- Ветвление и комбинирование цепочек
RunnableParallel, RunnablePassthrough и RunnableLambda: параллельные ветки и подстановка данных в LCEL.
- LCEL и pipe-синтаксис: цепочки через |
4 Память диалога
- Почему LLM не помнит и что такое память
LLM stateless: модель не хранит контекст между запросами; как память в LangChain имитирует диалог через историю.
- RunnableWithMessageHistory: память в цепочке
Как добавить память к LCEL-цепочке через RunnableWithMessageHistory, session_id и MessagesPlaceholder.
- Стратегии истории: обрезка и суммаризация
Управление длиной истории в LangChain: окно последних сообщений, обрезка по токенам и суммаризация.
- Почему LLM не помнит и что такое память
5 Документы, эмбеддинги и retrieval
- Загрузчики документов и сплиттеры
DocumentLoader и TextSplitter в LangChain: загрузка файлов, разбиение на чанки, chunk_size и overlap.
- Эмбеддинги и векторные хранилища
Embeddings и VectorStore в LangChain: как текст превращается в вектор и как устроен поиск по близости.
- Retrievers и сборка RAG-цепочки
Retriever как интерфейс поиска и сборка RAG-цепочки в LangChain: контекст плюс вопрос в промпт и модель.
- Загрузчики документов и сплиттеры
6 Агенты, инструменты и стриминг
- Инструменты (tools) и tool calling
Что такое tool в LangChain, как описать инструмент через @tool и как модель выбирает его вызов.
- Агенты и паттерн ReAct
Агенты в LangChain и цикл ReAct: рассуждение, выбор инструмента, наблюдение и повтор до финального ответа.
- Стриминг и callbacks
Стриминг ответов через stream() и наблюдаемость через callbacks в LangChain: токены по мере генерации и события.
- Инструменты (tools) и tool calling
7 Практика и продакшн
- Практика: чат-бот по своим документам
Пошаговая сборка Q&A-бота по документам в LangChain: загрузка, чанки, индекс, retriever, RAG-цепочка и память.
- Трейсинг, стоимость и наблюдаемость
Продакшн-LangChain: трейсинг вызовов, контроль стоимости токенов, кэширование и мониторинг качества.
- Безопасность промптов и prompt injection
Prompt injection в LangChain-приложениях: чем опасны RAG и инструменты, как защищаться и валидировать вывод.
- Практика: чат-бот по своим документам