Completions API

POST /v1/completions

传统文本补全接口。接口根据 prompt 生成一个或多个文本候选,适用于兼容旧版 Completion 模型的场景。以下字段与 CompletionRequest 保持一致;网关不支持的模型或取值会返回 400。

该接口主要用于兼容旧版 Completion 模型。文中的 gpt-3.5-turbo-instruct 仅作为传统模型示例,实际可用模型以当前账号配置和上游渠道为准;新项目应优先评估 Chat Completions 或 Responses 接口。

请求参数

请求头

Authorization

使用 Bearer Token 认证。

格式:Authorization: Bearer sk-xxxxxx

请求体

请求参数(10 个)
参数类型默认值说明是否必填
modelstring—要调用的模型 ID,例如 gpt-3.5-turbo-instruct。是
promptstring / array—用于补全的提示词。可以传入单个字符串或字符串数组;数组中的每个元素会独立生成结果。是
max_tokensinteger未声明限制每个提示词生成的最大 token 数。总上下文长度不能超过模型上限。否
temperaturenumber未声明控制采样随机性,具体范围由模型决定。否
top_pnumber未声明核采样范围,具体范围由模型决定。一般只调整 temperature 或 top_p 其中一个。否
ninteger未声明为每个提示词生成的候选数量。否
streamboolean未声明设置为 true 时以 Server-Sent Events(SSE)增量返回结果;设置为 false 时返回完整 JSON。否
stopstring / array未声明命中停止序列后结束生成,可传入一个字符串或字符串数组。否
suffixstring未声明插入补全文本时使用的后缀,仅适用于支持 infill 的模型。否
echoboolean未声明是否在每个结果的 text 前回显输入的提示词。否

参数约束

  • model 和 prompt 必须同时提供;prompt 为空数组会返回 400。
  • temperature 与 top_p 均用于采样控制,通常只调整其中一个。
  • stream=true 时,响应为 SSE 增量事件;stream=false(默认)时返回完整响应。
  • n 应为正整数;max_tokens 不能为负数。实际上限由模型和网关配置决定。

请求体示例

查看 JSON 请求体示例
{
  "model": "gpt-3.5-turbo-instruct",
  "prompt": "Write a short greeting:",
  "max_tokens": 64,
  "temperature": 0.7,
  "top_p": 1,
  "n": 1,
  "stop": ["\n\n"],
  "stream": false,
  "suffix": "",
  "echo": false
}

请求示例代码

curl -X POST "https://10000router.com/v1/completions" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo-instruct",
    "prompt": "Write a short greeting:",
    "max_tokens": 64,
    "temperature": 0.7,
    "stream": false
  }'
const response = await fetch("https://10000router.com/v1/completions", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + process.env.API_KEY,
  },
  body: JSON.stringify({
    model: "gpt-3.5-turbo-instruct",
    prompt: "Write a short greeting:",
    max_tokens: 64,
    temperature: 0.7,
    stream: false
  })
});
console.log(await response.json());
package main

import (
  "log"
  "net/http"
  "os"
  "strings"
)

func main() {
  payload := `{"model":"gpt-3.5-turbo-instruct","prompt":"Write a short greeting:","max_tokens":64,"temperature":0.7,"stream":false}`
  req, err := http.NewRequest("POST", "https://10000router.com/v1/completions", strings.NewReader(payload))
  if err != nil { log.Fatal(err) }
  req.Header.Set("Authorization", "Bearer "+os.Getenv("API_KEY"))
  res, err := http.DefaultClient.Do(req)
  if err != nil { log.Fatal(err) }
  defer res.Body.Close()
}
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["API_KEY"], base_url="https://10000router.com/v1")

response = client.post(
    "https://10000router.com/v1/completions",
    headers={
        "Authorization": "Bearer " + os.environ["API_KEY"],
    },
    json={
        "model": "gpt-3.5-turbo-instruct",
        "prompt": "Write a short greeting:",
        "max_tokens": 64,
        "temperature": 0.7,
        "stream": False,
    },
)
print(response)
var client = java.net.http.HttpClient.newHttpClient();
var body = "{\"model\":\"gpt-3.5-turbo-instruct\",\"prompt\":\"Write a short greeting:\",\"max_tokens\":64,\"temperature\":0.7,\"stream\":false}";
var request = java.net.http.HttpRequest.newBuilder()
    .uri(java.net.URI.create("https://10000router.com/v1/completions"))
    .header("Authorization", "Bearer " + System.getenv("API_KEY"))
    .POST(java.net.http.HttpRequest.BodyPublishers.ofString(body))
    .build();
var response = client.send(request, java.net.http.HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using System.Net.Http.Json;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new("Bearer", Environment.GetEnvironmentVariable("API_KEY"));
var response = await client.PostAsJsonAsync(
    "https://10000router.com/v1/completions",
    new {
        model = "gpt-3.5-turbo-instruct",
        prompt = "Write a short greeting:",
        max_tokens = 64,
        temperature = 0.7,
        stream = false
    });
Console.WriteLine(await response.Content.ReadAsStringAsync());

返回响应

响应示例

{
  "id": "cmpl-abc123",
  "object": "text_completion",
  "created": 1710000000,
  "model": "gpt-3.5-turbo-instruct",
  "choices": [
    {
      "text": "Hello! How can I help you today?",
      "index": 0,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 6,
    "completion_tokens": 8,
    "total_tokens": 14
  }
}
{
  "error": {
    "message": "Missing required parameter: prompt",
    "type": "invalid_request_error",
    "param": "prompt",
    "code": null
  }
}
{
  "error": {
    "message": "Rate limit reached for completions",
    "type": "rate_limit_exceeded",
    "param": null,
    "code": null
  }
}
{
  "error": {
    "message": "Invalid authentication credentials",
    "type": "invalid_request_error",
    "param": null,
    "code": null
  }
}

返回字段参数

响应字段按对象层级拆分为可折叠区块,默认展开;可收起暂时不关注的对象,减少长响应的视觉干扰。

顶层字段(6 个)
字段类型说明
idstring本次文本补全请求的唯一标识。
objectstring对象类型,非流式响应通常为 text_completion。
createdinteger响应创建时间,Unix 时间戳(秒)。
modelstring实际生成响应的模型 ID。
choicesarray<object>模型生成的候选结果;数量由请求参数 n 和提示词数组长度共同决定。
usageobject输入、输出及总 token 用量。部分网关可能省略此字段。
choices[] 字段(3 个)
字段类型说明
textstring模型生成的补全文本;当 echo=true 时包含输入提示词。
indexinteger候选结果在 choices 数组中的索引。
finish_reasonstring / null生成结束原因,例如 stop、length 或 content_filter;生成尚未结束时可能为 null。
usage 字段(5 个)
字段类型说明
prompt_tokensinteger输入提示词使用的 token 数。
completion_tokensinteger生成补全文本使用的 token 数。
total_tokensintegerprompt_tokens 与 completion_tokens 的总和。
prompt_tokens_detailsobject输入 token 的细分统计;部分网关可能不返回。
completion_tokens_detailsobject输出 token 的细分统计;部分网关可能不返回。
prompt_tokens_details 字段(4 个)
字段类型说明
cached_tokensinteger命中提示词缓存的 token 数。
text_tokensinteger文本输入 token 数。
audio_tokensinteger音频输入 token 数(支持音频的模型)。
image_tokensinteger图像输入 token 数(支持图像的模型)。
completion_tokens_details 字段(3 个)
字段类型说明
text_tokensinteger文本输出 token 数。
audio_tokensinteger音频输出 token 数(支持音频的模型)。
reasoning_tokensinteger推理过程使用的 token 数(支持推理的模型)。

流式响应

当请求设置 stream=true 时,响应的 Content-Type 为 text/event-stream,每个事件包含一个增量补全对象。客户端应按顺序拼接 choices[].text,并在收到 data: [DONE] 后结束读取:

data: {"id":"cmpl-abc123","object":"text_completion","created":1710000000,"model":"gpt-3.5-turbo-instruct","choices":[{"text":"Hello","index":0,"finish_reason":null}]}

data: {"id":"cmpl-abc123","object":"text_completion","created":1710000000,"model":"gpt-3.5-turbo-instruct","choices":[{"text":"! How can I help?","index":0,"finish_reason":"stop"}]}

data: [DONE]

流式响应中的每个 choices 元素只包含当前增量文本;usage 通常在非流式响应中返回。客户端应处理网络中断并在完成读取后释放连接。

results matching ""

    No results matching ""