跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

LangChain 框架深度解析:LLM 大模型可观测性最佳实践

综述由AI生成LLM 大模型的可观测性涉及对模型内部运行过程的监控与理解。介绍 LangChain 框架及其在构建智能应用中的作用,重点阐述如何通过日志、指标和链路追踪实现可观测性。通过集成 DDTrace 等工具,开发者可以监控 API 调用、令牌消耗及性能瓶颈。文章提供了具体的 Python 代码示例,涵盖环境配置、API 接入及常见问题排查,旨在帮助开发者提升大模型应用的可解释性与稳定性。

菩提发布于 2025/2/6更新于 2026/5/2219 浏览
LangChain 框架深度解析:LLM 大模型可观测性最佳实践

LangChain 框架深度解析:LLM 大模型可观测性最佳实践

LLM 大模型的可观测性概述

LLM(Large Language Model)大模型的可观测性是指对模型内部运行过程的理解和监控能力。由于 LLM 通常具有庞大的参数量和复杂的网络结构,对其内部状态、延迟、Token 消耗及错误日志的监控是一个关键问题。良好的可观测性有助于提升大模型应用的可解释性和可控性。

什么是 LangChain?

LangChain 是一个开源的应用开发框架,旨在将大型语言模型(LLM)与开发者现有的知识和系统相结合,以提供更智能化的服务。具体来说,LangChain 可以帮助开发者轻松地管理与 LLM 的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。

此外,LangChain 还提供了多种工具、组件和接口,以简化创建由 LLM 提供支持的应用程序的过程:

  • 模型输入/输出管理:用于管理 LLM 及其输入和格式化输出。
  • Prompt 模板支持:支持自定义 Prompt 工程的快速实现以及和 LLMs 的对接。
  • Utils 组件:提供了大模型常见的植入能力的封装,如搜索引擎、Python 编译器、Bash 编译器、数据库等。
  • Chains 组件:提供了大模型针对一系列任务的顺序执行逻辑链。

因此,LangChain 的应用场景非常广泛,可以应用于自然语言处理、聊天机器人、智能客服、文本生成等多个领域。同时,由于其开源的特性,LangChain 也可以被广大开发者用于定制开发自己的 LLM 应用,从而推动人工智能技术的不断发展和创新。

LangChain 可观测性体系

LangChain 本身并没有提供开箱即用的可观测性能力,但可以通过集成其他工具来实现对 LangChain 应用的可观测性。一个完整的可观测性方案通常包含以下几个核心维度:

  1. 日志(Logs):收集、存储和分析 LangChain 应用的日志数据。通过日志数据,可以监控应用程序的运行状态、错误日志、用户行为等信息。
  2. 指标(Metrics):使用监控工具收集 LangChain 应用的性能指标,如响应时间、吞吐量、错误率、Token 消耗量等。这些指标可以帮助你了解应用程序的性能瓶颈和潜在问题,并及时进行优化和调整。
  3. 链路追踪(Traces):监控 LangChain 应用所依赖的服务或组件,如数据库、API 接口等。确保这些依赖服务的可用性和性能稳定,以避免因依赖问题导致的应用故障。
  4. 自定义监控:根据具体需求,可以编写自定义的监控脚本或插件,用于监控特定的业务逻辑或功能。例如,你可以编写脚本监控某个特定任务的执行情况、API 接口的调用频率等。
  5. 告警与通知:设置告警规则,当监控数据达到预设的阈值时,触发告警并通知相关人员。这可以帮助你及时发现并处理潜在问题,确保应用程序的稳定运行。

需要注意的是,可观测性方案的选择和实施应根据具体的应用场景和需求进行定制。

LangChain 可观测性接入方案

准备工作

安装可观测性采集器

为了采集链路和指标信息,需要安装相应的采集代理。以下以 DDTrace 为例进行配置。

获取 Token 并在控制台完成集成配置后,执行安装命令:

DK_DATAWAY="https://openway.guance.com?token=tkn_xxxxxx" bash -c "$(curl -L https://static.guance.com/datakit/install.sh)"
DataKit 采集器配置
  • 开启 DDTrace 采集器:DDTrace 采集器用于采集链路信息。进入到 DataKit 安装目录下,执行 conf.d/ddtrace/,复制 ddtrace.conf.sample 并重命名为 ddtrace.conf。
  • 开启 StatsD 采集器:StatsD 采集器用于采集指标信息,默认端口为 8125。
  • 重启 DataKit:
systemctl restart datakit
准备 OpenAI API Key

在 Langchain 应用中使用 OpenAI 的模型,需要一个 API Key,点击平台官网创建你的 API Key。

模拟 LLM 应用并接入可观测平台

主要实现了一个基于 OpenAI 的 GPT-3.5 模型的聊天对话系统,并设置了一个函数来跟踪 API 令牌的使用情况。

安装 Python 依赖
pip install langchain
pip install openai
pip install ddtrace
创建 LLM

使用 Langchain 创建 LLM,模型选择 gpt-3.5-turbo。

from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(model='gpt-3.5-turbo', temperature=0)
创建 ConversationChain 对象

创建一个 ConversationChain 对象,传入之前创建的 llm 对象,设置 verbose 为 True(表示输出详细的调试信息),并使用 ConversationBufferMemory 作为记忆储存。

from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory

conversation = ConversationChain(
    llm=llm, verbose=True, memory=ConversationBufferMemory()
)
创建对话函数

