接入文档
把接口地址换成炙渊,原来的 OpenAI SDK 和客户端基本不用改。
接入地址
Base URLhttps://open.wupfish.top/v1
备用https://api.wupfish.top/v1稍后上线
鉴权Authorization: Bearer sk-...
SDK 里填 base_url 时要带 /v1;如果客户端只让填「接口地址」,填 https://open.wupfish.top。主站不可用时再切备用地址。
创建令牌
- 打开 控制台,用管理员给你的账号登录。
- 左侧「令牌」→「添加令牌」,设置额度、可用模型和有效期。
- 复制生成的
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/messages | Claude 原生格式 |
/v1beta/models/... | Gemini 原生格式 |
模型是否可用取决于令牌的模型范围和分组,实际清单以 /v1/models 返回为准。
流式输出
请求体里带 "stream": true 就是 SSE 流式返回。长回答建议一律开流式:非流式请求超过 100 秒可能被 Cloudflare 截断,返回 524。
常见错误
| 状态码 | 含义 | 处理 |
|---|---|---|
401 | 令牌无效或没带 | 检查 Authorization 头和令牌是否被删除 |
403 | 模型或分组无权限 | 看令牌的模型范围、账号分组 |
429 | 限流或额度用尽 | 降低并发,或在控制台看剩余额度 |
500 / 502 | 上游渠道异常 | 稍后重试,或换一个模型 |
524 | 请求超过 100 秒 | 改成流式输出 |
用量与计费
每次调用的模型、Token 数和扣费都能在控制台「日志」里查到;单价见 模型价格。
