Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PulseBench

一个零依赖、本地运行的 OpenAI 兼容模型性能测试台。提供商、URL、API Key 和模型统一写在本地 providers.md;打开网页后会自动向所有启用的 URL 发起测试,并把每一次成功或失败保存为独立 JSON。

启动

需要 Node.js 20 或更高版本。本项目没有第三方依赖,不需要 npm install

node server.js

Windows 也可以双击 start.cmd。然后打开:

http://127.0.0.1:4317

端口可通过环境变量修改:

$env:PORT=8080
node server.js

使用

  1. 打开项目根目录的 providers.md
  2. 复制一个 ## 提供商名称 区块,填写 urlapi_keymodels,并设置 enabled: true。需要一次测试多个 URL 时创建多个区块。
  3. 运行服务并打开网页。只要全局 auto_test: true,页面就会立即测试全部启用配置。
  4. 修改文件后可在网页点击“重新读取”,再点“测试全部 URL”。页面中的临时手动配置仍然保留为可选入口。
  5. 在历史区按“提供商 / 模型”看趋势,或在对比区选择两个组合查看聚合表现。

示例:

auto_test: true
repetitions: 2
max_tokens: 800
timeout_seconds: 180

## 提供商 A
enabled: true
url: https://api-a.example.com/v1
api_key: sk-a
models: auto

## 提供商 B
enabled: true
url: https://api-b.example.com/v1
api_key: sk-b
models: model-b-fast, model-b-code

models: auto 表示通过每个 URL 的 GET /models 自动发现全部模型;也可以用逗号显式列出模型,适合没有模型列表接口或只想测试部分模型的服务。不同 URL 最好使用不同的二级标题,因为标题就是历史记录中的提供商名称。

Base URL 可填写以下任意形式,程序会规范化端点:

https://api.example.com/v1
https://api.example.com/v1/chat/completions
http://127.0.0.1:11434

指标定义

  • TTFT:从发出 HTTP 请求到收到首个非空内容或推理增量。
  • 首可见内容:从请求发出到首个可见 content 增量;推理模型可能比 TTFT 晚。
  • Token/s输出 Token / (总耗时 - TTFT)
  • ms/Token(总耗时 - TTFT) / 输出 Token
  • Token 数来源:优先读取流末尾的 usage.completion_tokens;兼容服务没有返回 usage 时,用文本长度估算并在界面标
  • 任务静态得分:本地正则规则检查接口、上升沿、饱和、复位、非阻塞赋值和自检 testbench。它用于快速对照,不等同于仿真或正式 HDL 质量评审。

数据与隐私

  • 每次尝试保存在 data/runs/*.json,包含指标、提示词快照、模型完整输出和错误信息。
  • 直接复制或剪切整个 data 文件夹即可带走全部历史;网页也可导出完整 JSON 或扁平 CSV。
  • 文件批次的 API Key 只从 providers.md 读入服务端内存并转发给目标 API,不会进入测试结果或浏览器接口。临时手动测试的 Key 仍只保存在当前页面内存。
  • 提供商 URL 会随结果保存,用于稳定地区分历史来源。不要把密钥放在 URL 中,程序也会拒绝带用户名/密码的 URL。
  • 服务默认只监听 127.0.0.1。如果主动改为局域网地址,请自行保护访问权限。

可复现上下文

固定提示词位于:

  • prompts/opencode-system.md
  • prompts/verilog-task.md

服务启动时计算两者的 SHA-256 短哈希,每条记录同时保存版本、哈希和完整快照。系统上下文借鉴 OpenCode 的公开编码代理定位、项目规则与环境上下文装配方式,而不是复制某个厂商模型的隐藏提示词:

API 请求使用 POST /chat/completionsstream: truestream_options.include_usage。可参照 OpenAI Chat Completions API 文档

验证

npm.cmd test
npm.cmd run check

测试覆盖 Markdown 多提供商解析、一次批量访问多个 URL、URL 规范化、指标公式、Verilog 静态评分、SSE 流解析、usage 统计和落盘导出。

About

For testing

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages