你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何在 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 日志启用诊断设置。
- 在 Azure 门户中,导航到 Azure API 管理实例。
- 在左侧菜单中的 “监视”下,选择“ 诊断设置>+ 添加诊断设置”。
- 配置将 AI 网关日志发送到 Log Analytics 工作区的设置:
- 在“ 日志”下,选择与 生成式 AI 网关相关的日志。
- 在 “目标详细信息”下,选择“ 发送到 Log Analytics”工作区。
- 查看或配置其他设置,并根据需要进行更改。
- 选择“保存”。
为 LLM API 启用请求或响应的日志记录
可以为所有 API 启用诊断设置,也可以自定义特定 API 的日志记录。 以下是记录 API 的 LLM 请求和响应消息的简短步骤。 有关详细信息,请参阅 “修改 API 日志记录设置”。
- 在 API 管理实例的左侧菜单中,选择 API > API ,然后选择 API 的名称。
- 从顶部栏中选择 “设置” 选项卡。
- 向下滚动到“ 诊断日志 ”部分,然后选择 “Azure Monitor ”选项卡。
- 在 日志 LLM 消息中,选择 “已启用”。
- 选择 日志提示 并输入大小(以字节为单位),例如 32768。
- 选择 日志完成并 输入大小(以字节为单位),例如 32768。
- 查看其他设置并根据需要进行更改。 选择“保存”。
注释
如果启用收集,则 LLM 请求或响应消息的大小最多为 32 KB,在单个条目中发送。 大于 32 KB 的消息被拆分并记录在 32 KB 区块中,其中包含用于以后重建的序列号。 请求消息和响应消息不能超过 2 MB。
查看 LLM API 的分析工作簿
基于 Azure Monitor 的分析 仪表板使用 Log Analytics 工作区中聚合的数据,深入了解 LLM API 使用情况和令牌消耗情况。 详细了解 API 管理中的分析。
- 在 API 管理实例的左侧菜单中,选择“ 监视>分析”。
- 选择 “语言模型 ”选项卡。
- 查看所选 时间范围内 LLM 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)
将数据上传到 Microsoft Foundry 进行模型评估
可以将 LLM 日志记录数据导出为数据集,以便在 Microsoft Foundry 中 进行模型评估 。 使用模型评估,可以使用内置或自定义评估指标根据测试模型或数据集评估生成 AI 模型和应用程序的性能。
若要将 LLM 日志用作模型评估的数据集,请执行以下作:
- 将 LLM 请求和响应消息加入每个交互的单个记录,如 上一部分所示。 包括要用于模型评估的字段。
- 将数据集导出为 CSV 格式,该格式与 Microsoft Foundry 兼容。
- 在 Microsoft Foundry 门户中,创建新的评估项目来上传和评估数据集。
有关在 Microsoft Foundry 中创建和运行模型评估的详细信息,请参阅 使用 Microsoft Foundry 评估生成 AI 模型和应用程序。