一句话摘要:LangChain 用“乐高式”组件把大语言模型、检索、工具调用、记忆等能力拼在一起,让个人开发者也能一周内做出可落地的 AI 应用。
1. 背景与定位
大模型热潮下的新痛点:Prompt 尝试很快做出 Demo,但要把 Demo 变为“可维护、可扩展”的产品,就需要统一封装模型、存储、第三方 API 以及评估流程。
LangChain 的角色:在“底层模型 ↔ 场景需求”之间加一层 松耦合胶水:把常见步骤(调用 LLM → 解析 → 再调用工具)抽象成可复用模块。
GitHub Star 已突破 10 万,活跃度居同类框架首位。
2. 成长轨迹 & 资本故事
关键节点 | 事件 & 指标 |
---|---|
2022-10-25 | Harrison Chase 提交首个开源版本,主打 PromptTemplate 封装。 |
2023-03 | 获 Benchmark 领投 1000 万美元种子轮。 |
2024-02 | Sequoia 领投 2500 万美元 Series A,同时发布商用产品 LangSmith。 |
2025-05 | Star 数破 100k,日均 Commit 近 30 次。 |
资金+社区双轮驱动:融资保证了官方持续迭代;庞大社区贡献了集成适配、最佳实践和教程。
3. 组件总览(作者视角解读)
组件 | 作用 | 使用感受 |
---|---|---|
LLM & Prompt | 屏蔽各家 API 差异;支持模板变量 | 迁移模型非常轻松 |
Chains | 把多步调用串成管道 | 逻辑复用、易测试 |
Retrievers / Vector Stores | 外部知识注入 (RAG) | Milvus / Chroma 一键对接 |
Agents & Tools | 让 LLM 决策“该用哪个工具” | 复杂度高,需谨慎上线 |
Memory | 保存状态 / 历史 | 聊天场景刚需 |
Evaluation | 自动对比输出质量 | 适合 A/B 调参 |
4. 优劣势对照
👍 优势 | 👎 待改进 |
---|---|
生态活跃,几乎“什么都有适配” | 版本更新快,Breaking Change 多 |
Python / JS 双 SDK,上手门槛低 | 学习资料杂,需甄别质量 |
LangServe + LangSmith 打通部署与监控 | 真正高并发仍需自行做缓存/队列 |
5. 环境快速搭建(Windows / macOS / Linux 通用)
# Python ≥3.9 python -m
pip install -U langchain openai tiktoken
# 可选:JupyterLab 便于调试
pip install jupyterlab
💡 小贴士:生产环境建议锁版本,例如
langchain==0.3.*
,避免大版本升级引起脚本失效。
6. 实战 Demo:随机抓一句中文短句,然后让大模型延伸成一句励志/幽默点评
# ========= 0. 手动写入环境变量(跟你的示范保持一致) =========
import os, requests
os.environ["OPENAI_KEY"] = "RiX37aHCIi"
os.environ["OPENAI_API_BASE"] = "https://api.gptsapi.net/v1"
# ========= 1. 初始化 LangChain 模型 =========
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model = "o1-mini",
temperature = 0,
api_key = os.environ.get("OPENAI_KEY"),
base_url = os.environ.get("OPENAI_API_BASE"),
)
# ========= 2. 拉取一句随机中文短句(Hitokoto 公共接口) =========
quote = requests.get("https://v1.hitokoto.cn/?encode=json", timeout=6).json()["hitokoto"]
# ========= 3. 构造提示词并调用 LLM =========
prompt = (
f"你是一名中文段子手。
"
f"原句:{quote}。
"
f"对这句话进行幽默或励志点评。"
)
reply = llm.invoke(prompt).content.strip()
# ========= 4. 输出 =========
print("原句:", quote)
print("AI 点评:", reply)
运行示例:
原句: 人生如逆旅,我亦是行人。
AI 点评: 逆风也能起飞,别停在原地感慨。
注: 我这里使用的是wildcard的api接口,请自行获取
7. 常见坑 & 实战经验
“用力过猛”的 Agent
工具列表太多 → LLM 选错工具 → 延迟高、消耗大。
经验:先用 Chain 验证流程,Agent 只做决策层。
上下文长度炸裂
长对话 + 大文档 + 工具 JSON,容易超 token 上限。
经验:检索阶段做好摘要;Memory 里只留关键信息。
依赖版本不一致
OpenAI SDK / tiktoken / langchain 三方升级节奏不同。
经验:pip freeze > requirements.txt
,跨环境一键复现。
8. 竞品速览
框架 | 核心卖点 | 适用人群 |
---|---|---|
LlamaIndex | 检索链(RAG)功能强,文档接入简单 | 专注问答/知识库 |
Haystack | 企业级搜索管线,Elastic 生态友好 | 大规模检索场景 |
AutoGen | 多 Agent 协作脚本化 | 研究/实验快速验证 |
LangChain 胜在“全能”,但若你的场景极端垂直,也可考虑轻量替代方案。
9. 未来展望
多模态链:官方正在合并 Vision / Audio 组件,未来视频问答、音频摘要可统一写法。
服务器原生支持:LangServe 正在把 Chain → REST API 的流程模板化,预计年内支持一键 Docker 部署。
开源商业化:LangSmith 已经证明“监控 + 评估”能变现,社区猜测后续会推出托管向量检索等增值服务。
10. 新增langchain对deepseek的api调用
import os
os.environ["DEEPSEEK_API_KEY"] = "sk-e9b"
os.environ["OPENAI_API_BASE"] = "https://api.deepseek.com"
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(
model = "deepseek-reasoner",
temperature = 0,
api_key = os.environ.get("DEEPSEEK_API_KEY"),
api_base = os.environ.get("OPENAI_API_BASE"),
)
llm.invoke("介绍下你自己")
注意:需要安装对应的模块包
pip install langchain-deepseek
暂无评论内容