LangChain经典例子
如果你想学习 LangChain,最经典的例子通常都是围绕 LLM + Prompt + Memory + RAG + Agent + Tools 这几个核心概念展开。下面按照入门到进阶列出一些最经典的示例(Python)。
1. Hello World(Prompt + LLM)
最简单的 LangChain 程序。
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
llm = ChatOpenAI(model="gpt-4.1")
response = llm.invoke([
HumanMessage(content="介绍一下 LangChain")
])
print(response.content)
这是最基础的:
User
↓
LLM
↓
Answer
2. PromptTemplate
Prompt 不写死,而是模板化。
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_template(
"请用一句话介绍 {topic}"
)
chain = prompt | llm
print(chain.invoke({"topic": "机器学习"}).content)
LangChain 最经典的设计就是:
Prompt
│
▼
Model
利用 | 运算符组成 LCEL(LangChain Expression Language)。
3. Output Parser
让模型返回固定格式。
from langchain_core.output_parsers import StrOutputParser
chain = (
prompt
| llm
| StrOutputParser()
)
result = chain.invoke({"topic": "Python"})
print(result)
Parser 可以解析:
-
字符串
-
JSON
-
Pydantic
-
List
例如:
Prompt
↓
LLM
↓
Parser
4. Sequential Chain(流水线)
多个步骤连接。
from langchain_core.prompts import ChatPromptTemplate
summary_prompt = ChatPromptTemplate.from_template(
"总结下面内容:{text}"
)
translate_prompt = ChatPromptTemplate.from_template(
"把下面内容翻译成中文:{text}"
)
summary_chain = summary_prompt | llm | StrOutputParser()
translate_chain = translate_prompt | llm | StrOutputParser()
summary = summary_chain.invoke({"text": article})
result = translate_chain.invoke({"text": summary})
print(result)
流程:
Article
↓
Summary
↓
Translate
5. RAG(最经典)
这是目前 LangChain 使用最多的例子。
步骤:
PDF
↓
Split
↓
Embedding
↓
Vector Store
↓
Retriever
↓
LLM
代码示例:
from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings
vectorstore = Chroma(
persist_directory="./db",
embedding_function=OpenAIEmbeddings()
)
retriever = vectorstore.as_retriever()
docs = retriever.invoke("LangChain 是什么?")
再接入 LLM:
from langchain.chains import RetrievalQA
qa = RetrievalQA.from_chain_type(
llm=llm,
retriever=retriever
)
qa.invoke("LangChain 是什么?")
这是所有 AI ChatPDF 的基本原理。
6. Memory(聊天机器人)
from langchain.memory import ConversationBufferMemory
例如:
User:
我叫Tom
↓
Memory 保存
↓
User:
我叫什么?
↓
LLM 可以回答:
你叫 Tom。
Memory 的作用就是:
历史聊天
│
▼
Prompt
│
▼
LLM
7. Tool Calling
给模型调用工具。
例如:
from langchain_core.tools import tool
@tool
def multiply(a: int, b: int):
"""Multiply two numbers."""
return a * b
然后绑定:
llm_with_tools = llm.bind_tools([multiply])
模型会输出:
Call Tool:
multiply(3,5)
工具执行:
15
再返回模型。
8. Agent(最经典)
Agent 可以自己决定什么时候调用工具。
User
│
▼
Agent
│
┌─┴────────────┐
│ │
Google Calculator
│ │
└──────┬───────┘
▼
LLM
例如:
agent.invoke({
"input": "北京现在天气怎么样?"
})
Agent 会:
-
判断需要天气
-
调用天气 API
-
获取结果
-
总结回答
9. SQL Agent
连接数据库。
User
↓
Agent
↓
SQL
↓
Database
↓
Answer
例如:
数据库有:
users
orders
products
用户:
销量最高的商品是什么?
Agent 自动生成:
SELECT ...
执行 SQL 后返回结果。
10. 多 Agent
例如:
Boss Agent
│
┌───────────┼────────────┐
▼ ▼ ▼
Search Coding Writing
Agent Agent Agent
每个 Agent 擅长不同任务。
LangChain 最经典的整体架构
User
│
▼
PromptTemplate
│
▼
ChatModel
│
┌─────────┴─────────┐
▼ ▼
OutputParser Tool Calling
│
▼
Search / DB / API
│
▼
LLM
│
▼
Response
如果加入 RAG:
Documents
│
Text Splitter
│
Embedding
│
Vector Store
│
Retriever
│
▼
PromptTemplate → LLM → Output
学习路线建议
如果你是第一次接触 LangChain,建议按下面顺序练习:
-
LLM 调用:学会
ChatOpenAI、invoke() -
PromptTemplate:掌握模板化提示词
-
LCEL:使用
|将 Prompt、模型、解析器组合成链 -
OutputParser:解析字符串、JSON、结构化输出
-
RAG:文档加载、切分、Embedding、向量检索、问答
-
Tool Calling:让模型调用自定义函数或外部 API
-
Agent:构建能自主选择工具完成复杂任务的智能体
-
LangGraph:当流程需要状态管理、分支、循环或多智能体协作时,进一步学习基于图的编排框架。
其中,RAG + Tool Calling + Agent(或更现代的 LangGraph) 是目前生产环境中最常见、也是最值得深入掌握的能力。

浙公网安备 33010602011771号