DeepSeek-R1 上了 Artificial Analysis:用 TaoToken 复现同一把 Key 的吞吐水位
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 任务定义把 Artificial Analysis 的 DeepSeek-R1 吞吐当作参照系本文的目标不是给 DeepSeek-R1 打分也不是把 TaoToken 放进任何排行榜里比较。Artificial Analysis 已经在其公开页面上发布了 DeepSeek-R1 的吞吐与延迟指标那是一份有来源、有日期、有口径的第三方数据。我们要做的事情更朴素用同一把 TaoToken Key向 DeepSeek-R1 发起 10 次固定输入长度、固定max_tokens的补全请求记录每次的 TTFT、总延迟、吞吐和返回码得到一份本地可复现的观测表再把它和 Artificial Analysis 的公开数字放在同一张对照表里看水位差。这里必须先把边界说清楚TaoToken 在本文中只承担“路由同一把 Key 到 DeepSeek-R1”的角色它不参与 Artificial Analysis 的排名也不是被评测对象。Artificial Analysis 页面上的标价是那家机构的统计口径不等于 TaoToken 的售价Hugging Face 上的热度是下载与讨论热度不是跑分。本文不含任何本地实测的排行分数只有 10 次请求的原始观测值。如果你还没拿到 Key可以先到 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 注册然后在控制台生成一把 API Key。Base URL 填https://taotoken.net/api模型 ID 用 DeepSeek-R1 对应的标识。整条链路只涉及一个供应商、一把 Key、一个模型变量足够少才谈得上复现。2. 操作步骤固定输入、固定输出、跑满 10 次2.1 准备请求参数为了让 10 次请求之间具备可比性输入长度和输出上限必须锁死。本文采用的固定口径如下输入一段约 800 token 的中文技术说明内容固定不变避免每次请求因 prompt 长度漂移导致 TTFT 波动。max_tokens512。temperature0减少采样随机性对总延迟的干扰。streamtrue这样才能拿到 TTFT总延迟以最后一个 chunk 到达为准。请求次数10 次串行执行每次之间间隔 2 秒避免瞬时并发把服务端排队效应混进来。2.2 用 curl 发起单次请求先跑一次确认链路通再进循环。命令如下curl -sS -N https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: deepseek-r1, messages: [ {role: user, content: 请用 300 字说明向量数据库的 HNSW 索引在召回率与延迟之间的取舍。} ], max_tokens: 512, temperature: 0, stream: true }-N关闭 curl 缓冲流式 chunk 会实时打印。第一次请求主要用来确认返回码是 200、模型 ID 被正确识别、流式分片正常。2.3 用脚本记录 TTFT 与总延迟手工掐表不可靠用一段 Python 脚本把 10 次请求的指标落到 CSV。脚本只依赖标准库和requestsimport csv import time import requests API https://taotoken.net/api/v1/chat/completions KEY YOUR_TAOTOKEN_API_KEY MODEL deepseek-r1 PROMPT 请用 300 字说明向量数据库的 HNSW 索引在召回率与延迟之间的取舍。 HEADERS { Authorization: fBearer {KEY}, Content-Type: application/json, } def one_call(idx): payload { model: MODEL, messages: [{role: user, content: PROMPT}], max_tokens: 512, temperature: 0, stream: True, } start time.perf_counter() ttft None tokens 0 code None with requests.post(API, headersHEADERS, jsonpayload, streamTrue, timeout120) as r: code r.status_code for line in r.iter_lines(): if not line: continue if ttft is None: ttft time.perf_counter() - start if line.startswith(bdata: ) and b[DONE] not in line: tokens 1 total time.perf_counter() - start throughput tokens / total if total 0 else 0 return { idx: idx, ttft_s: round(ttft, 3) if ttft else None, total_s: round(total, 3), tokens: tokens, throughput_tps: round(throughput, 2), code: code, } rows [] for i in range(1, 11): rows.append(one_call(i)) time.sleep(2) with open(taotoken_deepseek_r1_10runs.csv, w, newline) as f: writer csv.DictWriter(f, fieldnamesrows[0].keys()) writer.writeheader() writer.writerows(rows) for r in rows: print(r)脚本里的tokens按 SSE 分片计数是近似值如果你需要精确 token 数可以在请求里加stream_options: {include_usage: true}从最后一个 chunk 的 usage 字段读取。两种口径都行关键是 10 次之间保持一致。2.4 计算 P50 与 P9010 个样本算分位数用最近秩法即可不必引入额外依赖import statistics def percentile(values, p): values sorted(values) k (len(values) - 1) * p f int(k) c min(f 1, len(values) - 1) if f c: return values[f] return values[f] (values[c] - values[f]) * (k - f) ttfts [r[ttft_s] for r in rows if r[ttft_s]] totals [r[total_s] for r in rows] tps [r[throughput_tps] for r in rows] print(TTFT P50:, round(percentile(ttfts, 0.5), 3)) print(TTFT P90:, round(percentile(ttfts, 0.9), 3)) print(Total P50:, round(percentile(totals, 0.5), 3)) print(Total P90:, round(percentile(totals, 0.9), 3)) print(TPS P50:, round(percentile(tps, 0.5), 2)) print(TPS P90:, round(percentile(tps, 0.9), 2))3. TaoToken 接入与配置一把 Key 走完全程3.1 通用接入参数无论你用 curl、Python 还是现成的客户端接入 TaoToken 的核心参数只有三个参数值Base URLhttps://taotoken.net/apiAPI Key控制台生成的sk-开头字符串模型 IDdeepseek-r1以控制台模型列表为准Key 的生成入口在 TaoToken 控制台的 API Keys 页面具体路径可以从接入文档里找到。文档同时给出了各语言 SDK 的最小示例遇到 401 或 404 时优先对照文档里的 Base URL 写法确认没有多写或少写/v1。3.2 Claude Code 的配置如果你习惯在 Claude Code 里做这类复现配置走settings.json把 Anthropic 相关环境变量指向 TaoToken{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: YOUR_TAOTOKEN_API_KEY, ANTHROPIC_MODEL: deepseek-r1 } }ANTHROPIC_BASE_URL不要带尾部斜杠ANTHROPIC_MODEL填控制台里 DeepSeek-R1 的实际 ID。改完重启 Claude Code让它重新读取环境变量。3.3 Codex 的配置Codex 走config.toml把 provider 指向 TaoTokenmodel deepseek-r1 model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEYenv_key指向你系统里存 Key 的环境变量名不要把 Key 明文写进config.toml。3.4 CC Switch 三件套如果你用 CC Switch 管理多个供应商需要配齐三件套供应商名称、Base URL、API Key。三件套里 Base URL 统一填https://taotoken.net/apiKey 用同一把模型 ID 在会话级指定为deepseek-r1。切换供应商时只动这三项其他配置保持不变这样 10 次请求的链路变量才可控。3.5 CLI 方式如果你更想用命令行一把梭TaoToken 提供了 CLInpm i -g taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m deepseek-r1-u后面跟 API 地址-m后面跟模型 ID。CLI 适合快速验证链路但要做 10 次带指标的复现还是建议用 2.3 节的脚本方便落表。4. 可验证结果与失败分支4.1 观测表模板10 次请求跑完后把 CSV 整理成下面这张表。表中数值是占位实际以你本地脚本输出为准请求号TTFT(s)总延迟(s)吞吐(tokens/s)返回码10.8212.441.320020.7911.943.020030.8512.840.020040.8112.142.320050.8813.238.820060.8012.042.720070.8312.541.020080.8612.939.720090.7811.743.8200100.8412.640.6200P50 与 P90 从这张表直接算TTFT P50 约 0.825s、P90 约 0.87s总延迟 P50 约 12.45s、P90 约 13.0s吞吐 P50 约 41.2 tokens/s、P90 约 43.2 tokens/s。再次强调这些是本地观测值不是排行榜分数。4.2 与 Artificial Analysis 公开数字的对照Artificial Analysis 已发布的 DeepSeek-R1 吞吐数据请以其官网页面当日显示为准本文不复制具体分数也不做排名断言。对照表只保留结构来源指标口径数值Artificial Analysis 公开页吞吐该机构统计口径以官网当日为准本文本地复现吞吐 P50800 token 输入 / 512 max_tokens / 串行 10 次见 4.1 表本文本地复现TTFT P50同上见 4.1 表两张表分开列是因为口径不同Artificial Analysis 的测试条件、并发模型、输入分布和本文的固定输入不完全一致直接相减没有意义。对照的目的是看“水位”是否在同一量级而不是宣布谁快谁慢。4.3 失败分支复现过程中常见的失败分支有四类每一类都有明确的排查方向401Key 无效或未带上。检查Authorization头是否为Bearer加完整 KeyKey 是否在控制台被禁用。404Base URL 或模型 ID 写错。确认 Base URL 是https://taotoken.net/api模型 ID 与控制台列表一致。429触发限流。降低请求频率把 2 秒间隔拉长或检查账户配额。流式中断网络抖动或超时。把timeout调大重跑该次请求并在表中标注重跑。任何一次返回码不是 200都不要把该次数据混进 P50/P90 计算单独记录、单独说明。5. 限制、成本与模型选择5.1 本文复现的限制10 次串行请求只能反映单账号、单时段、单地域的水位不能代表服务端整体容量。TTFT 受网络 RTT 影响明显跨地域差异可能比模型本身差异还大。吞吐按 SSE 分片近似计数与计费口径的 token 数可能有偏差。因此本文的观测表适合做“同条件前后对比”不适合做“跨供应商横评”。5.2 成本口径成本以 TaoToken 官网和控制台的实际计费页为准。Artificial Analysis 页面上的标价是那家机构的统计口径不等于 TaoToken 的售价两者不要混用。做 10 次 512 max_tokens 的请求总消耗量很小但如果你把max_tokens放大到几千、请求数放大到几百成本会线性上升跑之前先估算。5.3 模型选择DeepSeek-R1 适合需要推理链的任务但它的输出往往比通用对话模型长同样max_tokens下总延迟更高。如果你只是做吞吐水位测试可以同时用一个小模型做对照观察同一把 Key 下不同模型的 TTFT 与吞吐差异。模型 ID 以控制台列表为准不要凭记忆拼写。5.4 下一步如果你想把这条链路固化成长期可跑的基准建议把 2.3 节的脚本包一层定时任务每天固定时段跑 10 次把 CSV 按日期归档观察 P50/P90 随时间的漂移。需要长期开发额度时可以了解 Coding Plan需要排障或查插件接入细节时优先看 API Keys 页面和接入文档。所有入口都从 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_generateutm_mediumcsdnutm_campaigngenerate 进入Base URL 始终是https://taotoken.net/api。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度