只改三处:base_url = https://www.gpt345.com/v1,api_key 用词元密钥,model 用广场完整 ID。同一 SDK 可切 Gemini 生图、Grok 生图和国产文本;视频不要当 chat.completions 用。
1. 接入前准备
准备词元账号、API Key 和模型广场中的完整模型 ID。生产环境将 Key 放在环境变量,不要写进前端代码或提交到仓库。
视频模型使用独立的异步任务流程;如果你的业务只需要文字或图片,先用 /v1/chat/completions 做最小请求。
2. 配置地址与模型
OpenAI SDK 的 base_url 只填写一次 https://www.gpt345.com/v1,model 使用模型广场的完整代号。不要把 /v1 重复拼到请求路径。
3. cURL 请求
curl https://www.gpt345.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"MODEL_ID","messages":[{"role":"user","content":"用一句话确认接口已通"}]}'4. Python 接入
保留现有 OpenAI SDK。不要在同一提交里同时改提示词、温度和重试。先让短请求的余额对得上。
from openai import OpenAI
client = OpenAI(base_url="https://www.gpt345.com/v1", api_key="YOUR_API_KEY")
r = client.chat.completions.create(model="MODEL_ID", messages=[{"role":"user","content":"改写成商品卖点"}])
print(r.choices[0].message.content)5. Node.js 接入
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://www.gpt345.com/v1", apiKey: process.env.GPT345_API_KEY });
const result = await client.chat.completions.create({ model: "MODEL_ID", messages: [{ role: "user", content: "用一句话确认接口已通" }] });
console.log(result.choices[0].message.content);6. 流式输出与媒体任务
- 图片按张,Grok/Gemini 公开参考 0.01 元。
- Seedance / Grok 视频返回任务 ID,要轮询。
- 流式输出只适合文本;不要给视频开 stream。
Seedance 使用 独立子站,不能拿主站的账号、余额、Key 或 Base URL 直接请求子站视频接口。
生产环境按项目拆分试验 Key 和生产 Key。客服 QQ 49098022 或 Telegram 群组。
7. 错误排查
| 状态 | 先核对 |
|---|---|
| 401 | Bearer 格式、Key 是否完整、Key 是否属于当前站点 |
| 404 | Base URL 是否重复添加 /v1、模型 ID 是否完整 |
| 429 | 余额、Key 限额、并发和任务状态 |
| 视频超时 | 先查询任务 ID,不要按聊天请求重试 |
8. 生产安全
服务端保存 Key,前端只调用自己的后端;为试验 Key 设置小额上限,定期撤销不用的 Key,并将 request ID 与账单记录关联,方便处理争议。
常见问题
base_url 要不要再加 /v1?
词元兼容入口已经是 /v1。SDK 再拼一次会 404。请求路径里只出现一次 /v1。
换国产模型要改 SDK 吗?
通常不用。DeepSeek、GLM、Kimi、通义只改 model。价格以控制台人民币账单为准。