端点与本地测速
慢分两种:链路慢和模型慢。这两种的处理方式完全不同,先测出来是哪一种再动手。
下面的脚本都基于
curl,macOS / Linux 自带,Windows 建议在 WSL 或 Git Bash 里跑。/v1/models 不计费,适合反复测链路。端点一览
全部挂在 https://chuanapi.com 下:
| 路径 | 用途 |
|---|---|
| /v1/chat/completions | OpenAI Chat Completions,兼容面最广 |
| /v1/responses | OpenAI Responses,部分推理模型能力更完整 |
| /v1/messages | Anthropic Messages,Claude Code 与 Anthropic SDK 走这里 |
| /v1/models | 列出当前密钥可见的模型 |
注意 SDK 的 base URL 写法不同:OpenAI 系带 /v1,Anthropic 系不带。详见 使用 Anthropic SDK。
测连接延迟
先测不含模型推理的纯链路耗时:
# 连接层延迟:DNS、TCP、TLS、首字节
curl -o /dev/null -s -w \
'dns: %{time_namelookup}s
tcp: %{time_connect}s
tls: %{time_appconnect}s
ttfb: %{time_starttransfer}s
total: %{time_total}s
' https://chuanapi.com/v1/models \
-H "Authorization: Bearer $WANCHUAN_API_KEY"单次结果波动大,跑十次看中位数更有意义:
# 连打 10 次,看中位数而不是单次
for i in $(seq 1 10); do
curl -o /dev/null -s -w "%{time_total}\n" https://chuanapi.com/v1/models \
-H "Authorization: Bearer $WANCHUAN_API_KEY"
done | sort -n | awk '{a[NR]=$1} END {print "median:", a[int(NR/2)+1]"s"}'测首字延迟
首字延迟(TTFT)决定了用户「感觉快不快」。开流式后测到第一个字节的时间:
# 首字延迟(TTFT):从发出请求到收到第一个 token
curl -N -s -o /dev/null -w "ttft(approx): %{time_starttransfer}s\n" \
https://chuanapi.com/v1/chat/completions \
-H "Authorization: Bearer $WANCHUAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID",
"messages": [{"role": "user", "content": "说一个字"}],
"stream": true,
"max_tokens": 16
}'把 MODEL_ID 换成 模型目录 里的真实 id。注意这次会产生少量计费。
怎么读这些数字
- tls 减去 tcp 明显偏大:握手慢,通常是网络路径问题。换网络环境或部署到离网关更近的地方会有明显改善。
- /v1/models 很快,但对话请求的 ttft 很慢:链路没问题,慢在模型侧。换一个更轻的模型,或缩短输入上下文。
- 两者都慢:先解决链路。链路没修好之前,换模型不会有帮助。
- 偶发极慢:可能撞上了上游抖动或限流。看返回状态码,429 的处理方式见 错误码。
推理类模型的 TTFT 天然就长——它要先想再答。选型时建议同时比较 TTFT 和总时长,别只看其中一个。