将 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 日志。