## 一、Demo 简介
- **是什么**:一个单页 Web 应用,用户填写 API 信息即可对大模型进行测速,实时展示首字延迟、TPS(Token/秒)等关键指标,并支持多模型历史数据对比图表。
- **面向谁**:开发者、产品经理、AI 技术选型者,以及所有需要接入和评估大模型 API 的人。
- **主要功能**:
1. 单模型测速:填写 API 地址、密钥、模型名称、测试 Prompt,一键发起请求,实时返回首字延迟、成功率、TPS、等指标。
2. 多模型对比:支持将多次测速结果保存到历史记录,以图表形式横向对比不同模型的关键性能指标。
3. 结果可视化:用图表直观呈现测试数据,避免"看 JSON"的低效方式。
1.
## 整体架构
这是一个前后端一体的单进程 Web 应用,用于测试兼容 OpenAI 格式的大模型流式 API 性能。
应用分三层。最上层是浏览器中的前端,负责测速的全部业务逻辑:构造请求、并发发起、解析 SSE 流、计算 TTFT 和 TPS 等指标、渲染结果、管理历史记录。中间层是 Flask 后端,它不参与指标计算,只承担两项职责--一是作为代理转发请求以绕开浏览器的 CORS 限制,二是提供历史记录的增删查改接口。最底层是一个 SQLite 文件 history.db ,内含两张结构相同但相互隔离的表: history 存真实测速数据, seed_history 存模拟数据。
后端使用 Python 3.12 配合 Flask 3.0 及以上版本。除了 Flask 这一唯一的外部依赖,其余全部使用 Python 标准库:数据库访问用 sqlite3 ,HTTP 请求用 urllib.request ,SSL 处理用 ssl ,并发锁用 threading 。这使得部署极其轻量, requirements.txt 里只有一行 flask>=3.0 。
前端是纯 HTML、CSS 和原生 JavaScript,使用 ES2020 及以上语法,没有任何构建工具或框架。唯一的第三方库是 Chart.js 4.4.7,通过 jsdelivr CDN 引入,用于绘制对比柱状图。前后端通信全部用 fetch API,流式响应的解析依赖 ReadableStream 和 TextDecoder 两个浏览器原生能力。
数据层是 SQLite 单文件,无需安装数据库服务,随项目目录携带。启动脚本 run.bat 是 Windows 批处理,会自动 pip install 依赖后启动 Flask。
2.全部
3.一开始计划html单文件,但遇到浏览器的 CORS 限制,添加后端转发解决