Skip to content

OpenAI 兼容接入

树新在线是一个 OpenAI 兼容的 AI API 网关:把你代码里的 base_url 换成本站地址、换上本站的 API Key,原有调用逻辑不用改。

本站不是 OpenAI、Anthropic 或 xAI 的官方服务,与上述公司没有隶属、授权或合作关系。

Base URLhttps://api.treenew.online/v1
端点POST /v1/chat/completions
鉴权Authorization: Bearer <API Key>
API Key控制台的「令牌」页创建
模型清单https://treenew.online/models/
价格https://treenew.online/pricing/

Python(openai SDK)

python
from openai import OpenAI

client = OpenAI(
    api_key="你的 API Key",
    base_url="https://api.treenew.online/v1",
)

resp = client.chat.completions.create(
    model="gpt-5.6-luna",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

Node.js(openai SDK)

javascript
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: '你的 API Key',
  baseURL: 'https://api.treenew.online/v1',
});

const resp = await client.chat.completions.create({
  model: 'gpt-5.6-luna',
  messages: [{ role: 'user', content: '你好' }],
});
console.log(resp.choices[0].message.content);

注意 Node SDK 的字段名是 baseURL(URL 大写),Python 是 base_url

curl

bash
curl https://api.treenew.online/v1/chat/completions \
  -H "Authorization: Bearer 你的 API Key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-luna",
    "messages": [{"role": "user", "content": "你好"}]
  }'

用环境变量(不改代码)

多数工具与 SDK 会自动读取这两个环境变量,设好之后连代码都不用动:

bash
export OPENAI_BASE_URL="https://api.treenew.online/v1"
export OPENAI_API_KEY="你的 API Key"

Windows PowerShell:

powershell
$env:OPENAI_BASE_URL = "https://api.treenew.online/v1"
$env:OPENAI_API_KEY  = "你的 API Key"

有些较老的工具读的是 OPENAI_API_BASE(旧变量名),若 OPENAI_BASE_URL 不生效,两个都设上即可。

与官方 API 的差异

  • 对话推理只有 POST /v1/chat/completions 这一个端点,不支持 embeddings、images、audio、assistants、batch 等其他端点。
  • 模型名称以 https://treenew.online/models/ 上的列表为准,不一定与官方名称一一对应。本站共提供 16 个模型,来自 Anthropic(Claude)、xAI(Grok)、OpenAI。
  • 额度消耗与请求限速由账号所在分组(defaultvip)决定,不同分组计费倍率不同,价格见 https://treenew.online/pricing/

流式输出

请求参数中设置 stream: true 时,网关通过 SSE 返回流式响应。客户端需注意:

  • 逐块读取响应,每条消息以 data: 开头,需解析其后的 JSON。
  • 流式响应以 data: [DONE] 作为结束标志。
  • 网络超时或断线时应实现重连,建议采用指数退避策略。
  • 如果你自己在前面还套了一层反向代理,注意它的缓冲设置。以 Nginx 为例,未关闭缓冲会把流式响应攒起来一次性吐出,需要 proxy_buffering off;
python
from openai import OpenAI

client = OpenAI(
    api_key="你的 API Key",
    base_url="https://api.treenew.online/v1",
)

stream = client.chat.completions.create(
    model="gpt-5.6-luna",
    messages=[{"role": "user", "content": "你好"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

常见报错

每种报错都有独立的排查页,下面是速查对照:

报错最可能的原因详细排查
401 UnauthorizedKey 错误、漏了 Bearer 前缀、复制时混入空白字符401 排查
404 model not found模型名与本站清单不一致,或当前分组无权限模型不存在
429 Too Many Requests触发频率限制,额度用尽——两者处理方式相反429 排查
流式没输出 / 一次性返回 / 中途断流未开 stream、中间层缓冲、客户端解析方式不对流式输出失败
超时 / 502 / 504客户端超时太短、中间层上限、上游生成慢超时与 502

自查清单

  1. base_url 是否为 https://api.treenew.online/v1(注意是 api. 子域,且以 /v1 结尾)
  2. API Key 是否来自「令牌」页,请求头是否带 Bearer 前缀
  3. 模型名是否与 https://treenew.online/models/ 列表完全一致
  4. 当前分组是否支持该模型、是否已触发限速
  5. 控制台用量页是否显示额度不足