DEVELOPER GUIDE / ChusAPI

从第一个请求开始。

创建本站 API Key,选对分组与协议,把已有应用接入 ChusAPI。下方示例全部请求本站,不需要厂商账户或厂商 Key。

文本接入Chat、Responses 与 SDK图片生成同步生成与图像编辑视频生成OpenAI · Seedance · MiniMax

01 / 快速接入

  1. 登录本站,在 API 密钥页面创建 Key,选择与你要调用的业务匹配的分组。
  2. 在控制台查看模型和规格。文本模型也可用下方 /v1/models 查询。
  3. 客户端选择兼容协议,填写本站地址与本站 Key。先发一个简单请求,再增加工具调用、图片等参数。
配置项填写值
站点根地址https://api.qiyun.site
OpenAI SDK Base URLhttps://api.qiyun.site/v1
API Key自己在本站创建的 Key
Model当前分组开放的公开模型名,不能随意填厂商型号
export CHUSAPI_API_KEY='你的本站 API Key'
export CHUSAPI_MODEL='当前分组开放的模型名'
curl https://api.qiyun.site/v1/chat/completions \
  -H "Authorization: Bearer $CHUSAPI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{\"model\":\"$CHUSAPI_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"你好,请用一句话介绍你自己\"}]}"
Base URL 不是完整接口地址。SDK 通常会追加 /chat/completions 等路径;不要重复填写 /v1/v1。如果软件自动追加 /v1,则填站点根地址。接口是否可用取决于 Key 所属分组、模型和上游能力。

02 / 密钥与分组

OpenAI 格式使用 Authorization: Bearer <本站 Key>。Claude 原生格式使用 x-api-key,Gemini 原生格式使用 x-goog-api-key。不同协议的认证头不要混用。

视频请使用“视频混合组”的 Key。它不能用于文本聊天或图片生成,也不提供文本模型列表。文本、图片、视频共用本站账号体系,但需要各自分组权限;并非一个 Key 自动拥有全部能力。

API Key 应放在你自己的服务器环境变量或本机客户端中。本文档不接收、不保存 Key;不要把 Key 嵌入公开网页、截图或 Git 仓库。

03 / 查看可用模型

curl https://api.qiyun.site/v1/models \
  -H "Authorization: Bearer $CHUSAPI_API_KEY"

OpenAI 格式读取 data[].id 作为 model。列表由 Key 的分组和模型权限决定;模型名存在不代表该模型支持所有接口。视频模型和规格请到视频专区查看。

04 / Chat Completions

POST /v1/chat/completions 适用于普通聊天及 OpenAI-compatible 客户端。非流式文本通常在 choices[0].message.content。

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["CHUSAPI_API_KEY"],
    base_url="https://api.qiyun.site/v1",
    max_retries=0,
)
result = client.chat.completions.create(
    model=os.environ["CHUSAPI_MODEL"],
    messages=[{"role": "user", "content": "给我三个学习 Python 的建议"}],
)
print(result.choices[0].message.content)

流式输出

