LangSmith 使用与介绍:从入门到实战 1. 引言在开发基于大语言模型LLM的应用时调试和评估往往是最令人头疼的环节。模型输出不稳定、调用链路复杂、Prompt 迭代难以追踪……这些问题在传统软件开发中几乎不存在却在 LLM 应用中成为常态。LangSmith 正是为解决这些问题而生的可观测性与评估平台。它由 LangChain 团队推出能够帮助你追踪每一次模型调用、记录完整的调用链路、评估 Prompt 效果并持续优化你的 LLM 应用。本文将带你全面了解 LangSmith 的核心功能、使用场景并通过实际代码示例演示如何快速接入。2. 什么是 LangSmithLangSmith 是一个用于构建、调试、评估和监控 LLM 应用的开发者平台。它提供了从开发到生产全生命周期的可观测性支持是 LangChain 生态中不可或缺的一环。简单来说LangSmith 解决的是 LLM 应用开发中的三大痛点调试困难LLM 输出不确定出错时难以定位是 Prompt 问题、模型问题还是代码逻辑问题。评估主观如何量化一个 Prompt 的好坏如何对比不同模型的输出质量监控缺失应用上线后如何及时发现异常调用、成本飙升或质量下降LangSmith 通过Trace追踪、Dataset数据集和Evaluator评估器三大核心能力系统性地解决了这些问题。3. 核心功能3.1 Trace全链路追踪Trace 是 LangSmith 最基础也最强大的功能。当你通过 LangChain 或 LangSmith SDK 运行应用时每一次调用都会被自动记录形成完整的调用链路。每条 Trace 包含输入与输出每一步的 Prompt、模型输出、中间结果。耗时与成本每一步的延迟和 Token 消耗。元数据模型名称、温度参数、版本号等。通过 Trace你可以像调试传统代码一样逐步查看 LLM 应用的每一步执行情况。3.2 Dataset数据集管理Dataset 是 LangSmith 评估体系的基础。你可以将一组输入-期望输出对组织成数据集用于后续的批量评估。数据集支持多种创建方式从 Trace 中导出将线上真实请求保存为数据集。手动上传通过 CSV 或 JSON 文件导入。代码创建通过 SDK 在代码中动态创建。3.3 Evaluator自动化评估Evaluator 是 LangSmith 的评估引擎。你可以为数据集配置一个或多个评估器对模型输出进行自动化打分。评估器类型包括基于规则的评估如字符串匹配、JSON 结构校验。基于 LLM 的评估让另一个 LLM 作为裁判对输出质量打分。自定义评估通过代码实现任意评估逻辑。4. 快速开始4.1 环境准备首先你需要注册一个 LangSmith 账号并创建 API Key。访问 LangSmith 官网登录后在设置页面生成 API Key。然后安装必要的依赖pipinstall-Ulangsmith langchain-openai4.2 配置环境变量在项目根目录创建.env文件LANGCHAIN_TRACING_V2trueLANGCHAIN_API_KEYyour_langsmith_api_keyLANGCHAIN_PROJECTmy-first-projectOPENAI_API_KEYyour_openai_api_key其中LANGCHAIN_TRACING_V2开启 LangSmith 追踪。LANGCHAIN_API_KEY你的 LangSmith API Key。LANGCHAIN_PROJECT项目名称用于在 LangSmith 中区分不同应用。OPENAI_API_KEY你的 OpenAI API Key。4.3 第一个追踪示例下面是一个最简单的示例演示如何通过 LangChain 调用 OpenAI 并自动记录 Traceimportosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()# 初始化模型llmChatOpenAI(modelgpt-4o-mini,temperature0)# 直接调用LangSmith 会自动记录 Traceresponsellm.invoke(用一句话介绍 LangSmith)print(response.content)运行这段代码后登录 LangSmith 控制台你就能在对应项目中看到这次调用的完整 Trace包括 Prompt、响应、Token 消耗和耗时。4.4 在 Chain 中追踪实际应用中我们通常使用 Chain 串联多个步骤。LangSmith 会自动记录 Chain 中每一步的详细信息fromlangchain_core.promptsimportChatPromptTemplatefromlangchain_core.output_parsersimportStrOutputParser# 创建 Prompt 模板promptChatPromptTemplate.from_messages([(system,你是一位资深的 {topic} 专家。),(human,请用三句话介绍 {topic} 的核心概念。)])# 构建 Chainchainprompt|llm|StrOutputParser()# 执行 Chainresultchain.invoke({topic:机器学习})print(result)在 LangSmith 控制台中你可以看到这条 Chain 的完整执行链路Prompt 模板渲染 → 模型调用 → 输出解析每一步的输入输出都清晰可见。5. 数据集与评估实战5.1 创建数据集通过 SDK 在代码中创建数据集并添加样本fromlangsmithimportClient clientClient()# 创建数据集datasetclient.create_dataset(dataset_nameqa-benchmark,description问答质量评估数据集)# 添加样本client.create_examples(dataset_iddataset.id,inputs[{question:什么是 LangSmith},{question:LangSmith 和 LangChain 有什么关系}],outputs[{answer:LangSmith 是 LLM 应用的可观测性与评估平台。},{answer:LangSmith 是 LangChain 生态中的监控与评估工具。}])5.2 运行批量评估创建数据集后可以对 Chain 进行批量评估fromlangsmith.evaluationimportevaluatefromlangsmith.schemasimportExample,Run# 定义评估函数defcorrectness_evaluator(run:Run,example:Example)-dict:简单的关键词匹配评估器predictionrun.outputs.get(output,)referenceexample.outputs.get(answer,)score1.0ifreferenceinpredictionelse0.0return{key:correctness,score:score}# 运行评估resultsevaluate(lambdainputs:chain.invoke(inputs[question]),dataqa-benchmark,evaluators[correctness_evaluator])# 打印评估结果forresultinresults:print(f样本:{result[example][inputs]})print(f得分:{result[evaluation_results][results][0][score]})评估完成后你可以在 LangSmith 控制台中查看每个样本的详细评估报告包括输入、输出、得分和评估理由。6. 进阶用法6.1 自定义 Trace 元数据你可以为每次调用附加自定义元数据便于后续筛选和分析fromlangchain_core.callbacksimportconfigure_callbacksfromlangsmithimporttraceabletraceable(metadata{feature:chat,version:v1.2})defchat_with_metadata(question:str)-str:returnllm.invoke(question).content resultchat_with_metadata(LangSmith 支持哪些评估方式)6.2 手动记录 Trace如果你不使用 LangChain也可以直接通过 LangSmith SDK 手动记录 Tracefromlangsmithimporttraceabletraceable(run_typechain,namecustom_chain)defcustom_pipeline(question:str)-str:# 模拟多步骤处理step1f预处理:{question}step2llm.invoke(step1).contentreturnstep2 resultcustom_pipeline(LangSmith 如何接入非 LangChain 项目)6.3 基于 LLM 的自动评估使用 LLM 作为裁判对输出质量进行更智能的评估fromlangsmith.evaluationimportevaluatefromlangsmith.evaluatorsimportcriteria_evaluator# 使用内置的 criteria 评估器resultsevaluate(lambdainputs:chain.invoke(inputs[question]),dataqa-benchmark,evaluators[criteria_evaluator(criteriarelevance,llmllm)])7. 最佳实践7.1 项目命名规范为不同环境创建独立项目便于区分project-dev开发环境project-staging预发布环境project-prod生产环境7.2 合理使用采样率生产环境流量较大时可以通过采样率控制 Trace 记录量importos os.environ[LANGCHAIN_TRACING_SAMPLING_RATE]0.1# 记录 10% 的请求7.3 定期回归评估将线上真实请求沉淀为数据集定期运行回归评估及时发现质量回退# 从线上 Trace 导出数据集client.create_dataset_from_traces(dataset_nameprod-traces-weekly,project_nameproject-prod,start_time2026-08-21,end_time2026-08-28)8. 总结LangSmith 是 LLM 应用开发中不可或缺的可观测性与评估平台。通过本文的介绍你已经了解了Trace全链路追踪让调试变得简单直观。Dataset数据集管理为评估提供基础。Evaluator自动化评估让优化有据可依。无论是个人开发还是团队协作LangSmith 都能帮助你更高效地构建、调试和优化 LLM 应用。建议你从最简单的 Trace 功能开始逐步深入数据集和评估体系让 LangSmith 成为你 LLM 开发流程中的得力助手。

