完成

给定一个提示,该模型将返回一个或多个预测完成,以及每个位置的替代令牌的概率。大多数开发者应该使用我们的聊天式完成API来利用我们最好和最新的模型。


创建完成 (Create Completion) [Legacy]

POST https://api.openai.com/v1/completions

描述:根据提供的提示和参数创建一个完成。

这个错误消息表明,在 ./src/app/api-reference/completions/page.mdx 文件中,第 26 行的第 89 个字符处出现了意外的文件结束,预计会有一个可以开始名称的字符(如字母、$_)。这通常意味着文件中存在语法错误,例如标签未正确关闭或字符串未正确结束。

以下是一些排查和修复此问题的步骤:

  1. 检查文件结尾: 确保文件结尾没有未关闭的标签或字符串。特别是在第 26 行及其附近,查看是否有任何未闭合的标签或引号。

  2. 检查导入语句: 确保所有导入语句是正确的,路径和名称拼写正确,并且文件末尾没有意外的中断。

  3. 确保文件完整: 确保文件没有被截断,尤其是当文件通过复制粘贴或其他方式传输时。

  4. 使用代码编辑器工具: 使用代码编辑器(如 VS Code)提供的格式化和语法检查工具来自动检测和修复语法错误。

请求体

参数名类型必需描述
modelstring必需使用的模型 ID。您可以使用 List models API 查看所有可用模型,或查看我们的 Model overview 获取描述。
promptstring或数组必需要生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组的数组。
注意:<endoftext> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将像从新文档开头生成一样生成。
best_ofinteger可选在服务器端生成 best_of 个完成并返回“最好”的一个(每个标记的对数概率最高)。结果不能流式传输。
n 一起使用时,best_of 控制候选完成的数量,而 n 指定返回的数量 - best_of 必须大于 n
注意:由于此参数生成多个完成,因此可能会快速消耗您的令牌配额。请谨慎使用,并确保您对 max_tokensstop 设置有合理的配置。
echoboolean可选除了完成外,还回显提示。
frequency_penaltynumber可选介于 -2.0 到 2.0 之间的数值。正值根据它们在文本中现有的频率惩罚新标记,从而减少模型逐字重复同一行的可能性。
查看更多关于频率和存在惩罚的信息
logit_biasmap可选修改指定标记在完成中出现的可能性。接受一个 JSON 对象,将标记(由 GPT 标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。您可以使用此 标记器工具 将文本转换为标记 ID。数学上,偏差被添加到模型在采样前生成的 logits 中。确切效果因模型而异,但值在 -1 到 1 之间应减少或增加选择的可能性;类似 -100 或 100 的值应导致相关标记的禁用或专属选择。
例如,您可以传递 {"50256": -100} 来防止生成 <endoftext> 标记。
logprobsinteger可选包含 logprobs 个最可能输出标记的对数概率,以及选择的标记。例如,如果 logprobs 为 5,API 将返回前 5 个最可能标记的列表。API 将始终返回采样标记的 logprob,因此响应中可能有最多 logprobs+1 个元素。最大值为 5。
max_tokensinteger可选生成完成的最大 标记 数。
您的提示的标记数加上 max_tokens 不能超过模型的上下文长度。
示例 Python 代码 用于计算标记。
ninteger可选为每个提示生成多少个完成。
注意:由于此参数生成多个完成,因此可能会快速消耗您的令牌配额。请谨慎使用,并确保您对 max_tokensstop 设置有合理的配置。
presence_penaltynumber可选介于 -2.0 到 2.0 之间的数值。正值根据它们是否出现在文本中惩罚新标记,从而增加模型谈论新话题的可能性。
查看更多关于频率和存在惩罚的信息
seedinteger可选如果指定,我们的系统将尽最大努力确定性地进行采样,以便使用相同 seed 和参数的重复请求应返回相同的结果。
确定性不受保证,您应参考响应参数 system_fingerprint 监控后端的变化。
stopstring/数组/null可选最多 4 个序列,API 将在生成这些序列后停止进一步的标记生成。返回的文本将不包含停止序列。
streamboolean可选是否流式传输部分进度。如果设置,标记将作为数据只 服务器发送事件 发送,当流以 data: [DONE] 消息终止时。
示例 Python 代码
stream_optionsobject/null可选流响应的选项。仅在设置 stream: true 时设置此选项。
suffixstring/null可选完成插入文本后的后缀。仅支持 gpt-3.5-turbo-instruct
temperaturenumber/null可选采样温度,范围在 0 到 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定性。
我们通常建议更改此参数或 top_p,但不建议同时更改这两个参数。
top_pnumber/null可选温度采样的替代方案,称为核采样,模型考虑 top_p 概率质量的标记结果。因此,0.1 表示只考虑占前 10% 概率质量的标记。
我们通常建议更改此参数或 temperature,但不建议同时更改这两个参数。
userstring可选表示最终用户的唯一标识符,有助于 OpenAI 监控和检测滥用行为。
了解更多

返回值

返回一个 完成 对象,或者如果请求流式传输,则返回一系列完成对象。

示例请求

curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo-instruct",
    "prompt": "Say this is a test",
    "max_tokens": 7,
    "temperature": 0
  }'

示例响应

{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "gpt-3.5-turbo-instruct",
  "system_fingerprint": "fp_44709d6fcb",
  "choices": [
    {
      "text": "\n\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}

生成完成对象

表示来自API的完成响应。注意:流式和非流式响应对象共享相同的形状(与聊天端点不同)。

属性

属性名类型描述
idstring完成的唯一标识符。
choicesarray模型为输入提示生成的完成选项列表。
createdinteger完成创建时的 Unix 时间戳(以秒为单位)。
modelstring用于完成的模型。
system_fingerprintstring表示模型运行的后端配置的指纹。可以与 seed 请求参数结合使用,以了解可能影响确定性的后端更改。
objectstring对象类型,总是 "text_completion"。
usageobject完成请求的使用统计信息。

示例

{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "gpt-4-turbo",
  "choices": [
    {
      "text": "\n\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}

Was this page helpful?