LangChain 是构建大模型应用的超级积木,帮你把「Prompt + 工具 + 多轮对话 + 检索」这些零件像乐高一样快速组装起来。
LangChain 解决了什么问题?
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
核心模块 8 连发
每一模块我们都用“是啥 / 有啥用 / 怎么用”来讲。
1. PromptTemplate:把 prompt 模板化、变量化
把 prompt 当做「模板引擎」,动态填入变量,构建标准输入。
🧠 能力总结:
-
把 你是一个{角色}变成变量模板 -
搭配 RAG / 角色扮演 / 多轮对话,提示词更清晰 -
是 LLMChain、Agent 等模块的基础组件
🔥 示例:
template = "你是{domain}专家,请回答问题:{question}"
prompt = PromptTemplate.from_template(template)
🎯 适合:想要把 prompt 结构化、做组件化的开发者/产品
2. LLMChain:大模型调用链的最小执行单元
一句话总结:LLMChain = prompt + LLM + 一行
.run()。
🧠 能力总结:
-
把 prompt 和大模型绑定起来 -
自动格式化输入 → 请求模型 → 输出结果 -
可复用、可组合、可插入到 Agent 或流水线中
🔥 示例:
chain = LLMChain(prompt=prompt, llm=llm)
chain.run({"question": "LangChain 是什么?"})
🎯 适合:需要复用、组合、调用稳定模型流程的开发场景
3. Tool:把函数/能力变成 Agent 可调用的“工具”
Tool = “你暴露的一个能力”,比如查天气、查数据库、调用 API。
🧠 能力总结:
-
把函数包装起来,Agent 遇到任务自动调用 -
三要素:名称 + 函数 + 描述
🔥 示例:
tool = Tool(
name="查天气",
func=get_weather,
description="输入城市名,返回天气情况"
)
🎯 适合:想让模型调用已有功能的项目(调用你司 API ?写报销单?)
4. Agent:大模型 + 工具 + 推理控制器
你可以理解为“自动调度工具 + 回答用户问题”的智能体。
🧠 能力总结:
-
自动判断何时调用哪个 Tool -
支持多种 Agent 类型(ZeroShot、Function Call 等) -
内置思考链(ReAct)、流程控制(AgentExecutor)
🔥 示例:
agent = initialize_agent(
tools=[tool],
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION
)
🎯 适合:构建多工具、多轮对话、需要动态推理的应用场景
5. Memory:让 Agent 记住“你刚刚说了什么”
没记忆的大模型只能一问一答,有记忆才能“连续对话”。
🧠 常见类型:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
🔥 示例:
ConversationBufferMemory(memory_key="chat_history")
🎯 适合:对话机器人、连续问答、历史上下文强依赖的产品
6. VectorStore:文本转向量 + 存储
就是“文档数据库 + 向量搜索引擎”。
🧠 常用库对比:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
🔥 示例:
docsearch = FAISS.from_texts(texts, embedding)
🎯 适合:RAG、企业知识库、文本/代码搜索场景
7. Retriever:从向量库中找最像的文档
它是 VectorStore 的“搜索接口”。
🧠 能力总结:
-
支持 TopK 检索 -
搭配 RAG、QA 模块
🔥 示例:
retriever.get_relevant_documents("LangChain 是啥?")
8. RetrievalQA:一行代码跑通“基于知识库问答”
最简单的 RAG 构建方式,LangChain 的杀手级组件之一。
🔥 示例:
qa = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
qa.run("LangChain 是干嘛的?")
🎯 适合:快速接入“文档问答”功能
总结一句话:
LangChain = 「Prompt + 模型 + 工具 + 记忆 + 检索」的组件化框架,用来构建多轮对话、文档问答、Agent 应用的乐高积木库。