相关新闻

最新新闻

AI统一端点:模型路由、记忆与技能调用的落地实践

AI统一端点:模型路由、记忆与技能调用的落地实践

这次我们来看一个比较特别的架构型项目:它的标题只有一句话,One endpoint between your AI and all your connections, memory, skills。翻译过来就是:在你的 AI 应用和所有连接、记忆、技能之间,只放一个统一端点。做 AI Agent 或…

2026/8/29 4:01:09
如何验证LLM给出的领域外反例?实用排查指南

如何验证LLM给出的领域外反例?实用排查指南

如果你让一个 LLM 帮你找某个结论的反例,而且这个反例落在你自己的专业领域之外,那我的建议是:先把它当成一份待检验的思维实验,而不是结论。这类需求在写论文、做评审、做技术调研时很常见。最危险的情况并不是模型给不出反例&am…

2026/8/29 4:01:09
智能反射面信道估计:基于平行因子分解与Khatri-Rao积的低开销算法

智能反射面信道估计:基于平行因子分解与Khatri-Rao积的低开销算法

1. 项目概述:当智能反射面遇上多天线用户在无线通信领域,我们一直在和“信道”这个看不见摸不着的家伙斗智斗勇。信号从基站出发,经过各种反射、折射、散射,最终到达你的手机,这个过程就是信道。传统的玩法&#xff0c…

2026/8/29 4:01:09
YOLOv8+PyQt5课堂行为检测系统实战指南

YOLOv8+PyQt5课堂行为检测系统实战指南

简介:目标检测是计算机视觉的基础技术,其核心在于从图像中准确定位并识别特定对象。YOLO系列模型凭借实时性与精度平衡,成为轻量级部署的首选;PyQt5则提供了稳定高效的桌面GUI开发能力。在教育数字化转型背景下,将二者…

2026/8/29 4:01:09
单片机毕设选题推荐:基于 JDY-31 蓝牙的 STM32 点滴远程监测系统设计 基于 STM32 的 OLED 可视化点滴智能调控终端设计(013805)

单片机毕设选题推荐:基于 JDY-31 蓝牙的 STM32 点滴远程监测系统设计 基于 STM32 的 OLED 可视化点滴智能调控终端设计(013805)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/29 4:01:09
Python贪吃蛇实战:从零运行到打包exe全流程

Python贪吃蛇实战:从零运行到打包exe全流程

如果只允许用一个词来形容运行这个游戏源码后的感受,我会选“爽”。它不是 3A 大作,也没有任何美术资源,就是一段几百行的 Python 代码,但你会在里面体会到完整的游戏闭环:键盘控制、碰撞检测、食物生成、分数累积、游…

2026/8/29 3:56:09