【保姆级教程】LangChain 入门:从大模型原理到你的第一个 AI 应用
本文是 LangChain 系列第一篇,带你理解大模型的核心概念,认识 LangChain 框架的定位与价值,为后续实战打下坚实基础。
一、大模型是怎么接入你的代码的?
想用大模型做应用,第一步是把它"接进来"。目前主流有三种方式:
1. API 调用(最常见)
直接在代码中调用官方提供的 API 接口,把 API Key 换成自己的就行。缺点是需要自己处理 HTTP 请求和 JSON 响应。
2. SDK 接入(推荐新手)
安装官方提供的 SDK 工具包,按照规定的格式写代码即可。不用自己封装请求和解析结果,但仍需提供 API Key。这是最推荐的入门方式。
3. 本地部署(土豪专属)
把大模型的成品代码部署在本地机器上,通过推理引擎(如 Ollama)跑起来。成本极高------比如 DeepSeek V4 Pro 有 1.6 万亿参数,成品代码将近 900GB,需要一次性全部加载到内存,对硬件要求非常苛刻。
二、嵌入模型:大模型的"前置过滤器"
大语言模型是生成式模型 ------你问它问题,它生成答案。而嵌入模型是表示型模型------它把文本转换成一组数字(向量),让计算机能理解"含义"。
核心思想:含义相近的文本,对应的向量也相近。通过向量之间的距离,计算机就能判断信息之间的关联。
嵌入模型能干什么?
语义搜索:传统搜索搜"苹果",只能找到包含"苹果"这个词的文档。语义搜索能理解"一种红色的水果"和"苹果"是相关的,即使文档中没有出现这些词也能匹配到。
RAG(检索增强生成):这是嵌入模型最重要的应用场景。当用户提问时,嵌入模型先在知识库中找到相关文档,再把文档和问题一起交给大模型回答,大幅提升回答的准确性和针对性。
推荐系统:把用户行为和商品属性都编码成向量,通过计算向量相似度进行精准推荐。
异常检测:正常数据的向量会聚集在一起,远离聚集区的"孤岛点"往往就是异常。
三、LLM 的六大痛点
直接使用原生大模型会遇到这些问题:
| 痛点 | 说明 |
|---|---|
| 幻觉 | 编造不存在的答案,比如让你调用一个根本不存在的 API |
| 提示词不统一 | 没有规范的提示词管理,输出质量不稳定 |
| 模型切换成本高 | 换个模型几乎要重写所有交互代码 |
| 输出非结构化 | 大模型返回的是自然语言文本,程序难以直接解析 |
| 知识有截止日期 | 训练数据之外的最新信息一概不知 |
| 不会调用外部工具 | 无法自主决定何时、如何调用外部 API 或数据库 |
这些问题,正是 LangChain 要解决的。
四、LangChain 是什么?
LangChain 是用于开发由大语言模型驱动的应用程序的框架。 它把 NLP 流程拆解为标准化组件,让你像搭积木一样构建 AI 应用。
组件化思维
一个完整的 AI 应用可能包含这些组件:
- 文档加载器 → 文本分割器 → 嵌入模型 → 向量存储
- 用户输入 → 语义检索 → 提示词模板 → 大模型 → 输出解析器
每个环节都是一个独立组件,可以自由组合。
链式执行(LCEL)
LangChain 的核心设计精髓是以链式方式整合多个组件。比如你想借助提示词模板提问大模型:
python
# 定义提示词模板和大模型
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个翻译助手"),
("user", "{text}")
])
model = ChatDeepSeek(model="deepseek-v4-flash")
# 用 | 运算符串联成链
chain = prompt | model | StrOutputParser()
# 执行链
result = chain.invoke({"text": "hello, how are you?"})
print(result)
只需执行一次
chain.invoke(),提示词模板、大模型、输出解析器就会依次自动执行。
五、LangGraph:从链到图的进化
LangChain 的链式结构简单好用,但面对复杂场景就力不从心了:
- 无法循环:链是单向的,不能跳回上一步重新提问
- 无状态:每次调用"干完就忘",多轮对话需要手动管理
- 无法人工介入:链中断后难以无缝恢复
- 分支僵化:不同意图需要不同流程,链式实现很笨拙
LangGraph 用图式结构解决了这些问题。 在 LangGraph 中:
- 节点(Node)可以连接到任何节点,包括自己 → 支持循环
- 状态对象在整个图执行过程中自动持久化 → 自带状态管理
- 可以在任意时刻暂停、检查、修改状态 → 支持人工介入
- 通过条件边动态路由到不同子图 → 灵活分支
简单说:LangChain 适合线性流程,LangGraph 适合复杂、有状态、需要循环和分支的 AI 应用。
六、总结
| 对比项 | LangChain | LangGraph |
|---|---|---|
| 结构 | 链式(A → B → C) | 图式(任意连接) |
| 适用场景 | 简单线性流程 | 复杂工作流 |
| 状态管理 | 需手动维护 | 内置自动管理 |
| 循环/分支 | 不支持 | 原生支持 |
| 人工介入 | 困难 | 无缝支持 |
学习路线建议:先掌握 LangChain 的基础组件和链式编程思维,再进阶 LangGraph 构建复杂的 AI 应用系统。
下一篇预告:我们将深入聊天模型的核心能力------如何接入不同大模型、如何配置参数、以及运行时动态切换模型的技巧。