内容
# LLM 延迟追踪器
**独立、与供应商无关的延迟和可用性,用于 AI 推理 API — 测量,而非爬取。**
🌐 **实时:[llmlatency.dev](https://llmlatency.dev)** · 📊 [JSON API](https://llmlatency.dev/api/rankings.json) · 🤖 [MCP 服务器](https://llmlatency.dev/mcp) · 🗓️ [废弃日历](https://llmlatency.dev/deprecations)
   
大多数“AI API 延迟”数据来自供应商自己,或仅运行一次基准测试,从未更新。本项目**持续测量**,来自多个地区,并将结果作为开放数据集发布。
- **边缘延迟** — 完整的 DNS → TCP → TLS → 首字节时间,使用 Python 标准库测量(无需 API 密钥)。
- **推理延迟** — 通过流式请求获取实时首 token 时间(可选,需要供应商密钥)。
- **可用性** — 每个供应商、每个地区的成功率。
- **地区** — 欧洲(德国)、美国(中部)、亚洲(东京)、南美洲(圣保罗)。欢迎更多地区。
- **~45 个供应商** — OpenAI、Anthropic、Google、Mistral、DeepSeek、xAI、Groq、Together、Fireworks、Cerebras、OpenRouter、Perplexity,以及中文模型(GLM/Zhipu、Kimi/Moonshot、Qwen、MiniMax)等。
- **废弃日历** — 即将退休的模型 + 迁移目标,从官方供应商文档中验证。
该网站是一个自我更新的静态网站(Cloudflare Pages)。其价值不在于代码,而在于持续积累的分布式测量存档。代码是开放的,因此方法论是透明的。
## 开发者
```bash
# 所有地区,过去 24 小时的供应商排名 — 测量的延迟 + 可用性:
curl https://llmlatency.dev/api/rankings.json
```
- **JSON API:** [`/api/rankings.json`](https://llmlatency.dev/api/rankings.json) · **OpenAPI:** [`/openapi.json`](https://llmlatency.dev/openapi.json)
- **任意页面作为 Markdown:** 发送 `Accept: text/markdown` 到任意页面 URL,或追加 `.md`。
- **用于 LLM ingestion:** [`/llms.txt`](https://llmlatency.dev/llms.txt)(索引)和 [`/llms-full.txt`](https://llmlatency.dev/llms-full.txt)(完整语料库)。
- **许可证:** 数据为 **CC-BY-4.0** — 免费使用,需注明出处。
## AI 代理
有一个真正的 **MCP 服务器**(Streamable HTTP)暴露了一个 `get_ai_api_latency` 工具,由实时数据支持:
```bash
curl -X POST https://llmlatency.dev/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_ai_api_latency","arguments":{"region":"eu-hetzner"}}}'
```
还提供:[MCP 服务器卡](https://llmlatency.dev/.well-known/mcp/server-card.json) (`/.well-known/mcp/server-card.json`),浏览器 **WebMCP** 工具,[API 目录](https://llmlatency.dev/.well-known/api-catalog)(RFC 9727)和 [Agent Skills 索引](https://llmlatency.dev/.well-known/agent-skills/index.json)。地区:`eu-hetzner`、`us-central`、`ap-tokyo`、`sa-east`(省略为所有地区)。
## 工作原理
```
config.py — 供应商注册 + 此节点的 REGION(环境变量)
probe.py — 网络探测(DNS→TCP→TLS→TTFB,标准库,无密钥)+ 推理探测(TTFT,需要密钥)
run.py — 跨所有供应商的单个探测周期(按计划运行)
db.py — SQLite 时间序列(累计测量存档)
aggregate.py — 测量结果 → 每个地区和供应商的 p50 / p95 / 可用性排名
sitegen.py — 排名 → 静态网站(JSON API、OpenAPI、llms.txt、schema.org、MCP 接口)
ingest.py — 收集远程探测节点测量的中心端点
ship.py — 探测节点 → 中心节点的运输者(基于水位标记,在中断时不会丢失数据)
deprecations.py — 模型废弃/迁移日历(仅验证、来源条目)
```
每个探测节点都运行在自己的 `REGION` 下,测量所有供应商,并写入时间序列。对于多区域,远程节点将测量结果发送到中心节点,中心节点聚合并生成网站。
## 自己运行(无需密钥)
```bash
git clone https://github.com/mazamaka/llm-latency-tracker
cd llm-latency-tracker
REGION=local python3 run.py # 获取边缘延迟测量结果
python3 aggregate.py --region local # 查看此位置的排名
```
在纯 Python 3.12+(标准库)上运行。`httpx` / `loguru` 是可选的。
**推理探测(真实 TTFT):**
```bash
cp .env.example .env # 为要测量的供应商添加密钥
pip install -r requirements.txt
REGION=local python3 run.py
python3 aggregate.py --region local --type inference
```
**本地构建网站:**
```bash
BASE_URL=https://example.com python3 sitegen.py # → ./site/
python3 -m pytest -q # 测试
```
参见 [`deploy/`](deploy/) 以获取容器 + 通用多区域部署指南。
## 贡献
尤其欢迎:
- **新供应商** — 在 [`config.py`](config.py) 中添加 `Provider(...)` 条目(主机 + 公共模型端点足以进行边缘探测)。
- **新地区** — 在新位置启动探测节点并发送到中心节点。
- **修复和测试** — CI 在每次推送时运行 `pytest` + `ruff`。
参见 **[CONTRIBUTING.md](CONTRIBUTING.md)** 以获取开发设置、如何添加供应商/地区以及 PR 指南。请坚持项目的原则:**测量,而非爬取,对数据集的年龄保持诚实。**
## 许可证
- **代码:** [MIT](LICENSE)
- **数据**(排名,API 输出):**CC-BY-4.0** — 注明 [llmlatency.dev](https://llmlatency.dev)。