API文档(api-reference)
完成(Completions)

完成Completions

给定提示,模型将返回一个或多个预测完成,并且还可以返回每个位置上备用令牌的概率。

创建补全Create completion

post https://api.openai.com/v1/completions (opens in a new tab)

为提供的提示和参数创建完成。

请求正文

您可以使用列出模型 API查看所有可用模型,或查看我们的模型概述了解它们的描述。

prompt是字符串string 或者数组(array)可选。 Optional 默认是 <|endoftext|>用作生成完成的提示,编码为字符串、字符串数组、令牌数组或令牌数组的数组。

请注意,<|endoftext|> 是模型在训练过程中看到的文档分隔符,因此如果不指定提示,模型将像从新文档的开头生成一样。

suffix 字符串类型 可选。 默认是 null插入文本完成后的后缀。

max_tokens 为整数,可选。默认为 16。当生成完成时,要生成的最大 token 数量。

您的提示文本加上 max_tokens 的 token 数量不能超过模型的上下文长度。大多数模型的上下文长度为 2048 个 token(除最新的模型支持 4096 个 token)。

temperature 数字类型 Optional 默认是 ** 1 ** 要使用的采样温度(temperature),介于0和2之间。高值如0.8会使输出更加随机,而低值如0.2会使其更加集中和确定性。

我们通常建议更改 temperaturetop_p 中的一个,而不是同时更改两者。

top_p 为数字类型,可选。默认为 1。采用温度(temperature)抽样的替代方法,称为“核采样”(nucleus sampling),其中模型考虑具有 top_p 概率质量的标记的结果。因此,0.1 表示仅考虑组成前 10% 概率质量的标记。

我们通常建议更改 temperaturetop_p 中的一个,而不是同时更改两者。

n 为整数类型,可选。默认为 1。每个提示生成的完整次数。

注意: 因为此参数生成了许多完成,它可能会快速消耗您的令牌配额。请谨慎使用,并确保您对 max_tokensstop 进行合理的设置。

stream 布尔类型,可选。 默认是 falseWhether to stream back partial progress. If set, tokens will be sent as data-only 服务端发送事件 (opens in a new tab) as they become available, with the stream terminated by a data: [DONE] message.

logprobs 整数类型,可选。 默认是 null。在 logprobs 个可能性最高的标记上包括对数概率以及被选中的标记。例如,如果 logprobs 为 5,则API将返回最有可能的 5 个标记的列表。API将始终返回抽样标记的 logprob,因此响应中可能有多达 logprobs +1 个元素。

logprobs 的最大值为 5。如果您需要更多,请通过我们的 帮助中心 (opens in a new tab) 联系我们,并描述您的用例。

echo 布尔类型,可选。 默认是 false添加到完成结果中的提示。

stop 字符串或者数组类型,可选。 默认是 null最多4个序列,API将停止生成进一步的标记。返回的文本将不包含停止序列。

presence_penalty 数字类型,可选。 默认是 0介于-2.0和2.0之间的数字。正值基于新标记出现在文本中的情况对其进行惩罚,增加模型谈论新话题的可能性。

有关频率和存在惩罚的更多信息。

frequency_penalty 数字类型,可选。 默认是 0介于-2.0和2.0之间的数字。正值基于新标记在文本中的现有频率对其进行惩罚,降低模型重复相同行的可能性。

查看有关频率和存在惩罚的更多信息。

best_of 整数类型,可选。 默认是 1 。在服务器端生成“最佳”完成,并返回具有最高每个标记对数概率的完成,best_of 为生成完成的数目。结果无法通过流式传输获取。

当与 n 一起使用时,best_of 控制候选完成的数量,n 指定要返回的数量 - best_of 必须大于 n

注意: 因为此参数生成了许多完整的完成,它可能会快速消耗您的令牌配额。请谨慎使用,并确保您对 max_tokensstop 进行合理的设置。

logit_bias map类型,可选。 默认是 null修改特定令牌出现在完成中的可能性。

接受将标记(由GPT分词器中的标记ID指定)映射到介于-100到100的相关偏差值的JSON对象。您可以使用此 分词器工具(适用于GPT-2和GPT-3)将文本转换为标记ID。在数学上,在采样之前,将偏差添加到模型生成的logits中。确切的效果将因模型而异,但-1到1之间的值应减少或增加选择的可能性;像-100或100这样的值应导致相关标记的禁令或独家选择。

As an example, you can pass {"50256": -100} to prevent the <|endoftext|> token from being generated.

user 字符串类型,可选。用于表示您的最终用户的唯一标识符,可帮助OpenAI监视和检测滥用情况。了解更多

Example 请求示例(Python方式)

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

参数格式(Parameters text)

{
 "model": "text-davinci-003",
 "prompt": "Say this is a test",
 "max_tokens": 7,
 "temperature": 0,
 "top_p": 1,
 "n": 1,
 "stream": false,
 "logprobs": null,
 "stop": "n"
}

请求示例(Python方式)

{
 "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
 "object": "text_completion",
 "created": 1589478378,
 "model": "text-davinci-003",
 "choices": [
    {
 "text": "  This is indeed a test",
 "index": 0,
 "logprobs": null,
 "finish_reason": "length"
    }
  ],
 "usage": {
 "prompt_tokens": 5,
 "completion_tokens": 7,
 "total_tokens": 12
  }
}