定义一个函数 track_tokens_usage,它接受一个对话链和一个查询作为参数。通过回调函数 get_openai_callback 创建一个回调对象 cb,并通过对象 cb 可以获取请求相关信息:请求数、消耗金额、令牌数量等。

from langchain.callbacks import get_openai_callback

def track_tokens_usage(chain, query):
    with get_openai_callback() as cb:
        result = chain.run(query)
        print(f"prompt token {cb.prompt_tokens}, res token {cb.completion_tokens}, total token {cb.total_tokens}")
        print(f"successful requests {cb.successful_requests}, total cost {cb.total_cost}USD")
        print(result)
    return result
调用与执行
track_tokens_usage(conversation, "介绍一下可观测性的产品及优势")

由于执行完成后,进程会退出,添加以下代码阻止退出,方便相关数据及时上报。

print("脚本执行完成,按 Enter 键退出...")
input()

执行脚本时,需设置环境变量以关联服务信息:

DD_SERVICE="my-langchain" DD_ENV="dev" DD_AGENT_HOST="localhost" DD_AGENT_PORT="9529" ddtrace-run python3 langchain_demo.py

LangChain 可观测性实践效果

接入成功后,可以在可观测性平台上查看到以下数据:

  • 指标视图:展示请求次数、Token 消耗趋势、响应时间分布等关键指标。
  • 调用链视图:清晰展示从用户请求到 LLM 调用的完整链路,包括中间件耗时和外部 API 延迟。

常见问题排查

Token 异常

如果没有配置 Token,则会报错:

pydantic.v1.error_wrappers.ValidationError: 1 validation error for ChatOpenAI
__root__
  Did not find openai_api_key, please add an environment variable `OPENAI_API_KEY` which contains it, or pass `openai_api_key` as a named parameter.

关于 Token,可以在代码中定义,但不建议硬编码在代码中,推荐使用环境变量方式:

export OPENAI_API_KEY="sk-...DcE2"

余额不足

如果 API 配额耗尽,会抛出 RateLimitError:

openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota...', 'type': 'insufficient_quota'}}

此时需要检查账户计划及账单详情。

代理配置

如需配置代理,可以加入以下配置:

import os
os.environ["http_proxy"] = "http://localhost:7890"
os.environ["https_proxy"] = "http://localhost:7890"

其他第三方 API

如果需要更换第三方 API 地址,可以使用以下方式:

import os
os.environ["OPENAI_API_BASE"] = 'https://chatapi.a3e.top/v1'

总结与建议

在构建基于 LangChain 的大模型应用时,实施可观测性是保障系统稳定运行的关键步骤。通过集成 DDTrace 等工具,开发者能够实时监控应用的健康状况,快速定位性能瓶颈和错误源头。

最佳实践建议:

  1. 全链路追踪:确保从入口到 LLM 调用的所有环节都有 Trace ID 贯穿。
  2. 成本监控:重点关注 Token 消耗和 API 调用成本,设置预算告警。
  3. 异常捕获:在代码层面对 API 调用进行 try-except 包裹,避免单点故障影响整体流程。
  4. 日志规范:统一日志格式,便于后续分析和自动化处理。

通过上述措施,可以有效提升大模型应用的生产级稳定性,为业务创新提供坚实的技术底座。

目录

  1. LangChain 框架深度解析:LLM 大模型可观测性最佳实践
  2. LLM 大模型的可观测性概述
  3. 什么是 LangChain?
  4. LangChain 可观测性体系
  5. LangChain 可观测性接入方案
  6. 准备工作
  7. 安装可观测性采集器
  8. DataKit 采集器配置
  9. 准备 OpenAI API Key
  10. 模拟 LLM 应用并接入可观测平台
  11. 安装 Python 依赖
  12. 创建 LLM
  13. 创建 ConversationChain 对象
  14. 创建对话函数
  15. 调用与执行
  16. LangChain 可观测性实践效果
  17. 常见问题排查
  18. Token 异常
  19. 余额不足
  20. 代理配置
  21. 其他第三方 API
  22. 总结与建议
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • TongWeb 嵌入式版本安装指南
  • Java 面试核心知识点与题目解析
  • TradingView Webhook 警报免费配置指南
  • 浏览器缓存机制详解:如何彻底解决前端代码更新后的缓存问题
  • 深入理解 C++ 异常机制
  • C++ 类与对象的内在机制:构造函数与析构函数
  • VS Code 配置 GitHub Copilot Agent Skills 实战指南
  • Claude 官方技能文档:前端构建、Git 工作树、iOS 模拟与自动化
  • Llama-2-7b 在昇腾 NPU 上的六大核心场景性能基准
  • Python 基础语法与核心概念详解
  • YOLO26-Pose 零样本姿态估计实战:从春晚机器人看通用视觉智能
  • N_m3u8DL-RE 跨平台流媒体下载器使用教程
  • 密码攻击实践:获取并破解 Net-NTLMv2 哈希(上)
  • Python 就业数据分析:方向、岗位与城市选择指南
  • 大模型落地路线图:从诊断到运营的全流程解析
  • LangChain 框架与智能 Agent 构建实战指南
  • π0 源码剖析:基于 PaLI-Gemma 的扩散策略与 C/S 架构部署
  • WebAssembly 技术详解:概念、优势与开发流程
  • Python Pandas 库超详细教程:从入门到精通实战指南
  • Android Framework 核心原理与源码解析实战指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online