2026/7/26

一、LangChain 是什么?项目里干什么
❗注意:LangChain不是大模型,只是一套 Python/JS 开发工具库,用来封装、串联大模型周边逻辑。
核心作用
解决原生 LLM 的短板:大模型本身只会对话,没法读取私有文档、记住多轮对话、自动调用接口、自主上网搜索。LangChain 提供标准化组件,把这些能力拼装成完整应用。
项目中常用核心组件 & 落地场景
Model I/O
统一封装各类大模型 API(GPT、DeepSeek、通义千问、本地 Qwen/Llama 等),切换模型只改一行代码;配套 Prompt 模板、输出解析器(强制 AI 输出 JSON)。
数据连接(RAG 核心)
文档加载器 (PDF/Word/Markdown) → 文本切分 → Embedding 向量化 → 向量数据库存储;快速搭建知识库问答、企业文档机器人。
Memory 记忆
保存对话上下文,实现多轮连续聊天、智能客服。
Chain(链路)
用 LCEL 语法 | 串联多个步骤:
示例 RAG 链路:用户问题 → 检索文档 → 组装 Prompt → LLM 生成答案
Agent + Tools(智能体)
让大模型自己判断什么时候调用工具:联网搜索、查数据库、调用业务 API、执行代码,做自动化智能助手。
常见使用场景
企业知识库问答 (RAG)、聊天机器人、文档摘要 / 信息抽取、数据分析 Agent、智能工单系统。
二、LangSmith 是什么?项目里干什么
LangSmith 是SaaS 云端平台(也可私有化部署),LLM 领域专用可观测平台。
痛点:LLM 应用是黑盒!回答出错时,你分不清:是 Prompt 不行?检索到错误文档?还是模型幻觉?
五大核心能力(项目实战价值)
Trace 全链路追踪(最常用)
自动记录每一次请求完整执行树:
每一步输入、输出、耗时、token 消耗、检索到哪些文档、Agent 调用了什么工具;
你可以点开看:RAG 到底检索了哪几段文本,一眼定位「检索内容不对导致回答错误」。
Debug 调试
复现任意一次失败请求,复制当时完整 Prompt 直接在 Playground 重试,快速迭代提示词。
Evaluation 自动化评测
构建测试数据集,批量跑不同 Prompt / 不同模型做 A/B 对比;
使用 LLM-as-judge 自动打分(相关性、真实性、有无幻觉);
把主观感受变成可量化指标,避免人工测试。
生产监控
看板查看:调用量、token 成本、响应延迟、异常报错;支持配置告警。
人工反馈收集
允许标注人员对 AI 回答打分,反馈数据回流用于持续优化 RAG/Agent。
补充:LangSmith不只支持 LangChain,原生调用 OpenAI、自定义 LLM 代码也能接入追踪。
三、项目完整协作流程(标准工程流程)
开发阶段
用 LangChain 编写 RAG/Agent 业务代码;开启 LangSmith 追踪,边写边调试,定位链路 bug。
测试迭代
在 LangSmith 创建测试集,对比多版 Prompt、切分策略、检索参数,选出效果最优方案。
上线生产
持续采集线上 Trace,监控成本与错误;收集用户负面回答,定位线上漂移问题。
四、通俗类比
LangChain = 汽车零部件与组装图纸,你用它把发动机 (LLM)、导航 (检索)、传感器 (工具) 拼成整车;
LangSmith = 行车记录仪 + 修理厂诊断电脑,记录每一段行驶轨迹,找出哪里熄火、哪个零件故障,用来持续调校车辆。
五、容易混淆补充(顺带区分 LangGraph)
LangChain:适合线性任务、简单 RAG、普通对话链
LangGraph:LangChain 生态扩展,用来做循环、分支、多轮自修正 Agent(复杂智能体)
LangSmith:无论用 LangChain 还是 LangGraph,都可以接入统一追踪评估
六、极简代码示意感受二者配合
python
运行

开启LangSmith追踪(环境变量配置API Key)

import os
os.environ["LANGSMITH_TRACING"] = "true"

from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate

LangChain:构建业务链路

llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate.from_messages([("human", "回答问题:{question}")])
chain = prompt | llm

执行调用,自动上报整条链路到LangSmith网页后台

chain.invoke({"question":"LangChain和LangSmith区别?"})

posted on 2026-07-26 21:09  才一斤  阅读(9)  评论(0)    收藏  举报

导航