本篇读完之后,不只是“知道 LangChain 有哪些组件”,而是能在脑中自动拼出一条完整的 AI 系统骨架。
如果你把大模型当作一颗恒星,那 LangChain,就是让引力成型、让行星运行的那套宇宙法
LLMs 与 Chat Models
大模型不是一个物种,而是两种气质
LLMs:冷静、克制、像函数
LLMs(Large Language Models) 你可以把它理解为:
一个
text -> text的超级函数
输入:一段字符串
输出:一段字符串
典型用途:
- 文本补全
- 翻译
- 总结
- 结构化输出(JSON / SQL / YAML)
LangChain 中的代表:
OpenAIHuggingFacePipelineLlamaCppQwen / Baichuan / Yi
特征
- 无上下文意识
- 无“对话记忆”
- 更适合嵌入到 pipeline 中
Chat Models:有角色、有语境、有情绪
Chat Models 是 LLM 的“社会化版本”。
它们不再接收纯文本,而是接收 Message 序列:
[
{"role": "system", "content": "你是一个GIS专家"},
{"role": "user", "content": "解释什么是RAG"}
]
优势
- 支持 system / user / assistant 角色
- 更贴近真实对话
- 更适合 Agent
LangChain 抽象
ChatOpenAIChatQwenChatAnthropic
现实中: LLMs 更像发动机 Chat Models 更像驾驶员
Prompts 与 Prompt Templates
提示词不是咒语,是程序
Prompt:一次性灵感
Prompt 是你和模型的第一次握手。
请你用GIS专家的身份解释什么是栅格数据
问题在于:
- 不可复用
- 不可参数化
- 不可维护
Prompt Template:工程化的开始
Prompt Template 的本质:
把自然语言,变成“可编排的接口”
from langchain.prompts import PromptTemplate
template = """
你是一名{role}
请用{style}的方式解释:{topic}
"""
prompt = PromptTemplate(
input_variables=["role", "style", "topic"],
template=template
)
价值
- 参数化
- 可测试
- 可版本管理
- 可 A/B
再进阶
ChatPromptTemplateMessagesPlaceholder- Few-shot Prompt
Prompt ≠ 文案 Prompt = AI 系统的配置文件
Chains
链,是秩序的开始
什么是 Chain?
Chain 就是:
把多个步骤,锁进一条确定性的因果链
最经典:
prompt → LLM → output
LangChain 中:
from langchain.chains import LLMChain
为什么 Chain 很重要?
因为现实任务从来不是“一问一答”。
例如:
- 用户问题
- 判断是否需要查资料
- 检索知识
- 重写问题
- 生成答案
- 格式化输出
📌 Chain 的意义
- 控制流程
- 降低不确定性
- 提升可调试性
常见 Chain 类型
| Chain | 用途 |
|---|---|
| LLMChain | 单模型调用 |
| SequentialChain | 多步串联 |
| RouterChain | 动态路由 |
| RetrievalQA | RAG 专用 |
Chain 是 工程理性 Agent 是 认知自由
Agents
当模型开始“自己想下一步”
Agent 是什么?
Agent = LLM + Tools + Reasoning Loop
核心循环:
Thought → Action → Observation → Thought → …
它不是“被安排”,而是:
根据当前状态,决定下一步该干什么
Tools:Agent 的手和脚
Agent 不怕模型笨, 怕的是——它什么都不能做。
Tool 可以是:
- 搜索
- 数据库查询
- Python 执行
- GIS 空间分析
- API 调用
📌 在你熟悉的领域里:
- Tool = 业务系统能力封装
Chain vs Agent(说句实话)
| 维度 | Chain | Agent |
|---|---|---|
| 可控性 | 极高 | 较低 |
| 灵活性 | 低 | 极高 |
| 调试难度 | 低 | 高 |
| 生产环境 | 主流 | 谨慎 |
👉 真正成熟的系统:Chain + Agent 混合
Memory
没有记忆的 AI,只会健忘地聪明
为什么需要 Memory?
否则你会看到:
用户:我刚才说的那张表 AI:哪张?
Memory 让模型:
- 知道“我们聊到哪了”
- 知道“你是谁”
- 知道“什么重要,什么该忘”
Memory 类型
| 类型 | 说明 |
|---|---|
| ConversationBufferMemory | 原始对话 |
| ConversationSummaryMemory | 摘要式 |
| VectorStoreMemory | 语义记忆 |
| EntityMemory | 人物 / 概念 |
📌 真相:
- 短期记忆 ≠ 长期知识
- 长期知识 → Retriever
Retrievers 与 VectorStores
这是 RAG 的心脏
VectorStore:记忆的形态
文本 → Embedding → 向量 → 存储
常见:
- FAISS
- Chroma
- Milvus
- PGVector
Retriever:记忆的方式
Retriever 决定:
- 查不查
- 查多少
- 查哪儿
retriever = vectorstore.as_retriever(
search_type="similarity",
k=4
)
RAG 的本质
不是“模型变聪明了” 而是“模型终于开始查资料了”
LangChain 中的黄金结构:
User Question
→ Retriever
→ Context
→ Prompt
→ LLM
→ Answer
📌 对你这种 GIS / 工程 / 专业领域用户来说: RAG 是刚需,不是锦上添花
LLM / ChatModel —— 思考核心
Prompt —— 指令系统
Chain —— 稳定流程
Agent —— 自主决策
Memory —— 对话连续性
Retriever —— 查资料方式
VectorStore —— 知识存储形态