您现在的位置是:首页 > 编程 > 

用于生成式AI的OpenTelemetry

2025-07-28 05:59:17
用于生成式AI的OpenTelemetry 随着越来越多的组织采用大型语言模型 (LLM) 和其他生成式 AI 技术,确保可靠的性能、效率和安全性对于满足用户期望、优化资源成本以及防范意外输出至关重要。对 AI 运营、行为和结果的有效可观察性可以帮助实现这些目标。OpenTelemetry 正在增强以专门支持生成式 AI 的这些需求。 译自 OpenTelemetry for Generative

用于生成式AI的OpenTelemetry

随着越来越多的组织采用大型语言模型 (LLM) 和其他生成式 AI 技术,确保可靠的性能、效率和安全性对于满足用户期望、优化资源成本以及防范意外输出至关重要。对 AI 运营、行为和结果的有效可观察性可以帮助实现这些目标。OpenTelemetry 正在增强以专门支持生成式 AI 的这些需求。

译自 OpenTelemetry for Generative AI,作者 OpenTelemetry Authors; Docs CC BY。

两个主要资源正在开发中,以实现这一目标:语义约定插桩库。第一个插桩库针对OpenAI Python API库。

语义约定建立了跨平台遥测数据结构和收集的标准化指南,定义了输入、输出和操作细节。对于生成式AI,这些约定通过标准化模型参数、响应元数据和令牌使用等属性,简化了AI模型的监控、故障排除和优化。这种一致性支持跨工具、环境和API的更好可观测性,帮助组织轻松跟踪性能、成本和安全性。

插桩库正在OpenTelemetry Python Contrib下的instrumentation-genai项目中开发,以自动化生成式AI应用程序的遥测数据收集。第一个版本是一个用于插桩OpenAI客户端调用的Python库。该库捕获跨度和事件,以结构化格式收集模型输入、响应元数据和令牌使用等重要数据。

生成式AI的关键信号

生成式AI的语义约定侧重于通过三个主要信号捕获对AI模型行为的洞察:跟踪、指标和事件。

这些信号共同提供了一个全面的监控框架,能够更好地进行成本管理、性能调整和请求跟踪。

跟踪:跟踪模型交互

跟踪跟踪每个模型交互的生命周期,涵盖输入参数(例如,temperature、top_p)和响应细节,如令牌计数或错误。它们提供了对每个请求的可见性,有助于识别瓶颈并分析设置对模型输出的影响。

指标:监控使用情况和性能

指标汇总高级指标,如请求量、延迟和令牌计数,这对于管理成本和性能至关重要。对于具有速率限制和成本考虑的依赖于API的AI应用程序,此数据尤其重要。

事件:捕获详细的交互

事件记录模型执行期间的详细时刻,例如用户提示和模型响应,提供对模型交互的细粒度视图。这些见解对于调试和优化可能出现意外行为的AI应用程序非常宝贵。

注意:请注意,我们决定使用发出的事件以及生成式AI的语义约定中的日志API规范。事件允许我们为我们捕获的用户提示和模型响应定义特定的语义约定。此API的添加正在开发中,并被认为是不稳定的。

使用供应商特定属性扩展可观测性

语义约定还定义了针对OpenAI和Azure推理API等平台的供应商特定属性,确保遥测捕获一般和提供商特定的详细信息。这种额外的灵活性支持多平台监控和深入的见解。

为OpenAI构建Python插桩库

这个基于Python的OpenTelemetry库捕获OpenAI模型的关键遥测信号,为开发人员提供针对AI工作负载量身定制的开箱即用的可观测性解决方案。该库托管在OpenTelemetry Python Contrib存储库中,自动收集来自OpenAI模型交互的遥测数据,包括请求和响应元数据以及令牌使用情况。

随着生成式AI应用程序的增长,其他语言的附加插桩库将陆续推出,从而扩展OpenTelemetry对更多工具和环境的支持。当前库对OpenAI的关注突显了其在AI开发中的普及程度和需求,使其成为有价值的初始实现。

示例用法

这是一个使用 OpenTelemetry Python 库监控带有 OpenAI 客户端的生成式 AI 应用程序的示例。

安装 OpenTelemetry 依赖项:

代码语言:javascript代码运行次数:0运行复制
pip install opentelemetry-distro
opentelemetry-bootstrap -a install

设置以下环境变量,根据需要更新端点和协议:

代码语言:javascript代码运行次数:0运行复制
OPEAI_API_KEY=<replace_with_your_openai_api_key>
OTEL_EXPORTER_OTLP_EDPOIT=http://localhost:418
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_SERVICE_AME=python-opentelemetry-openai
OTEL_LOGS_EXPORTER=otlp_proto_http
OTEL_PYTHO_LOGGIG_AUTO_ISTRUMETATIO_EABLED=true
# 设置为 false 或删除以禁用日志事件
OTEL_ISTRUMETATIO_GEAI_CAPTURE_MESSAGE_COTET=true

然后在您的 Python 应用程序中包含以下代码:

