Skip to content

OpenAI服务添加吞吐量监控功能 - #100

Merged
HeiSir2014 merged 1 commit into
masterfrom
heisir/feat-openai-throughput-monitoring-af94ee
Sep 23, 2025
Merged

OpenAI服务添加吞吐量监控功能#100
HeiSir2014 merged 1 commit into
masterfrom
heisir/feat-openai-throughput-monitoring-af94ee

Conversation

@HeiSir2014

Copy link
Copy Markdown
Owner

变更内容

  • src/services/openai-service.ts 中新增 ThroughputStats 接口,用于定义 API 性能分析的吞吐量统计信息

  • OpenAiService 类中添加吞吐量统计相关属性:

    • lastThroughputStats:缓存最新的吞吐量统计数据
    • throughputHistory:存储最近10次请求的吞吐量历史记录
  • 在 API 请求处理流程中添加性能统计逻辑:

    • 记录请求开始和结束时间戳
    • 新增 logThroughputStats 私有方法,用于计算和记录吞吐量指标
    • 添加详细的性能日志输出,包括响应时间、令牌使用量、吞吐量等
  • 新增公共方法用于访问统计信息:

    • getLastThroughputStats():获取最新一次请求的吞吐量统计
    • getThroughputHistory():获取历史统计记录(最多10条)
    • getAggregatedThroughputStats():获取聚合统计信息,包括平均响应时间、吞吐量趋势等
    • clearThroughputStats():清空统计缓存和历史记录
  • src/test/openai-sdk-test.ts 中增强测试脚本:

    • 修改测试逻辑,执行5次独立测试并生成综合报告
    • 添加随机 diff 数据生成器,避免模型缓存影响测试结果
    • 新增详细的测试报告表格,展示每次测试的响应时间、成功率和吞吐量
    • 添加性能统计分析,包括平均响应时间、吞吐量评估等

变更原因

  • 为了监控和分析 OpenAI API 的性能表现,提供详细的吞吐量统计信息
  • 帮助开发者了解 API 调用的响应时间、令牌处理速度和整体性能水平
  • 通过历史数据分析性能趋势,便于优化和调试
  • 增强测试脚本的完整性和准确性,提供更全面的集成测试验证

测试方法

  1. 设置环境变量 OPENAI_KEY 和可选的 OPENAI_BASE_URL
  2. 运行测试脚本:node src/test/openai-sdk-test.ts
  3. 观察控制台输出的详细性能报告和统计信息
  4. 验证吞吐量统计功能是否正确记录和计算各项指标
  5. 检查 OpenAiService 的新增公共方法是否能正确返回统计信息

@github-actions

Copy link
Copy Markdown

📊 Performance Impact Analysis

Metric Base PR Difference Change %
Build Time (s) 3 3 0 0%
Package Size (bytes) 103973 109405 5432 5.22%
CLI Startup (ms) 749 764 15 2.00%

Analysis

  • Build Time: Faster by 0s
  • Package Size: Larger by 5432 bytes
  • CLI Startup: Slower by 15ms

@HeiSir2014
HeiSir2014 merged commit f037205 into master Sep 23, 2025
32 checks passed
@HeiSir2014
HeiSir2014 deleted the heisir/feat-openai-throughput-monitoring-af94ee branch September 23, 2025 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant