LangChain Python 入门教程(简明版)
·
1. LangChain 是什么?
LangChain 是一个帮助你构建 LLM 应用的 Python 框架。你可以用它实现:
-
智能客服
-
RAG 知识库问答
-
Agent 智能工具执行
-
复杂任务流程
-
多模型协作
-
记忆、上下文管理
支持 LLM:
-
OpenAI / DeepSeek / 阿里通义 Qwen / 玲珑 / 本地模型 / Ollama …
2. 安装
pip install langchain langchain-community langchain-openai
pip install sentence-transformers chromadb
如果使用 DeepSeek 或通义:
pip install dashscope
pip install openai # 兼容 deepseek 官方 SDK 写法
3. 第一个示例:LLM 调用
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="deepseek-chat",
api_key="your-key"
)
resp = llm.invoke("你好,介绍一下你自己")
print(resp)
4. 会话记忆(Memory 示例)
LangChain 提供记忆模块,让对话能“记住”上下文。
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="deepseek-chat")
memory = ConversationBufferMemory()
chain = ConversationChain(
llm=llm,
memory=memory
)
print(chain.run("你好,我叫小明"))
print(chain.run("我叫什么名字?"))
会得到:
你好,小明!
你叫小明啊,我当然记得
5. 结构化输出(非常关键)
可以要求 LLM 返回 JSON(用于提取产品需求、字段抽取等)。
from langchain_openai import ChatOpenAI
from langchain.output_parsers import StructuredOutputParser, ResponseSchema
llm = ChatOpenAI(model="deepseek-chat")
schemas = [
ResponseSchema(name="city", description="用户的归属地"),
ResponseSchema(name="flow", description="流量需求"),
ResponseSchema(name="rent", description="月租上限"),
]
parser = StructuredOutputParser.from_response_schemas(schemas)
format_instructions = parser.get_format_instructions()
prompt = f"""
用户输入:我要一个湖南长沙流量最大的套餐
请提取需求。
{format_instructions}
"""
resp = llm.invoke(prompt)
print(parser.parse(resp.content))
输出示例:
{
"city": "湖南长沙",
"flow": "最大",
"rent": null
}
6. RAG 检索问答(知识库)
6.1 文档向量化写入 Chroma
from langchain_community.vectorstores import Chroma
from langchain.embeddings import HuggingFaceEmbeddings
embedding = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
texts = ["LangChain 是一个 LLM 框架", "DeepSeek 是一个开源模型"]
db = Chroma.from_texts(texts, embedding, persist_directory="./chroma_db")
6.2 检索 + LLM 生成答案
retriever = db.as_retriever(k=2)
docs = retriever.invoke("什么是 LangChain")
print(docs)
7. 工具(Tool)+ Agent 智能执行
比如你要做一个“查询产品套餐”的工具:
from langchain.agents import Tool, initialize_agent
from langchain_openai import ChatOpenAI
def search_product(city: str, need_flow: str):
return f"匹配到:{city} - {need_flow} - 月租 39 元套餐"
tool = Tool(
name="search_product",
description="根据归属地与需求查询产品",
func=lambda q: search_product(**q)
)
llm = ChatOpenAI(model="deepseek-chat")
agent = initialize_agent(
tools=[tool],
llm=llm,
agent="zero-shot-react-description",
verbose=True
)
res = agent.run(
"我要一个湖南长沙流量最大的产品"
)
print(res)
Agent 会自动:
-
识别意图
-
调用工具
-
返回结果
8. 在生产环境使用(强烈推荐)
-
LangGraph(构建多步骤智能体流程,比 agent 更稳定)
-
流式输出 streaming=True
-
自定义记忆(Redis / DB)
-
工具执行自动化
-
事件日志 + 调试(LangSmith)
9. 常见 FAQ
❓ 为什么会报错 “Missing 'Action:' after 'Thought:'”?
因为 你的模型不是 ReAct 格式 或 输出格式不符合 Agent 预期。
解决方法:
使用:
agent="zero-shot-react-description"
或使用 LangGraph 替代 Agent(推荐)。
10. 完整示例:构建一个“产品推荐智能客服”
更多推荐



所有评论(0)