LangSmith+LangChain构建可监控的RAG系统,完整代码已开源(建议收藏)
本文详细介绍LangSmith在LangChain应用中的调试与追踪功能,展示如何评估RAG系统性能,以及使用LangServe快速部署API服务。同时涵盖生产环境中的监控与日志管理,帮助开发者实现从开发到部署的全生命周期管理,代码已开源在GitHub。
简介
本文详细介绍LangSmith在LangChain应用中的调试与追踪功能,展示如何评估RAG系统性能,以及使用LangServe快速部署API服务。同时涵盖生产环境中的监控与日志管理,帮助开发者实现从开发到部署的全生命周期管理,代码已开源在GitHub。
教程涉及的代码已放在Git上,地址在文章末尾。
【本期目标】
- 掌握使用 LangSmith 进行 LangChain 应用的可视化调试与追踪。
- 了解如何利用 LangSmith 评估 RAG 系统的性能(准确性、忠实度等)。
- 熟悉 LangChain 应用的部署方式,包括使用 LangServe 快速构建API接口。
- 学习在生产环境中对 LangChain 应用进行**监控**和日志管理。
- 通过实际操作,体验从开发到部署的全生命周期管理。
引言:从开发到生产
开发一个LLM应用可能很快,但将其部署到生产环境,并保证其稳定、高效、准确地运行,则是一个更具挑战性的过程。你可能会遇到:
- 调试困难: 链条太长,不知道在哪一步出了问题。
- 性能瓶颈: 响应速度慢,Token消耗过高。
- 质量下降: 模型回答不准确,出现幻觉。
- 部署复杂: 如何将Python代码转化为可访问的API服务。
- 缺乏监控: 无法实时了解应用的运行状态。
本期将提供一套“组合拳”,帮助你解决这些问题,确保你的RAG系统能够成功上线并持续优化。
第一部分:LangSmith——LLM应用的评估利器
LangSmith 是 LangChain 官方推出的一款平台,专门用于 LLM 应用的调试、测试、评估和监控。它是 LangChain 生态中最重要的工具之一,强烈推荐在开发和生产中使用。
- 调试与追踪 (Tracing):
- LangSmith 能可视化你的 LangChain 链条的每一步执行,包括每个 Runnable 的输入、输出、耗时、Token使用量以及中间的错误信息。
【实践:配置并使用 LangSmith 进行追踪】
首先,你需要注册一个 LangSmith 账号 (opens in https://smith.langchain.com/).如下:
然后,获取你的 API Key 和 Project Name,并设置为环境变量。
from dotenv import load_dotenv
操作步骤: 运行上述代码后,登录 smith.langchain.com,进入你设置的项目。你会看到每次 invoke 对应的一条 Trace (追踪记录)。点击进入,你就能看到一个可视化的链条图,展示了数据如何流经 create_history_aware_retriever (其中包含LLM调用)、create_retrieval_chain、create_stuff_documents_chain 等各个组件,每个组件的输入、输出、耗时、Token使用量都会清晰展示。这对于调试复杂链条是革命性的。效果如下:
这里需要说明的是LangSmith 实际上是收费的平台,当然也可以免费使用,但是在真实场景下可能牵扯到数据安全问题,如果想本地部署LLM监控可以使用Langfuse,效果都是差不多的
- 评估 (Evaluation):
- LangSmith 提供了强大的评估功能,你可以创建数据集(Dataset),然后运行你的链条,并自动或手动评估其输出。
- 指标:
- 自动评估: LangSmith 可以调用LLM(Evaluator LLM)来评估答案的忠实度(Faithfulness)、相关性(Relevance)、流畅性(Fluency)等。
- 人工评估: 你可以定义自己的评分标准,手动给每个回答打分。
- 这对于衡量RAG系统的迭代优化效果至关重要。
简要说明 LangSmith 评估流程:
- 创建数据集 (Dataset): 在 LangSmith 中创建输入-输出对(如问题-期望答案)。
- 绑定测试: 将你的 LangChain 链与数据集绑定,运行测试。
- 运行评估器: 选择内置的LLM评估器(如 FaithfulnessEvaluator)或自定义评估器,对测试结果进行自动评分。
- 分析结果: 查看评估报告,找出低分案例,分析问题根源,指导优化。
这里也只是简单的说明下LangSmith的评估怎么使用,我在真实场景习惯用Ragas和Evalscope做评测。
第二部分:部署——让RAG应用可访问
一旦LangChain应用开发和测试完毕,下一步就是将其部署为可供其他服务或用户调用的API。
- LangServe (推荐):快速构建REST API
- LangServe 是 LangChain 官方提供的一种快速部署 LCEL Runnable 作为 REST API 的工具。
- 它构建在 FastAPI 之上,提供开箱即用的 /invoke, /stream, /batch, /feedback, /playground 等端点。
- 部署非常简单,适合快速原型开发和生产环境部署。
- 安装:pip install “langserve[all]” (会安装 uvicorn, fastapi, pydantic)
【实践:使用 LangServe 部署 RAG 应用】
步骤 A: 创建 server.py 文件
import os
步骤 B: 运行服务器
在终端中,进入 app 文件夹的父目录,然后执行:
python -m uvicorn app.server:app --reload --host 0.0.0.0 --port 8000
–reload:代码修改后自动重启服务器。
–host 0.0.0.0:允许从任何IP地址访问。
–port 5432:在5432端口运行。
步骤 C: 测试 API
打开浏览器访问 http://localhost:5432/rag-chatbot/playground。你会看到一个简单的UI,可以直接与你的RAG机器人交互。
也可以使用 Postman 或 curl 调用 API:
Invoke (单次调用):POST http://localhost:5432/rag-chatbot/invoke
{
Stream (流式调用):POST http://localhost:5432/rag-chatbot/stream (请求体同invoke)流式调用会逐块返回内容,适合前端实时显示。
- 传统部署方式 (Docker, 云函数等):
- Docker:Python 应用容器化是最常见的部署方式。创建一个 Dockerfile,包含所有依赖,然后构建镜像,在任何支持Docker的环境中运行。
- Kubernetes: 对于大规模、高可用性的部署,可以将 Docker 容器部署到 Kubernetes 集群。
小结:LangServe 是部署 LangChain LCEL 链最方便快捷的方式,它提供了开箱即用的API端点。对于更复杂的部署场景,Docker 和云函数是常见的选择。
第三部分:监控日志——掌握RAG应用的痕迹
部署到生产环境的应用,需要持续的监控来确保其稳定运行、性能达标,并及时发现问题。
- 日志 (Logging):
- 使用 Python 的 logging 模块记录关键信息,如:用户请求、LLM调用、工具执行、错误信息、警告等。
- 配置日志级别 (INFO, WARNING, ERROR),将日志输出到文件或中央日志系统(如 ELK Stack, Splunk)。
- 在 LangChain 中,你可以在 Callbacks 中集成自定义日志。
- 指标 (Metrics):
- 收集关键性能指标:
- 响应时间: 平均响应时间、P99 延迟。
- Token使用量: 每次请求的输入/输出Token数,总Token消耗。
- LLM调用成功率/失败率: 监控LLM API的健康状况。
- 检索成功率: 检索器是否返回了足够的文档。
- RAG 相关性/忠实度: 可以通过自动化评估或抽样人工评估来定期衡量。
- 使用 Prometheus, Grafana 等工具进行指标收集、可视化和告警。
- LangSmith 也会自动收集和展示一些关键指标。
- 错误告警:
- 配置错误告警机制(如通过 Sentry, DingTalk, Slack 等),在发生严重错误时及时通知开发团队。
- 结合 LangSmith,当某个 Trace 失败时,可以配置自动告警。
简要集成 Logging 示例:
import logging
小结: 调试是找出问题,评估是衡量质量,部署是上线运行,监控是保证稳定。LangSmith 是这些流程中的核心工具。
本期小结
在本期教程中,掌握了 LangChain 应用从开发到生产的关键实践:
- 学会了利用 LangSmith 进行强大的**可视化调试和追踪**,深入了解链条的执行细节。
- 了解了 LangSmith 在 **RAG 评估**方面的能力,为持续优化提供了数据支撑。
- 掌握了使用 LangServe 快速将你的 LCEL 链部署为可访问的 **REST API**。
- 初步了解了生产环境中对 LangChain 应用进行**日志记录和指标监控**的重要性。
现在,你的RAG系统已经准备好迎接真实世界的挑战,可以投入到生产环境中去服务用户了!
代码仓库
方面的能力,为持续优化提供了数据支撑。
- 掌握了使用 LangServe 快速将你的 LCEL 链部署为可访问的 **REST API**。
- 初步了解了生产环境中对 LangChain 应用进行**日志记录和指标监控**的重要性。
现在,你的RAG系统已经准备好迎接真实世界的挑战,可以投入到生产环境中去服务用户了!
代码仓库
https://github.com/lgy1027/ai-tutorial
AI大模型学习和面试资源
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐
所有评论(0)