【保姆级教程】LangChain 入门:从大模型原理到你的第一个 AI 应用

【保姆级教程】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 应用系统。


下一篇预告:我们将深入聊天模型的核心能力------如何接入不同大模型、如何配置参数、以及运行时动态切换模型的技巧。