OpenAIUsageDebuggingPlugin

将 OpenAI API 使用情况指标记录到 CSV 文件中以进行调试和分析。

插件实例定义

{
  "name": "OpenAIUsageDebuggingPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}

配置示例

None

配置属性

None

命令行选项

None

注解

OpenAIUsageDebuggingPlugin 从 OpenAI 兼容的 API 请求和响应中捕获详细的使用情况指标,并将其写入 CSV 文件。 此信息可用于调试、跟踪令牌消耗、监视速率限制,以及随时间推移分析 API 使用模式。

输出文件

该插件会在开发代理启动时创建一个名为当前目录中的 devproxy_llmusage_<timestamp>.csv CSV 文件。 时间戳格式为 yyyyMMddHHmmss.

CSV 文件结构

CSV 文件包含以下列:

Description
time 请求的 ISO 8601 时间戳
status 响应的 HTTP 状态代码
retry-after retry-after标头的值(对于速率受限的请求)
policy policy-id标头的值(对于速率受限的请求)
prompt tokens 提示/输入中的令牌数
completion tokens 完成/输出中的令牌数
cached tokens 缓存令牌数(来自提示缓存)
total tokens 使用的令牌总数(提示 + 完成)
remaining tokens 速率限制窗口中的剩余令牌
remaining requests 速率限制窗口中的剩余请求

示例输出

time,status,retry-after,policy,prompt tokens,completion tokens,cached tokens,total tokens,remaining tokens,remaining requests
2025-10-28T10:15:30.123Z,200,,,150,75,,225,9850,49
2025-10-28T10:15:35.456Z,200,,,200,100,50,300,9550,48
2025-10-28T10:15:40.789Z,429,60,rate-limit-policy-1,,,,,,0

支持的方案

插件记录以下项的指标:

  • 成功请求 (2xx 状态代码):捕获令牌使用指标,包括提示令牌、完成令牌、缓存令牌和剩余速率限制
  • 错误响应 (4xx 状态代码):捕获速率限制信息,包括重试标头和策略 ID

流式处理响应

插件通过提取包含使用信息的最终区块来正确处理流式处理响应(使用 text/event-stream 内容类型)。

用例

此插件适用于:

  • 调试令牌消耗:了解提示和完成使用的令牌数
  • 监视速率限制:跟踪剩余令牌和请求以避免达到速率限制
  • 成本分析:分析令牌使用模式以估算成本
  • 性能优化:识别具有高令牌计数的请求
  • 提示缓存分析:跟踪缓存令牌使用情况以优化提示缓存策略

与 OpenAITelemetryPlugin 的比较

虽然 OpenAITelemetryPlugin 将遥测数据发送到 OpenTelemetry 兼容的仪表板进行实时监视和可视化,但 OpenAIUsageDebuggingPlugin 侧重于创建详细的 CSV 日志以供脱机分析和调试。 这两个插件相互补充:

  • 使用 OpenAITelemetryPlugin 实时监视、成本跟踪和与可观测性平台集成
  • 使用 OpenAIUsageDebuggingPlugin 详细调试、基于 CSV 的分析以及跟踪速率限制信息

可以同时启用这两个插件来获取实时遥测和详细的 CSV 日志。

后续步骤