上周三 OpenAI 正式放出 gpt-6-astra(model ID: openai/gpt-6-astra),我第一时间想接进手头的代码工具里。结果折腾了大半天------这个模型目前走 OpenRouter 路由,请求头和之前 gpt-5.5 的写法有两处关键区别:一是 model ID 必须带 openai/ 前缀,二是 Authorization header 旁边要额外带 HTTP-Referer 和 X-Title 字段,漏填不会报错,但据我实测会被路由到旧模型(非 OpenRouter 官方文档明确说明的行为,见第三步说明)。我是看到返回的 token 用量和预期对不上才发现的,差点以为是模型本身拉胯。
这篇把从拿 Key 到跑通请求的完整流程写清楚,包括 Python SDK、curl、聚合网关三条路径,以及我踩过的几个报错和对应解法。
这篇适合谁
- 已经在用 gpt-5.5 或 gpt-5.4-pro,想升级到 gpt-6-astra 的后端/全栈开发者
- 用 Cline / Claude Code / Cherry Studio 等工具,想把底层模型切到 gpt-6-astra 的
- 之前没走过 OpenRouter 路由,对
HTTP-Referer这个额外字段一脸懵的 - 团队多人共用 API Key,需要统一管理调用审计的
整体流程
- 注册 OpenRouter 账号,拿到 API Key
- 确认 model ID 格式(和 gpt-5.x 系列不一样)
- 配置请求头(重点:
HTTP-Referer+X-Title) - 跑通第一个请求(Python / curl / 聚合网关三选一)
- 接入 Cline / Claude Code / Cherry Studio 等开发工具
- 处理常见报错
先说结论
| 对比项 | gpt-5.5 接入方式 | gpt-6-astra 接入方式 |
|---|---|---|
| model ID | openai/gpt-5.5 或直接 gpt-5.5 |
必须 openai/gpt-6-astra,不带前缀会 404 |
| base_url | https://openrouter.ai/api/v1 |
同左,没变 |
| HTTP-Referer | 可选,不填也能跑 | 强烈建议填;据作者实测漏填会路由到旧模型,OpenRouter 官方文档将其列为推荐字段 |
| X-Title | 可选 | 建议填写 |
| 返回格式 | OpenAI 兼容 | 同左 |
最坑的就是那个"静默降级"------请求返回 200,格式完全正常,但实际跑的不是 gpt-6-astra。我是对比了 response.model 字段才发现返回的是 openai/gpt-5.5,整个人都不好了。
第一步:拿到 OpenRouter API Key
去 openrouter.ai 注册,进 Dashboard → Keys → Create Key。
拿到的 Key 长这样:
sk-or-v1-xxxxxxxxxxxxxxxxxxxx
注意前缀是 sk-or-v1-,不是 OpenAI 原生的 sk-proj-。填错了会直接 401。
第二步:确认 model ID 格式
这是第一个和 gpt-5.x 系列不一样的地方。之前用 gpt-5.5 的时候,有些人习惯直接写 gpt-5.5,OpenRouter 也能识别。但 gpt-6-astra 必须写全:
openai/gpt-6-astra
写成 gpt-6-astra(不带前缀)会返回 404:
json
{"error":{"code":404,"message":"openai/gpt-6-astra is not a valid model ID"}}
这个报错信息有点迷惑------提示里明明有 openai/ 前缀,但你请求里没带的时候它也这么报。反正记住:永远带前缀。
第三步:配置请求头(最容易踩坑的地方)
这是第二个关键区别。gpt-6-astra 走 OpenRouter 路由时,除了标准的 Authorization: Bearer sk-or-v1-xxx,还需要:
HTTP-Referer: https://your-app.com
X-Title: YourAppName
HTTP-Referer 告诉 OpenRouter 请求来源,X-Title 是你的应用名称。
关于漏填的后果 :OpenRouter 官方文档将 HTTP-Referer 和 X-Title 标注为推荐填写 字段,用于流量统计和展示,并未在文档中明确说明"漏填会静默降级"。但据我实测,漏填 HTTP-Referer 后,请求照样返回 200,但 response.model 显示的是旧模型而非 gpt-6-astra。这一行为非官方文档说明,可能随 OpenRouter 版本变化,建议始终填写以规避风险。
我怎么发现的呢?跑了一组 benchmark prompt,发现输出质量和直接调 gpt-5.5 差不多,然后打印了一下 response 里的 model 字段:
python
print(response.model)
# 预期: openai/gpt-6-astra
# 实际: openai/gpt-5.5 ← 降级了!
加上 HTTP-Referer 之后立刻恢复正常。
第四步:Python 完整示例
用 openai Python SDK(当前稳定版为 1.x 系列,用 pip 安装即可):
bash
pip install openai --upgrade
python
from openai import OpenAI
client = OpenAI(
api_key="sk-or-v1-你的key",
base_url="https://openrouter.ai/api/v1",
)
python
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "写一个快排"}],
extra_headers={
"HTTP-Referer": "https://your-app.com",
"X-Title": "MyDevTool",
},
)
python
print(response.choices[0].message.content)
print(f"实际模型: {response.model}")
# 一定要检查这行,确认没被降级
extra_headers 是 openai Python SDK 支持的透传字段,直接把两个额外 header 塞进去就行。
第五步:curl 示例
给习惯命令行调试的朋友:
bash
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer sk-or-v1-你的key" \
-H "HTTP-Referer: https://your-app.com" \
-H "X-Title: MyDevTool" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-6-astra","messages":[{"role":"user","content":"hello"}]}'
注意 -H "HTTP-Referer" 这行,漏了就是前面说的静默降级(据作者实测)。
第六步:通过聚合网关接入
如果你不想直接对接 OpenRouter,或者团队需要统一管理多个模型的调用审计,可以走 API 聚合网关。ofox.io 支持 gpt-6-astra,0% 加价对齐官方价格。
走聚合网关的好处是 base_url 统一,不用每个模型记不同的 endpoint。通过 ofox.io 接入:
python
client = OpenAI(
api_key="你的ofox-key",
base_url="https://api.ofox.io/v1",
)
python
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "hello"}],
)
走 ofox.io 等聚合网关时不需要手动加 HTTP-Referer,网关层会处理路由逻辑。这对 Cline、Cherry Studio 这类工具来说省事不少------改个 base_url 就完事了,不用琢磨怎么在工具配置里塞自定义 header。
工具接入配置速查
Cline 配置
Settings → API Provider → 选 "OpenAI Compatible":
Base URL: https://openrouter.ai/api/v1
API Key: sk-or-v1-你的key
Model: openai/gpt-6-astra
Cline 目前没有自定义 header 的 UI 入口,直接走 OpenRouter 可能会触发前面提到的静默降级(据作者实测)。建议 Cline 用户走聚合网关,把 Base URL 改成 https://api.ofox.io/v1 就不用操心 Referer 的事。
Claude Code 配置
在 ~/.claude/config.json 里加(路径和字段名以 Anthropic 官方文档 为准,下方为参考示例):
json
{
"apiKey": "sk-or-v1-你的key",
"baseUrl": "https://openrouter.ai/api/v1",
"model": "openai/gpt-6-astra"
}
Claude Code 支持自定义 header,在 config 里加 "headers" 字段即可(具体字段名请以官方文档为准)。
Cherry Studio 配置
设置 → 模型服务 → 添加自定义服务:
API 地址: https://openrouter.ai/api/v1
密钥: sk-or-v1-你的key
模型: openai/gpt-6-astra
Cherry Studio 同样没有自定义 header 的地方,和 Cline 一样建议走聚合网关绕过 Referer 问题。
不同场景怎么选
| 你的场景 | 推荐接入方式 | 原因 |
|---|---|---|
| 个人开发者,Python/curl 直接调 | OpenRouter 直连 | 最简单,手动加 Referer 就行 |
| 用 Cline / Cherry Studio | 聚合网关(ofox.io 或同类) | 工具层面没法加自定义 header |
| 团队 5 人以上共用 | 聚合网关 | 统一 Key 管理、调用审计、成本分摊 |
| 需要同时调 Claude / Gemini / GPT | 聚合网关 | 一个 base_url 切所有模型 |
| 只用 gpt-6-astra 一个模型 | OpenRouter 直连 | 没必要多一层 |
报错对照表(Python/curl 场景)
| 报错现象 | 原因 | 解法 |
|---|---|---|
404 Not Found: openai/gpt-6-astra is not a valid model ID |
model ID 没带 openai/ 前缀 |
改成 openai/gpt-6-astra |
401 Unauthorized |
API Key 格式错误,用了 OpenAI 原生的 sk-proj- 前缀 |
换成 OpenRouter 的 sk-or-v1- Key |
返回 200 但 response.model 显示旧模型 |
据作者实测:漏填 HTTP-Referer 导致路由到旧模型 |
加上 HTTP-Referer 和 X-Title header |
429 Too Many Requests |
OpenRouter 的 rate limit,免费用户限制较严 | 升级 OpenRouter 套餐,或走聚合网关分流 |
timeout after 30000ms |
gpt-6-astra 推理较慢,默认超时不够 | client = OpenAI(timeout=120.0, ...) |
其中第三个最难排查------200 状态码、格式正常、不报错,但跑的不是你要的模型。每次接入新模型都建议打印 response.model 做一次确认,养成习惯能省很多排查时间。
常见问题 FAQ
Q: gpt-6-astra 和 gpt-5.5 的 model ID 格式为什么不一样?
其实不是"不一样",而是 OpenRouter 一直要求带 openai/ 前缀,只不过 gpt-5.5 时代它做了兼容------不带前缀也能路由到。gpt-6-astra 目前刚上线,这个兼容还没做,所以必须写全。估计过段时间会补上,但现在别赌。
Q: HTTP-Referer 填什么?随便填行不行?
可以填你的项目域名、GitHub 仓库地址、甚至 http://localhost:3000。OpenRouter 用这个做流量来源统计,不是鉴权字段,所以格式合法就行。建议不要留空,原因见第三步。
Q: 走 ofox.io 等聚合网关还需要填 HTTP-Referer 吗?
不需要。ofox.io 等聚合网关在网关层处理了路由逻辑,你只管传 model ID 和 messages,header 的事网关帮你搞定。注意:如果你选择直连 OpenRouter(而非通过聚合网关),仍然需要自行填写 HTTP-Referer,见第三步。
Q: gpt-6-astra 的定价是多少?
OpenAI 官方目前没有在 platform.openai.com 上公布 gpt-6-astra 的独立定价页面------这个模型目前只通过 OpenRouter 路由开放。OpenRouter 上的价格会随供应方调整浮动,建议直接查 openrouter.ai/models 的实时报价,这里不贴具体数字以免过期误导。
Q: 我用 Codex CLI 能接 gpt-6-astra 吗?
Codex CLI 支持自定义 base_url 和 model,理论上可以。但 Codex CLI 的自定义 header 配置比较麻烦(需要改环境变量),建议走聚合网关省事。
Q: 请求返回的内容质量和直接调 OpenAI 官方 API 有区别吗?
走 OpenRouter 路由本质上还是调的 OpenAI 的模型,内容质量没区别。区别在延迟------多了一层路由,P95 大概多 50-80ms,对非实时场景可以忽略。
小结
gpt-6-astra 的接入流程本身不复杂,核心是两个点:model ID 必须带 openai/ 前缀,直连 OpenRouter 时请求头必须带 HTTP-Referer。第二个点尤其难排查,因为它不报错,只是默默给你路由到旧模型(据作者实测,非官方文档说明)。
如果你用 Cline 或 Cherry Studio 这类没法自定义 header 的工具,走聚合网关是目前最省心的方案。直接改 base_url,model ID 填对就完事。
我现在的做法是每次切新模型都在代码里加一行 assert response.model == expected_model,虽然丑但管用。被静默降级坑过一次之后学乖了。