Skip to content

Repository files navigation

StreamBench

License Platform Rust Version

大模型 API 压测与对比分析工具 —— macOS 桌面应用(Tauri 2 + Rust + React)。

面向 LLM 中转平台运营者:一键压测任意渠道(OpenAI / Claude / Gemini 协议),采集 TTFT / TPOT / RPM / token 吞吐等流式指标,留档、对比、自包含 HTML 报告。

特性

  • 三协议一键压测:OpenAI、Claude、Gemini原生流式解析,支持 endpoint 覆盖、自定义 Headers、自定义请求体,中转平台与官方渠道通用
  • 流式指标全采集:TTFT / TPOT / E2E、实际 RPM / RPS、token 吞吐、在途并发、延迟分位数(P50/90/95/99),usage 缺失时本地估算兜底
  • 实时监控:500ms 快照刷新的指标卡片、RPM 曲线、逐请求日志,暂停 / 恢复 / 停止、自动熔断、token 与费用上限
  • 自包含 HTML 报告:单报告 8 张图表(直方图 / 散点 / 吞吐曲线 / 并发曲线 / 失败构成 / token 曲线 / 流式对比 / 分位数表),内联 ECharts,断网可开、可转发
  • 对比分析:勾选 2–6 次测试一键对比,参数差异高亮、指标最优最差标注、自动结论,同渠道多次测试输出纵向趋势
  • 渠道管理:渠道预设 + 测试连接,Key 本机存储、界面掩码、报告与日志脱敏

截图

新建测试

实时监控

测试报告

快速开始

使用发布包

Releases 下载最新版 .dmg,双击安装即可(macOS 12+,Apple Silicon 与 Intel 均支持)。

从源码构建

需要 Rust 工具链与 Node.js(≥ 18)+ pnpm:

export PATH="$HOME/.cargo/bin:$PATH"
pnpm install
pnpm tauri dev        # 开发模式
pnpm tauri build      # 产出 .app / .dmg(src-tauri/target/release/bundle/)

使用流程

  1. 渠道预设:添加渠道(自定义 baseUrl、协议类型、API Key),可先「测试连接」验证
  2. 新建测试:配置请求数 / 并发 / 负载模式(固定 N / 固定时长 / 匀速 RPM)/ 流式占比 / 模型与 Prompt,启动前需为本次测试强制标注 channel_tag
  3. 实时监控:观察指标与日志,可暂停 / 恢复 / 停止,异常触发自动熔断
  4. 报告与对比:完成后查看报告、导出 HTML / CSV / JSONL;历史列表可筛选、克隆复跑、修正标签,勾选多次测试生成对比报告

指标口径

  • TTFT(流式) = 请求发出 → 首个含实际内容的增量事件(空 delta / 角色帧不算)
  • 成功 = 2xx ∧ 流正常终止标记 ∧ completion_tokens > 0
  • 实际 RPM = 完成请求数 ÷ 有效时长 × 60(剔除预热段)
  • 预热:前 warmup_requests 个请求只进明细、不进聚合与直方图

架构

src-tauri/src/
├── engine/       压测引擎:并发池 + 令牌桶限速 + 三负载模式 + 暂停/停止/熔断
│                 单请求计时打点 · HDR 直方图 + 500ms 快照 · 批量落库
├── protocol/     openai / claude / gemini SSE 状态机 + tiktoken 估算兜底
├── report/       Tera 自包含 HTML(单报告 8 图表 + 对比报告),内联 ECharts
├── commands.rs   Tauri IPC 命令层
└── models.rs     DTO 契约(与 src/types.ts 镜像)

src/
├── pages/        新建测试 / 实时监控 / 历史 / 日志 / 对比 / 报告 / 渠道预设
├── modals/       channel_tag 强制标注 / 渠道编辑
├── charts/       应用内与导出报告共用的一份图表配置
└── stores/app.ts 全局状态 + bench:// 事件订阅

详细设计见 docs/ARCHITECTURE.md

测试

cd src-tauri && cargo test --lib
pnpm exec tsc --noEmit && pnpm build

开发

环境要求、代码约定与提交流程见 CONTRIBUTING.md

License

MIT © monkeyz6

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages