接入文档

本文档面向调用方,介绍如何使用本站统一网关,以及图片、视频和文件上传接口。

1. 开始接入

1.1 获取令牌

在本站控制台的「令牌」页面创建 API 令牌,并记录令牌值。令牌只在创建时完整显示,请妥善保管。

所有接口都使用 HTTPS,并通过 Bearer Token 鉴权:

Authorization: Bearer <你的令牌>

1.2 基础地址

<本站地址> 替换为管理员提供的网关地址。接口统一使用 /v1 前缀:

https://<本站地址>/v1

1.3 通用错误格式

请求失败时,接口返回统一的错误对象:

{
  "error": {
    "message": "请求参数无效",
    "type": "invalid_request_error",
    "code": "..."
  }
}

2. 文本模型接入

本站兼容常见的 OpenAI 风格接口。最常用的对话请求如下:

curl https://<本站地址>/v1/chat/completions \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<模型名>",
    "messages": [{"role": "user", "content": "你好"}]
  }'

常用接口:

能力 方法与路径
对话 POST /v1/chat/completions
Responses POST /v1/responses
补全 POST /v1/completions
向量 POST /v1/embeddings
重排序 POST /v1/rerank
Claude 消息 POST /v1/messages
Gemini 内容生成 POST /v1beta/models/{model}:generateContent
语音合成 POST /v1/audio/speech
语音转写 POST /v1/audio/transcriptions

具体模型名以本站控制台显示为准。

3. 图片生成

3.1 同步文生图

curl https://<本站地址>/v1/images/generations \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<图片模型名>",
    "prompt": "一只坐在窗边的橘猫",
    "n": 1,
    "size": "1024x1024",
    "response_format": "url"
  }'

响应中的 data[].url 是图片地址;如果使用 response_format: "b64_json",则从 data[].b64_json 读取 Base64 图片。

3.2 图片编辑 / 图生图

使用 multipart 上传原图:

curl https://<本站地址>/v1/images/edits \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -F model="<图片模型名>" \
  -F prompt="把背景改成海边" \
  -F image=@./input.png

也可以在 JSON 请求中引用已经上传到本站的文件地址,见「文件上传」。

3.3 异步图片任务

适合耗时较长的生图请求。先提交任务,再轮询任务状态:

curl https://<本站地址>/v1/images/tasks \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"<图片模型名>","prompt":"一只在月光下奔跑的狐狸","n":1}'

返回 idtask_id 后轮询:

curl https://<本站地址>/v1/images/tasks/<task_id> \
  -H "Authorization: Bearer $NEW_API_KEY"

任务完成后,响应中的 data[].url 可直接下载结果;也可以使用:

GET /v1/images/tasks/{task_id}/content

常见状态:queuedin_progresscompletedfailed

4. 视频生成

4.1 提交视频任务

视频接口支持 JSON 或 multipart。multipart 示例:

curl https://<本站地址>/v1/videos \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -F model="<视频模型名>" \
  -F prompt="一只猫在钢琴旁演奏" \
  -F seconds=5

使用 JSON 时示例:

curl https://<本站地址>/v1/videos \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"<视频模型名>","prompt":"一只猫在钢琴旁演奏","seconds":5}'

4.2 查询和下载结果

提交后记录返回的任务 ID:

curl https://<本站地址>/v1/videos/<task_id> \
  -H "Authorization: Bearer $NEW_API_KEY"

任务完成后下载视频:

curl -L https://<本站地址>/v1/videos/<task_id>/content \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -o output.mp4

常见状态:queuedin_progresscompletedfailed。按秒计费的模型需要提供 secondsduration

5. 文件上传

文件接口用于上传图片、视频和音频,再把返回的地址作为后续请求的素材引用。

5.1 上传文件

curl https://<本站地址>/v1/files \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -F purpose=vision \
  -F file=@./reference.png

成功后会返回文件 ID 和 content_url

{
  "id": "file-0123456789abcdef0123456789abcdef",
  "object": "file",
  "bytes": 20480,
  "filename": "reference.png",
  "purpose": "vision",
  "mime_type": "image/png",
  "content_url": "/v1/files/file-0123456789abcdef0123456789abcdef/content"
}

5.2 下载文件

curl -L https://<本站地址>/v1/files/<file_id>/content \
  -H "Authorization: Bearer $NEW_API_KEY" \
  -o reference.png

5.3 在生成请求中引用

content_url 拼成完整 URL,填入对应接口支持的图片或视频素材字段:

{
  "model": "<图片或视频模型名>",
  "prompt": "参考这张图片生成新的画面",
  "image": "https://<本站地址>/v1/files/<file_id>/content"
}

单文件上限、保留时间和支持的媒体类型以本站当前配置为准。文件按账号隔离,其他账号无法使用你的 file_id