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

LLM API 的日志令牌使用情况、提示和完成

本文介绍如何在 Azure API 管理中为 LLM API 请求和响应设置 Azure Monitor 日志记录。

API 管理管理员可以将 LLM API 请求和响应日志以及 API 管理网关日志用于以下方案:

  • 计算计费使用情况 - 根据每个应用程序或 API 使用者使用的令牌数(例如,按订阅 ID 或 IP 地址分段)计算计费的使用情况指标。

  • 检查消息 - 检查和分析提示和完成,以帮助调试、审核和模型评估。

了解有关以下方面的详细信息:

先决条件

  • Azure API 管理实例。
  • 与 Azure API 管理集成的托管 LLM 聊天完成 API。 例如, 导入 Microsoft Foundry API
  • 访问 Azure Log Analytics 工作区。
  • 在 API 管理中配置诊断设置和访问日志的适当权限。

为 LLM API 日志启用诊断设置

启用诊断设置以记录网关处理大型语言模型 REST API 的请求。 对于每个请求,Azure Monitor 将接收有关令牌使用情况的数据(提示令牌、完成令牌和总令牌)、所用模型的名称,以及请求和响应消息(提示和完成)。 大型请求和响应拆分为多个日志条目,其中包含序列号供以后进行重建(如果需要)。

以下是启用将 LLM API 日志定向到 Log Analytics 工作区的诊断设置的简短步骤。 有关详细信息,请参阅 为 Azure Monitor 日志启用诊断设置

  1. Azure 门户中,导航到 Azure API 管理实例。
  2. 在左侧菜单中的 “监视”下,选择“ 诊断设置>+ 添加诊断设置”。
  3. 配置将 AI 网关日志发送到 Log Analytics 工作区的设置:
    • 在“ 日志”下,选择与 生成式 AI 网关相关的日志
    • “目标详细信息”下,选择“ 发送到 Log Analytics”工作区
  4. 查看或配置其他设置,并根据需要进行更改。
  5. 选择“保存”

门户中 AI 网关日志诊断设置的屏幕截图。

为 LLM API 启用请求或响应的日志记录

可以为所有 API 启用诊断设置,也可以自定义特定 API 的日志记录。 以下是记录 API 的 LLM 请求和响应消息的简短步骤。 有关详细信息,请参阅 “修改 API 日志记录设置”。

  1. 在 API 管理实例的左侧菜单中,选择 API > API ,然后选择 API 的名称。
  2. 从顶部栏中选择 “设置” 选项卡。
  3. 向下滚动到“ 诊断日志 ”部分,然后选择 “Azure Monitor ”选项卡。
  4. 日志 LLM 消息中,选择 “已启用”。
  5. 选择 日志提示 并输入大小(以字节为单位),例如 32768
  6. 选择 日志完成并 输入大小(以字节为单位),例如 32768
  7. 查看其他设置并根据需要进行更改。 选择“保存”

在门户中为 API 启用 LLM 日志记录的屏幕截图。

注释

如果启用收集,则 LLM 请求或响应消息的大小最多为 32 KB,在单个条目中发送。 大于 32 KB 的消息被拆分并记录在 32 KB 区块中,其中包含用于以后重建的序列号。 请求消息和响应消息不能超过 2 MB。

查看 LLM API 的分析工作簿

基于 Azure Monitor 的分析 仪表板使用 Log Analytics 工作区中聚合的数据,深入了解 LLM API 使用情况和令牌消耗情况。 详细了解 API 管理中的分析。

  1. 在 API 管理实例的左侧菜单中,选择“ 监视>分析”。
  2. 选择 “语言模型 ”选项卡。
  3. 查看所选 时间范围内 LLM API 令牌消耗和请求的指标和可视化效果。

门户中语言模型 API 分析的屏幕截图。

查看 Azure Monitor 日志以获取请求和响应

查看 ApiManagementGatewayLlmLog 日志,了解有关 LLM 请求和响应的详细信息,包括令牌消耗、使用的模型部署,以及特定时间范围内的其他详细信息。

请求和响应(包括大型请求和响应的分块消息)显示在单独的日志条目中,可以使用该 CorrelationId 字段进行关联。

出于审核目的,请使用类似于以下查询的 Kusto 查询将每个请求和响应联接在一条记录中。 调整查询以包含要跟踪的字段。

ApiManagementGatewayLlmLog
| extend RequestArray = parse_json(RequestMessages)
| extend ResponseArray = parse_json(ResponseMessages)
| mv-expand RequestArray
| mv-expand ResponseArray
| project
    CorrelationId,
    RequestContent = tostring(RequestArray.content),
    ResponseContent = tostring(ResponseArray.content)
| summarize
    Input = strcat_array(make_list(RequestContent), " . "),
    Output = strcat_array(make_list(ResponseContent), " . ")
    by CorrelationId
| where isnotempty(Input) and isnotempty(Output)

门户中 LLM 日志的查询结果的屏幕截图。

将数据上传到 Microsoft Foundry 进行模型评估

可以将 LLM 日志记录数据导出为数据集,以便在 Microsoft Foundry 中 进行模型评估 。 使用模型评估,可以使用内置或自定义评估指标根据测试模型或数据集评估生成 AI 模型和应用程序的性能。

若要将 LLM 日志用作模型评估的数据集,请执行以下作:

  1. 将 LLM 请求和响应消息加入每个交互的单个记录,如 上一部分所示。 包括要用于模型评估的字段。
  2. 将数据集导出为 CSV 格式,该格式与 Microsoft Foundry 兼容。
  3. 在 Microsoft Foundry 门户中,创建新的评估项目来上传和评估数据集。

有关在 Microsoft Foundry 中创建和运行模型评估的详细信息,请参阅 使用 Microsoft Foundry 评估生成 AI 模型和应用程序