一、LangChain 初识:从“搭积木”到“造应用”
说实话,我第一次接触 LangChain 的时候,第一反应是:这不就是个套壳工具吗?
后来在项目里被各种 LLM 调用、Prompt 拼接、上下文管理折磨得够呛,才明白——LangChain 不是套壳,它是把大模型应用开发里那些重复、琐碎、容易出错的事,全给你标准化了。
1.1 什么是 LangChain?
简单说,LangChain 是一个大语言模型(LLM)应用开发框架。它帮你把模型调用、提示词管理、数据连接、多步骤流程、记忆保持这些事,封装成可组合的模块。
你想想看,如果每次写个 AI 应用都要从零开始处理 Token 计数、上下文窗口、API 重试、结果解析……那开发效率得多低?LangChain 就是来解决这个问题的。
一句话总结:LangChain = LLM 调用的“脚手架” + “工具箱” + “胶水代码”。
1.2 为什么需要 LangChain?
我刚开始用 GPT API 时,写过一个简单的问答机器人。代码大概长这样:
import openai
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)
看起来挺简单对吧?但一旦需求变复杂——比如要多轮对话、要检索文档、要调用外部工具、要记住用户偏好——代码就开始失控了。
LangChain 解决了三个核心痛点:
- 标准化接口:不管用 OpenAI、Claude 还是本地模型,调用方式统一
- 组件化组合:提示、模型、输出解析器像乐高一样拼装
- 内置最佳实践:流式输出、重试机制、Token 管理,不用自己造轮子
我的经验:有一次客户要求三天内上线一个“文档问答助手”。如果用原生 API 写,光处理 PDF 分块、向量存储、检索排序就得一周。用 LangChain 的文档加载器 + 向量链,一天搞定。嗯,这就是框架的价值。
1.3 LangChain 的核心概念
LangChain 有五个核心模块,我习惯把它们记成“模型、提示、链、代理、记忆”。下面这张图能帮你快速建立整体认知:
1.4 核心概念速览表
| 模块 | 一句话解释 | 我遇到的典型场景 |
|---|---|---|
| 模型 (Models) | LLM 的“遥控器”,统一调用不同模型 | 同一个应用切换 GPT-4 和 Claude,改一行配置就行 |
| 提示 (Prompts) | 模板化的 Prompt,动态填充变量 | 做客服机器人时,把用户问题嵌入固定模板 |
| 链 (Chains) | 把多个操作串成流水线 | 先翻译、再总结、最后格式化输出 |
| 代理 (Agents) | 让 LLM 自己决定“下一步做什么” | 让模型自动选择调用搜索还是计算器 |
| 记忆 (Memory) | 让对话有“记忆力” | 用户说“刚才那个问题”,模型能理解指代 |
避坑提醒:我曾经在项目里把“链”和“代理”搞混了。记住:链是固定的流程,代理是动态决策。如果你确定步骤顺序不变,用链;如果模型需要自己判断调用什么工具,用代理。
1.5 安装与第一个 Demo
安装 LangChain 非常简单。我个人习惯用 pip 安装,建议在虚拟环境里操作:
# 创建虚拟环境(推荐)
python -m venv langchain_env
source langchain_env/bin/activate # Windows 用 langchain_env\Scripts\activate
# 安装 LangChain
pip install langchain
# 如果需要调用 OpenAI 模型,再装这个
pip install openai
# 验证安装
python -c "import langchain; print(langchain.__version__)"
装好之后,我们来写第一个 Demo。这个例子会调用 OpenAI 的模型,让它回答一个问题:
from langchain.llms import OpenAI
# 初始化模型(记得设置 OPENAI_API_KEY 环境变量)
llm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0)
# 直接调用
response = llm("用一句话解释什么是 LangChain")
print(response)
运行后你会看到类似这样的输出:
LangChain 是一个用于开发大语言模型应用的框架,它提供了模块化的工具来简化模型调用、提示管理和流程编排。
嗯,就这么简单。但别急——这只是最基础的用法。后面我们会一步步深入。
小技巧:如果你没有 OpenAI 的 API Key,可以用 HuggingFace 的免费模型替代:
from langchain.llms import HuggingFaceHub
llm = HuggingFaceHub(repo_id="google/flan-t5-small")
print(llm("What is LangChain?"))
这样也能跑通,只是模型能力弱一些,但用来学习框架完全够用。
1.6 本章小结
到这,你应该对 LangChain 有了一个初步印象:
- 它是个LLM 应用开发框架,不是某个具体的模型或工具
- 核心五大模块——模型、提示、链、代理、记忆——覆盖了大部分开发场景
- 安装简单,第一个 Demo 只需要几行代码
说实话,刚开始接触时不用急着把所有概念都搞透。先跑起来,感受一下“用框架写 AI 应用”和“裸调 API”的区别,后面自然就理解了。