stream = client.chat.completions.create(
    model=os.environ["CHUSAPI_MODEL"],
    messages=[{"role": "user", "content": "讲一个简短故事"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

REST 流式响应为 SSE,请按事件消费,不要把整个响应当作一个 JSON。工具调用、结构化输出和视觉输入须使用支持这些能力的模型。

05 / Responses

POST /v1/responses 适用于使用 Responses 协议的应用与编码工具。选择支持此协议的分组;不要仅把 Chat Completions 请求体改一个 URL。

result = client.responses.create(
    model=os.environ["CHUSAPI_MODEL"],
    input="用 Python 写一个合并两个字典的函数",
)
print(result.output_text)

SDK 的 output_text 是便利字段;使用原始 REST 时读取 output 内容。工具与会话续接能力以所选模型及分组支持为准。

06 / Claude Messages

使用支持 Anthropic Messages 的 Key 和模型。完整接口为 POST /v1/messages:

curl https://api.qiyun.site/v1/messages \
  -H "x-api-key: $CHUSAPI_API_KEY" \
  -H 'anthropic-version: 2023-06-01' \
  -H 'Content-Type: application/json' \
  -d "{\"model\":\"$CHUSAPI_MODEL\",\"max_tokens\":512,\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}"

读取 content 数组中的 text 内容块。Claude 客户端通常使用站点根地址作为 Base URL;本站 API Key 页的“使用”弹窗可生成对应客户端配置。

07 / Gemini 原生接口

使用 Gemini 兼容分组与模型。SDK 或工具若要 Gemini 原生格式,使用 /v1beta,不要把它当作 OpenAI 格式。

curl "https://api.qiyun.site/v1beta/models/$CHUSAPI_MODEL:generateContent" \
  -H "x-goog-api-key: $CHUSAPI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"contents":[{"role":"user","parts":[{"text":"你好,请介绍一下自己"}]}]}'

读取 candidates[].content.parts[].text。需要流式响应时使用 :streamGenerateContent?alt=sse,并按 SSE 处理。

08 / 图片生成

使用支持图片的分组与公开图片模型名;视频 Key 不适用。生成接口为 POST /v1/images/generations:

curl https://api.qiyun.site/v1/images/generations \
  -H "Authorization: Bearer $CHUSAPI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{\"model\":\"$CHUSAPI_MODEL\",\"prompt\":\"白色背景上的一颗红苹果\",\"n\":1}"

尺寸、质量和返回格式依模型而异,先使用模型默认值。结果可能为 data[].url 或 data[].b64_json;Base64 需解码保存,URL 则按实际返回下载。

图像编辑使用 POST /v1/images/edits 和 multipart 文件,必须选择支持编辑的模型。异步及批量生图属于本站扩展,控制台入口提供任务记录;不要把它们当作所有 OpenAI SDK 都内置支持的接口。

curl https://api.qiyun.site/v1/images/edits \
  -H "Authorization: Bearer $CHUSAPI_API_KEY" \
  -F "model=$CHUSAPI_MODEL" \
  -F 'prompt=把背景改成浅蓝色,保留主体' \
  -F 'image=@input.png'

09 / 把已有工具接到本站

  1. 打开客户端的模型服务商设置,选择“自定义 OpenAI / OpenAI-compatible”。
  2. Base URL 填 https://api.qiyun.site/v1,API Key 填本站 Key。
  3. 获取模型列表,或按本站控制台的公开模型名手动添加。
  4. 选择合适的协议:普通聊天用 Chat Completions,明确要求 Responses 的工具使用 Responses;Claude/Gemini 原生客户端按前面相应章节配置。

本站 API Key 页的“使用”弹窗含 Claude Code、Codex、Gemini 等配置示例,应优先使用与该 Key 分组对应的配置。

JavaScript / Node.js 示例

import OpenAI from 'openai';
const client = new OpenAI({
  apiKey: process.env.CHUSAPI_API_KEY,
  baseURL: 'https://api.qiyun.site/v1',
  maxRetries: 0,
});
const result = await client.chat.completions.create({
  model: process.env.CHUSAPI_MODEL,
  messages: [{ role: 'user', content: '你好' }],
});
console.log(result.choices[0]?.message.content);

Python 使用 pip install openai,Node.js 使用 npm install openai。上述代码运行在自己的服务端或本机,不要直接放进公开浏览器页面。

10 / 费用与用量

请求按本站模型价格和所选分组规则结算,在控制台查看余额与用量。视频提交时冻结预估金额,成功结算,失败释放;查询任务和下载视频不重复生成。具体价格以控制台展示为准,不使用外部文档中的报价。

余额金额沿用本站账务口径。请求超时不一定代表生成失败:视频和图片任务应先查原任务,避免重复提交造成多次收费。不要盲目开启自动重试或自动换模型。

11 / 常见问题

现象优先检查
401Key 是否有效,认证头是否正确,是否多了空格或引号。
403 / 模型不可用Key 分组、模型白名单和客户端协议是否匹配。
404完整路径是否正确,是否重复 /v1,视频 Key 是否误调文本接口。
余额或配额不足账号可用余额、Key 配额、分组限制和已有任务冻结金额。
429降低并发,按响应提示等待,不要循环重新提交。
400 / 参数错误检查字段类型、模型能力、图片尺寸、视频时长和分辨率。
5xx / 超时保存时间、任务 ID 与响应错误码;先查任务,不自动重新生成。

反馈问题时提供时间、接口路径、模型名、状态码、任务 ID 或请求 ID。不要提供完整 API Key。不同协议的错误信封可能不同,请同时检查 HTTP 状态和响应正文。