LangChain for Beginners: Build Your First AI Agent
LangChain is the framework that powers most production AI applications. This step-by-step guide shows you how to build a real AI agent using LangChain.
LangChain для начинающих: создайте своего первого ИИ-агента
LangChain — самый популярный фреймворк для создания ИИ-приложений в производственной среде. Если вы уже работаете напрямую с OpenAI API, LangChain выведет вас на следующий уровень.
Что такое LangChain?
LangChain — это open-source фреймворк на Python (и JavaScript), упрощающий создание приложений с LLM. Он абстрагирует промпты, память и инструменты с помощью переиспользуемых компонентов.
Решаемые проблемы:
- Давать ИИ память между разговорами
- Подключать ИИ к вашим документам и базам данных
- Создавать агентов с инструментами (веб-поиск, калькулятор, API)
- Объединять несколько вызовов ИИ в пайплайны
Установка
pip install langchain langchain-openai langchain-community chromadb python-dotenv
Файл .env:
OPENAI_API_KEY=ваш-ключ-здесь
Первая цепочка
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
модель = ChatOpenAI(model="gpt-4o-mini", temperature=0)
промпт = ChatPromptTemplate.from_messages([
("system", "Ты полезный ИИ-ассистент. Давай точные и краткие ответы."),
("user", "{вопрос}")
])
цепочка = промпт | модель | StrOutputParser()
результат = цепочка.invoke({"вопрос": "Что такое LangChain?"})
print(результат)
Добавление памяти
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.messages import HumanMessage, AIMessage
модель = ChatOpenAI(model="gpt-4o-mini")
промпт = ChatPromptTemplate.from_messages([
("system", "Ты полезный ассистент."),
MessagesPlaceholder(variable_name="история"),
("user", "{ввод}")
])
цепочка = промпт | модель
история = []
def чат(сообщение: str) -> str:
ответ = цепочка.invoke({"история": история, "ввод": сообщение})
история.append(HumanMessage(content=сообщение))
история.append(AIMessage(content=ответ.content))
return ответ.content
print(чат("Привет, меня зовут Иван"))
print(чат("Как меня зовут?")) # Помнит!
RAG-система: ИИ отвечает из ваших документов
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_core.documents import Document
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
документы = [
Document(page_content="LearnGeni предлагает 30 руководств по ИИ по $5 каждое."),
Document(page_content="После покупки пользователи получают пожизненный доступ."),
]
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(документы, embeddings)
retriever = vectorstore.as_retriever()
промпт = ChatPromptTemplate.from_template("""
Ответьте на основе контекста:
Контекст: {контекст}
Вопрос: {вопрос}
""")
модель = ChatOpenAI(model="gpt-4o-mini")
цепочка = (
{"контекст": retriever, "вопрос": RunnablePassthrough()}
| промпт | модель
)
результат = цепочка.invoke("Сколько стоят руководства LearnGeni?")
print(результат.content)
Первый агент с инструментами
from langchain_openai import ChatOpenAI
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.tools import tool
@tool
def получить_погоду(город: str) -> str:
"""Получает погоду в городе."""
return f"Погода в {город}: 15°C, солнечно"
@tool
def вычислить(выражение: str) -> str:
"""Вычисляет математическое выражение."""
try:
return str(eval(выражение))
except:
return "Ошибка вычисления"
инструменты = [получить_погоду, вычислить]
модель = ChatOpenAI(model="gpt-4o", temperature=0)
промпт = ChatPromptTemplate.from_messages([
("system", "Ты полезный ассистент с инструментами."),
("user", "{input}"),
MessagesPlaceholder(variable_name="agent_scratchpad"),
])
агент = create_tool_calling_agent(модель, инструменты, промпт)
executor = AgentExecutor(agent=агент, tools=инструменты, verbose=True)
результат = executor.invoke({"input": "Какая погода в Москве? И сколько будет 15 × 23?"})
print(результат["output"])
Хотите освоить LangChain с нуля до продвинутого уровня? Полное руководство LearnGeni включает реальные проекты и лучшие паттерны 2026 года. Посмотреть все руководства.
Earn Your International AI Certificate
This article is part of the LearnGeni AI Mastery Program — 30 comprehensive guides in 50+ languages. Complete all 30 and earn a certificate backed by WhatsGeni (Official Meta AI Partner), recognized in 50+ countries.