接入文档

把接口地址换成炙渊,原来的 OpenAI SDK 和客户端基本不用改。

接入地址

Base URLhttps://open.wupfish.top/v1
备用https://api.wupfish.top/v1稍后上线
鉴权Authorization: Bearer sk-...

SDK 里填 base_url 时要带 /v1;如果客户端只让填「接口地址」,填 https://open.wupfish.top。主站不可用时再切备用地址。

创建令牌

  1. 打开 控制台,用管理员给你的账号登录。
  2. 左侧「令牌」→「添加令牌」,设置额度、可用模型和有效期。
  3. 复制生成的 sk- 开头的令牌,只保存在本地或环境变量里。
令牌等同于密码,不要写进前端代码、截图或公开仓库。泄露后立刻在控制台删除。

快速开始

curl

curl https://open.wupfish.top/v1/chat/completions \
  -H "Authorization: Bearer sk-你的令牌" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": true
  }'

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://open.wupfish.top/v1",
    api_key="sk-你的令牌",
)

resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "你好"}],
    stream=True,
)

for chunk in resp:
    print(chunk.choices[0].delta.content or "", end="")

Node.js

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://open.wupfish.top/v1",
  apiKey: "sk-你的令牌",
});

const stream = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages: [{ role: "user", content: "你好" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

常用端点

端点用途
/v1/chat/completions对话补全,兼容 OpenAI
/v1/models查看当前令牌可用的模型
/v1/embeddings文本向量
/v1/images/generations图像生成
/v1/audio/transcriptions语音转写
/v1/messagesClaude 原生格式
/v1beta/models/...Gemini 原生格式

模型是否可用取决于令牌的模型范围和分组,实际清单以 /v1/models 返回为准。

流式输出

请求体里带 "stream": true 就是 SSE 流式返回。长回答建议一律开流式:非流式请求超过 100 秒可能被 Cloudflare 截断,返回 524。

常见错误

状态码含义处理
401令牌无效或没带检查 Authorization 头和令牌是否被删除
403模型或分组无权限看令牌的模型范围、账号分组
429限流或额度用尽降低并发,或在控制台看剩余额度
500 / 502上游渠道异常稍后重试,或换一个模型
524请求超过 100 秒改成流式输出

用量与计费

每次调用的模型、Token 数和扣费都能在控制台「日志」里查到;单价见 模型价格。