用 OpenAI 官方 SDK(Python / Node)接入 GrooRoute Pro

用 OpenAI 官方 SDK 接入 GrooRoute Pro,只需要改两处:base_url 填 https://grooroute.xyz/v1,api_key 换成平台的 API Key。SDK 的其余用法不变。chat.completions 和 responses 两种写法的接口都已登记,具体模型支持哪种见下文。model 填模型页列出的模型 ID。

准备

  1. 注册并登录 GrooRoute Pro,在控制台的「API 密钥」里创建一把命名密钥,可以设置额度、有效期及需要的访问限制。
  2. 把密钥放进环境变量,不要写进代码:
export GROOROUTE_API_KEY='<your key>'

接入只用到三样东西:

项目值
base_urlhttps://grooroute.xyz/v1
鉴权请求头 Authorization: Bearer <API Key>
接口POST /v1/chat/completions、POST /v1/responses

下面 chat.completions 的示例用 deepseek-v4.1-flash,responses 的示例用 gpt-5.6-luna,各是清单里第一个声明了对应协议的模型,可以换成模型页列出的其他模型 ID。

Python:chat.completions

创建客户端时传入 base_url 和 api_key,之后和平时一样调用。

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://grooroute.xyz/v1",
    api_key=os.environ["GROOROUTE_API_KEY"],
)

completion = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[
        {"role": "user", "content": "Hello"}
    ],
)

print(completion.choices[0].message.content)

Python:responses

客户端的创建方式相同,把调用换成 responses.create,输入用 input。

response = client.responses.create(
    model="gpt-5.6-luna",
    input="Hello",
)

print(response.output_text)

Node:chat.completions

Node 的 SDK 里参数名是 baseURL 和 apiKey。

import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: "https://grooroute.xyz/v1",
  apiKey: process.env.GROOROUTE_API_KEY,
})

const completion = await client.chat.completions.create({
  model: "deepseek-v4.1-flash",
  messages: [{ role: 'user', content: 'Hello' }],
})

console.log(completion.choices[0].message.content)

Node:responses

const response = await client.responses.create({
  model: "gpt-5.6-luna",
  input: 'Hello',
})

console.log(response.output_text)

不用 SDK:curl

想先确认地址和密钥没有问题,可以直接发一个请求。请求路径是 base_url 后面加 /chat/completions。

curl https://grooroute.xyz/v1/chat/completions \
  -H "Authorization: Bearer $GROOROUTE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"Hello"}]}'

返回 JSON 说明地址和密钥都对。返回 401 先检查密钥,返回 404 先检查地址里的 /v1,细节见常见报错排查。

两种写法怎么选

chat.completions 对应接口 /v1/chat/completions,responses 对应接口 /v1/responses,两者都是平台登记的协议端点。端点登记不代表每个模型、每个档位都已开放这种协议:发送请求前,请在接入文档页选择你的 Key 和模型,确认它支持的协议。

下表是平台已发布、并且当前有供给的模型,以及各自的供给声明支持的接口。接口一列合并了公开可用档位的声明,以接入文档页为准:

模型 ID支持的接口
deepseek-v4.1-flashPOST /v1/chat/completions
gpt-5.6-lunaPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
gpt-5.6-solPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
gpt-5.6-terraPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
gpt-6-astraPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
gpt-6-lunaPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
gpt-6-solPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
gpt-6.1-solPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
grok-4.7POST /v1/chat/completions、POST /v1/responses
gpt-image-1.5未声明
gpt-image-2未声明
gpt-image-2.5-flare未声明
gpt-image-2.5-sunburst未声明
claude-opus-5-5POST /v1/chat/completions、POST /v1/messages、POST /v1/responses
claude-sonnet-5-5POST /v1/chat/completions、POST /v1/messages、POST /v1/responses
claude-fable-5-1POST /v1/chat/completions、POST /v1/messages
gemini-3.8-flashPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses
gemini-4-argonPOST /v1/chat/completions、POST /v1/messages、POST /v1/responses

已有项目用的是哪一种就继续用哪一种,只改 base_url 和密钥即可。想知道一把 Key 能用哪些模型,可以带上这把 Key 调用 GET /v1/models。

要点

常见问题

base_url 要不要带 /v1?

要。OpenAI SDK 只在你给的地址后面补 /chat/completions 或 /responses,所以地址本身要以 /v1 结尾。

chat.completions 和 responses 该用哪一个?

两个都是平台登记的 OpenAI 兼容接口。一个模型在你这把 Key 的档位上开放哪种协议,以接入文档页按 Key 和模型生成的配置为准。

model 填什么?

填模型页列出的模型 ID,也可以用你的 Key 调用 GET /v1/models 查看这把 Key 能用的模型。

API Key 写在代码里可以吗?

不建议。示例都从环境变量读取 Key,Key 不进代码仓库。

最后更新:

相关教程

注册 GrooRoute Pro 账户 · 接入文档 · 模型与价格 · 条款与隐私