- 跟踪单个大语言模型调用和完整的应用管道。
- 收集和查询用户反馈。
- 记录元数据并将其用于过滤和A/B测试。
- 使用监控仪表板跟踪生产性能。
前提条件
开始之前,请确保你已具备:- 一个LangSmith账户:在 smith.langchain.com 注册或登录。
- 一个LangSmith API密钥:按照 创建API密钥 指南操作。
- 一个OpenAI API密钥:从 OpenAI控制面板 生成。
- LangSmith CLI(可选):安装后可从终端检查跟踪信息。安装说明请参考 LangSmith CLI。
原型设计
从一开始就设置好可观测性可以让你更快地迭代。你可以准确地看到发送给模型的内容、返回的结果以及时间花在哪里,而无需添加打印语句或运行调试器。设置环境变量
在你的Shell中设置以下环境变量:LANGSMITH_PROJECT environment variable. If this is not set, LangSmith will create a default tracing project automatically on trace ingestion.
你可能在其他地方看到这些变量被引用为
LANGCHAIN_*。两种方式都可以工作,但推荐使用 LANGSMITH_TRACING 和 LANGSMITH_API_KEY。跟踪大语言模型调用
首先跟踪你的OpenAI调用,这是实际调用模型的地方。这让你能立即看到应用发送的提示词以及模型返回的响应。 使用wrap_openai(Python)或 wrapOpenAI(TypeScript)包装OpenAI客户端。创建一个名为 app.py(或 app.ts)的文件,包含以下代码:
support_bot("How many users can I have on the Starter plan?") 会生成一个OpenAI调用的跟踪记录。
跟踪整个管道
跟踪大语言模型调用很有用,但跟踪整个管道(包括检索)能让你全面了解应用的行为。在主函数上添加@traceable(Python)或 traceable(TypeScript):
support_bot("How many users can I have on the Starter plan?") 会生成整个RAG管道的跟踪记录。
从终端检查跟踪记录
如果你安装了 LangSmith CLI,无需打开UI即可列出项目的最近跟踪记录:测试
一旦你的应用在原型设计阶段运行良好,你就可以将其发布给一小部分真实用户。在这个阶段,你通常不知道用户会如何与你的应用交互,因此需要更丰富的可观测性。你不仅想知道应用做了什么,还想知道用户对其作何反应。收集反馈
将 用户反馈 关联到特定的跟踪记录,可以帮助你识别哪些回答是有帮助的,哪些没有。更新上一步中的app.py(或 app.ts),为每次调用添加一个运行ID,并在之后附加一个分数:
在生产环境中,这两部分会位于不同的位置:带有
run_id 的 support_bot 调用保留在你的应用中,而 create_feedback 则移到接收用户反馈的端点(例如,一个 /feedback API 路由)。run_id 从一个地方传递到另一个地方,以便将反馈关联到正确的跟踪记录。因为反馈也需要项目UUID,所以请将 session_id 与 run_id 一起传递。记录元数据
元数据 允许你用属性标记运行,这些属性有助于过滤和比较。例如,使用了哪个模型版本或哪个用户发起了请求。 以下示例跟踪了检索器(使用run_type="retriever")和主函数(使用 metadata 属性记录模型名称):
生产环境
有了强大的可观测性,你可以自信地将其部署到生产环境。在生产环境中,流量要大得多,你无法逐个检查每个跟踪记录。LangSmith提供监控工具,帮助你理解聚合行为,并在出现异常时深入排查。监控
在UI侧边栏中,选择 Monitoring(监控),然后从左上角的下拉菜单中选择一个跟踪项目。图表会显示项目随时间变化的关键指标,包括跟踪数量、延迟、错误率、反馈分数和成本。有关可用指标和图表配置的更多信息,请参考 仪表板。
A/B 测试
分组功能要求给定的元数据键至少有两个不同的值。
llm 元数据属性,你可以按该属性对监控图表进行分组,以比较模型性能随时间的变化。从UI侧边栏的 Monitoring(监控)中,单击左上角的 Group by(分组依据),从下拉菜单中选择 Metadata(元数据),然后选择 llm。图表会更新为按该属性分组显示结果。有关分组和自定义图表的更多信息,请参考 仪表板。
深入排查
当监控图表显示异常时,单击一个数据点以固定工具提示,然后单击指标名称(例如,Input)跳转到该时间窗口的过滤运行表格。有关搜索和筛选运行的更多信息,请参考 筛选跟踪记录。
总结
在本教程中,你为一个应用的整个开发生命周期添加了LangSmith可观测性。在原型设计阶段帮助你快速迭代的同一套跟踪设置,在生产环境中将继续提供价值。你将能够查看单个跟踪记录和聚合性能趋势。 更多信息,请参见:Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

