你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何使用 Azure AI 推理 SDK 跟踪应用程序

重要

本文中标记了“(预览版)”的项目目前为公共预览版。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

在本文中,你将了解如何使用 Azure AI 推理 SDK 跟踪应用程序,你可以选择使用 Python、JavaScript 或 C#。 Azure AI 推理客户端库支持使用 OpenTelemetry 进行跟踪。

在应用中启用跟踪

先决条件

安装

使用包管理器(例如 pip)安装包 azure-ai-inference

  pip install azure-ai-inference[opentelemetry] 

安装 Azure Core OpenTelemetry 跟踪插件、OpenTelemetry 和 OTLP 导出程序,以便将遥测数据发送到可观测性后端。 若要安装 Python 所需的包,请使用以下 pip 命令:

pip install opentelemetry 

pip install opentelemetry-exporter-otlp 

要详细了解适用于 Python 的 Azure AI 推理 SDK 以及可观测性,请参阅通过适用于 Python 的推理 SDK 进行跟踪

若要了解详细信息,请参阅推理 SDK 参考

配置

需要根据你的用例添加以下配置设置:

  • 若要捕获提示和补全内容,请将 AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED 环境变量设置为 true(不区分大小写)。 默认情况下,不会记录提示、补全内容、函数名称、参数或输出。

  • 若要启用 Azure SDK 跟踪,请将 AZURE_SDK_TRACING_IMPLEMENTATION 环境变量设置为 opentelemetry。 或者,可以使用以下代码片段在代码中对其进行配置:

    from azure.core.settings import settings 
    
    settings.tracing_implementation = "opentelemetry" 
    

    若要了解详细信息,请参阅适用于 Python 的 Azure Core Tracing OpenTelemetry 客户端库

启用检测

最后一步是使用以下代码片段启用 Azure AI 推理检测:

from azure.ai.inference.tracing import AIInferenceInstrumentor 

# Instrument AI Inference API 

AIInferenceInstrumentor().instrument() 

也可以通过使用解除检测调用对 Azure AI 推理 API 进行解除检测操作。 此调用后,Azure AI 推理 API 将不再发出跟踪,直到再次调用检测:

AIInferenceInstrumentor().uninstrument() 

跟踪自己的函数

若要跟踪自己的自定义函数,可以利用 OpenTelemetry,需要使用 OpenTelemetry SDK 检测代码。 这涉及设置跟踪提供程序,并围绕要跟踪的代码创建跨度。 每个跨度表示一个工作单元,可以嵌套以形成跟踪树。 可以为跨度添加属性,从而通过额外的上下文来扩充跟踪数据。 检测后,将导出程序配置为将跟踪数据发送到后端进行分析和可视化。 有关详细说明和高级用法,请参阅 OpenTelemetry 文档。 这有助于监视自定义函数的性能并深入了解其执行情况。

将用户反馈附加到跟踪

要将用户反馈附加到跟踪并使用 OpenTelemetry 的语义约定在 Azure AI Foundry 门户中将其可视化,可以对应用程序进行检测,以启用跟踪和记录用户反馈。 通过使用响应 ID 将反馈跟踪与其相应的聊天请求跟踪相关联,可以在 Azure AI Foundry 门户中查看和管理这些跟踪。 OpenTelemetry 规范可实现标准化且丰富的跟踪数据,这些数据可以在 Azure AI Foundry 门户中进行分析,以优化性能并获取用户体验见解。 这种方法可帮助你充分利用 OpenTelemetry 的强大功能,增强应用程序的可观测性。

  • Python 示例,包含完全可运行的 Python 代码,以便使用同步和异步客户端进行跟踪。
  • JavaScript 示例 包含完全可运行的 JavaScript 代码,以便使用同步和异步客户端进行跟踪。
  • C# 示例,包含完全可运行的 C# 代码,以便使用同步和异步客户端进行推理。