代码语言:javascript代码运行次数:0运行复制
import os
from openai import OpenAI

client = OpenAI()
chat_completion = (
    model=os.getenv("CHAT_MODEL", "gpt-4o-mini"),
    messages=[
        {
            "role": "user",
            "content": "Write a short poem on OpenTelemetry.",
        },
    ],
)
print(chat_[0].)

然后使用 opentelemetry-instrument 运行示例:

代码语言:javascript代码运行次数:0运行复制
opentelemetry-instrument python main.py

如果您没有运行的服务来收集遥测数据,您可以使用以下命令导出到控制台:

代码语言:javascript代码运行次数:0运行复制
opentelemetry-instrument --traces_exporter cole --metrics_exporter cole python main.py

完整的示例此处提供。

通过这种简单的插桩,可以开始捕获生成式 AI 应用程序的跟踪。以下是从Aspire 仪表板进行本地调试的示例。

要启动 Jaeger,请运行以下 docker 命令并在您的 Web 浏览器中打开 localhost:18888

代码语言:javascript代码运行次数:0运行复制
docker run --rm -it -d -p 18888:18888 -p 417:18889 -p 418:18890 --name aspire-dashboard /dotnet/aspire-dashboard:9.0
Aspire 仪表板中的聊天跟踪

以下是 Jaeger 中捕获的类似跟踪。

要启动 Jaeger,请运行以下 docker 命令并在您的 Web 浏览器中打开 localhost:16686

代码语言:javascript代码运行次数:0运行复制
docker run --rm -it -d -p 16686:16686 -p 417:417 -p 418:418 --name jaeger jaegertracing/all-in-one:latest
Jaeger 中的聊天跟踪

捕获聊天的内容历史记录也很容易,以便于调试和改进您的应用程序。只需设置环境变量 OTEL_ISTRUMETATIO_GEAI_CAPTURE_MESSAGE_COTET 如下所示:

代码语言:javascript代码运行次数:0运行复制
export OTEL_ISTRUMETATIO_GEAI_CAPTURE_MESSAGE_COTET=True

这将开启内容捕获,它会收集包含有效负载的 OpenTelemetry 事件:

内容捕获 Aspire 仪表板
加入我们,共同塑造生成式 AI 可观测性的未来

社区协作是 OpenTelemetry 成功的重要因素。我们邀请开发人员、AI 从业人员和组织贡献代码、分享反馈或参与讨论。探索 OpenTelemetry Python Contrib 项目,贡献代码,或帮助塑造 AI 可观测性的发展。

我们目前的贡献者来自 亚马逊、Elastic、谷歌、IBM、Langtrace、微软、OpenLIT、Scorecard、Traceloop 等!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-12-162,如有侵权请联系 cloudcommunity@tencent 删除性能监控模型事件数据

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1252547.html

相关标签:无
上传时间: 2025-07-27 21:26:08
留言与评论(共有 19 条评论)
本站网友 明星蜡像
24分钟前 发表
Traceloop 等!本文参与 腾讯云自媒体同步曝光计划
本站网友 石家庄碧海云天
16分钟前 发表
我们决定使用发出的事件以及生成式AI的语义约定中的日志API规范
本站网友 百度不知道
29分钟前 发表
18890 --name aspire-dashboard /dotnet/aspire-dashboard
本站网友 徐州房产
1分钟前 发表
}
本站网友 用友erp软件下载
12分钟前 发表
贡献代码
本站网友 赣榆租房信息
22分钟前 发表
生成式AI的关键信号生成式AI的语义约定侧重于通过三个主要信号捕获对AI模型行为的洞察:跟踪
本站网友 就要去爱爱
25分钟前 发表
只需设置环境变量 OTEL_ISTRUMETATIO_GEAI_CAPTURE_MESSAGE_COTET 如下所示:代码语言:javascript代码运行次数:0运行复制export OTEL_ISTRUMETATIO_GEAI_CAPTURE_MESSAGE_COTET=True这将开启内容捕获
本站网友 翰威特
19分钟前 发表
如令牌计数或错误
本站网友 新五朵金花
21分钟前 发表
"content"
本站网友 王晓波
26分钟前 发表
"content"
本站网友 内蒙古附属医院
28分钟前 发表
插桩库正在OpenTelemetry Python Contrib下的instrumentation-genai项目中开发
本站网友 电磁炉用什么锅
30分钟前 发表
以下是从Aspire 仪表板进行本地调试的示例
本站网友 长沙英语培训
15分钟前 发表
"gpt-4o-mini")
本站网友 上海第九人民医院整形科
27分钟前 发表
使其成为有价值的初始实现
本站网友 放心走吧
17分钟前 发表
为开发人员提供针对AI工作负载量身定制的开箱即用的可观测性解决方案
本站网友 个人车辆违章查询
18分钟前 发表
16686:代码语言:javascript代码运行次数:0运行复制docker run --rm -it -d -p 16686
本站网友 西岭雪
3分钟前 发表
以实现这一目标:语义约定和插桩库
本站网友 杨和荣
14分钟前 发表
故障排除和优化