Архитектура LangChain и LCEL
Компоненты LangChain, синтаксис конвейеров LCEL, цепочки, интерфейсы выполняемых объектов, потоковые цепочки
«Архитектура LangChain и LCEL» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Что такое LangChain?
LangChain — это платформа для создания приложений на основе LLM, объединяющая повторно используемые компоненты: промпты, модели, анализаторы, средства поиска и память. Вместо ручного соединения вызовов API вы создаёте цепочки, передающие данные от одного компонента к следующему.
pip install langchain langchain-openaiОсновные строительные блоки
Почти в каждой цепочке встречаются три компонента: PromptTemplate (форматирует входные данные в промпт), чат-модель (LLM) и анализатор результата (очищает результат). LangChain соединяет их в конвейер.
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParserСоздание шаблона промпта
Шаблон промпта содержит заполнители, значения для которых подставляются во время выполнения. Используйте синтаксис {variable}. Когда вы вызываете цепочку со словарём, значения этих ключей подставляются в шаблон.
prompt = ChatPromptTemplate.from_template(
"Explain {topic} to a {audience} in two sentences."
)LCEL: синтаксис конвейера
LCEL (язык выражений LangChain) объединяет компоненты с помощью оператора конвейера |. Результат каждого шага передаётся следующему, поэтому запись читается слева направо, как конвейер Unix.
model = ChatOpenAI(model="gpt-4o")
chain = prompt | model | StrOutputParser()Зачем нужен StrOutputParser?
Чат-модель возвращает объект сообщения, а не обычную строку. StrOutputParser() извлекает текст .content, поэтому цепочка выдаёт чистую строку. Без него вы получили бы структурированное сообщение.
Вызов цепочки
Запустите цепочку с помощью chain.invoke(), передав словарь, который заполняет переменные шаблона. Результатом будет строковый вывод после разбора.
result = chain.invoke({"topic": "vectors", "audience": "beginner"})
print(result)Потоковая передача данных цепочкой
Для вывода в реальном времени вызывайте chain.stream(), а не invoke. Этот метод возвращает генератор, выдающий фрагменты результата по мере их создания моделью, как и потоковая передача через API без обёртки.
for chunk in chain.stream({"topic": "RAG", "audience": "engineer"}):
print(chunk, end="", flush=True)Пакетная обработка нескольких входных данных
Эффективно обрабатывайте множество входных данных с помощью chain.batch(). Передайте список входных словарей, и LangChain выполнит их одновременно, вернув список результатов в том же порядке.
inputs = [
{"topic": "loops", "audience": "kid"},
{"topic": "recursion", "audience": "kid"}
]
results = chain.batch(inputs)RunnablePassthrough
RunnablePassthrough передаёт входные данные без изменений. Он необходим, когда цепочка должна сохранить исходные входные данные вместе с преобразованным значением; это часто требуется в RAG, где передаются и вопрос, и найденный контекст.
from langchain_core.runnables import RunnablePassthrough
chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt | model | StrOutputParser()
)Объединение с помощью словарей
Если шаг представлен словарём, каждое значение обрабатывается параллельно, а полученные результаты образуют входные данные для следующего шага. Так создаются промпты с несколькими входами, лежащие в основе конвейеров поиска: каждый ключ сопоставляется с выполняемым компонентом или компонентом без преобразований.
parallel = {
"context": retriever,
"question": RunnablePassthrough()
}
# parallel feeds {"context": ..., "question": ...} downstreamПочему LCEL важен
Цепочки LCEL сразу получают потоковую передачу, пакетную обработку и асинхронность, легко читаются и соединяются, как детали конструктора. Один и тот же синтаксис конвейера масштабируется от однострочного промпта до полноценной системы RAG.
Быстрая проверка
Проверьте, насколько хорошо вы понимаете LCEL.
Повторение: архитектура и LCEL
Вы объединили компоненты LangChain с помощью оператора конвейера: prompt | model | StrOutputParser(). Вы запускали цепочки с помощью invoke, передавали результаты потоково с помощью stream и обрабатывали множество входных данных с помощью batch. RunnablePassthrough и объединение словарей позволяют создавать конвейеры с несколькими входами для RAG.
Часто задаваемые вопросы
Урок «Архитектура LangChain и LCEL» бесплатный?
Да — полный текст урока «Архитектура LangChain и LCEL» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Архитектура LangChain и LCEL»?
Компоненты LangChain, синтаксис конвейеров LCEL, цепочки, интерфейсы выполняемых объектов, потоковые цепочки Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Архитектура LangChain и LCEL»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Архитектура LangChain и LCEL
- Загрузка, разбиение и эмбеддинг документов
- Векторные хранилища: Chroma и FAISS
- Создание системы вопросов и ответов RAG от начала до конца