Skip to content

Conversation

@exqlnet
Copy link

@exqlnet exqlnet commented Jan 2, 2026

背景

  • 需要一个更直观的方式衡量/对比不同 Provider 的输出速度(TPS:Token Per
    Second)。

本次改动

  • 后端(Tauri/Rust)
    • 新增命令:tps_test_providersrc-tauri/src/commands/tps_test.rs
    • 新增服务:TpsTestServicesrc-tauri/src/services/tps_test.rs
    • 覆盖 Claude / Codex(OpenAI Chat) / Gemini 的一次性非流式请求
    • 优先使用上游 usage 统计输出 tokens;缺失时按 UTF-8 字节数估算
      ceil(bytes/4)),计算 TPS
  • 前端(React)
    • Provider 操作区新增 “TPS 测试” 按钮(Gauge 图标),带 loading 状态(src/ components/providers/ProviderActions.tsx
    • 结果以内联方式展示在 Provider 卡片内(TPS/输出 tokens/耗时;失败时展示一行
      错误)(src/components/providers/ProviderCard.tsx
    • 新增 Hook:useTpsTest,按 providerId 维度管理测试中状态与最近一次结果;
      失败/异常弹 Toast(src/hooks/useTpsTest.ts
    • API 类型与 invoke 封装:tpsTestProviderTpsTestResultsrc/lib/ api/model-test.ts
    • i18n 补齐:src/i18n/locales/{zh,en,ja}.json

风险与注意事项

  • TPS 测试会真实请求上游,可能产生实际用量/费用与延迟波动。
  • 当上游不返回 usage 时会走本地估算,精度有限。
  • fix(proxy) 提交移除了 _ 前缀字段过滤相关逻辑(原注释意图为“防止内部信息
    泄露”);请确认该行为变化是否符合预期。

验证方式

  • Rust:cargo test --manifest-path src-tauri/Cargo.toml
  • 前端:corepack pnpm typecheckcorepack pnpm test:unit
  • 手工:在 Provider 列表点击 “TPS 测试”(Gauge)按钮,观察卡片内联 TPS/输出/耗
    时与失败提示。

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