完成
给定一个提示,该模型将返回一个或多个预测完成,以及每个位置的替代令牌的概率。大多数开发者应该使用我们的聊天式完成API来利用我们最好和最新的模型。
创建完成 (Create Completion) [Legacy]
POST https://api.openai.com/v1/completions
描述:根据提供的提示和参数创建一个完成。
这个错误消息表明,在 ./src/app/api-reference/completions/page.mdx
文件中,第 26 行的第 89 个字符处出现了意外的文件结束,预计会有一个可以开始名称的字符(如字母、$
或 _
)。这通常意味着文件中存在语法错误,例如标签未正确关闭或字符串未正确结束。
以下是一些排查和修复此问题的步骤:
-
检查文件结尾: 确保文件结尾没有未关闭的标签或字符串。特别是在第 26 行及其附近,查看是否有任何未闭合的标签或引号。
-
检查导入语句: 确保所有导入语句是正确的,路径和名称拼写正确,并且文件末尾没有意外的中断。
-
确保文件完整: 确保文件没有被截断,尤其是当文件通过复制粘贴或其他方式传输时。
-
使用代码编辑器工具: 使用代码编辑器(如 VS Code)提供的格式化和语法检查工具来自动检测和修复语法错误。
请求体
参数名 | 类型 | 必需 | 描述 |
---|---|---|---|
model | string | 必需 | 使用的模型 ID。您可以使用 List models API 查看所有可用模型,或查看我们的 Model overview 获取描述。 |
prompt | string或数组 | 必需 | 要生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组的数组。 注意: <endoftext> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将像从新文档开头生成一样生成。 |
best_of | integer | 可选 | 在服务器端生成 best_of 个完成并返回“最好”的一个(每个标记的对数概率最高)。结果不能流式传输。与 n 一起使用时,best_of 控制候选完成的数量,而 n 指定返回的数量 - best_of 必须大于 n 。注意:由于此参数生成多个完成,因此可能会快速消耗您的令牌配额。请谨慎使用,并确保您对 max_tokens 和 stop 设置有合理的配置。 |
echo | boolean | 可选 | 除了完成外,还回显提示。 |
frequency_penalty | number | 可选 | 介于 -2.0 到 2.0 之间的数值。正值根据它们在文本中现有的频率惩罚新标记,从而减少模型逐字重复同一行的可能性。 查看更多关于频率和存在惩罚的信息。 |
logit_bias | map | 可选 | 修改指定标记在完成中出现的可能性。接受一个 JSON 对象,将标记(由 GPT 标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。您可以使用此 标记器工具 将文本转换为标记 ID。数学上,偏差被添加到模型在采样前生成的 logits 中。确切效果因模型而异,但值在 -1 到 1 之间应减少或增加选择的可能性;类似 -100 或 100 的值应导致相关标记的禁用或专属选择。 例如,您可以传递 {"50256": -100} 来防止生成 <endoftext> 标记。 |
logprobs | integer | 可选 | 包含 logprobs 个最可能输出标记的对数概率,以及选择的标记。例如,如果 logprobs 为 5,API 将返回前 5 个最可能标记的列表。API 将始终返回采样标记的 logprob ,因此响应中可能有最多 logprobs+1 个元素。最大值为 5。 |
max_tokens | integer | 可选 | 生成完成的最大 标记 数。 您的提示的标记数加上 max_tokens 不能超过模型的上下文长度。示例 Python 代码 用于计算标记。 |
n | integer | 可选 | 为每个提示生成多少个完成。 注意:由于此参数生成多个完成,因此可能会快速消耗您的令牌配额。请谨慎使用,并确保您对 max_tokens 和 stop 设置有合理的配置。 |
presence_penalty | number | 可选 | 介于 -2.0 到 2.0 之间的数值。正值根据它们是否出现在文本中惩罚新标记,从而增加模型谈论新话题的可能性。 查看更多关于频率和存在惩罚的信息。 |
seed | integer | 可选 | 如果指定,我们的系统将尽最大努力确定性地进行采样,以便使用相同 seed 和参数的重复请求应返回相同的结果。确定性不受保证,您应参考响应参数 system_fingerprint 监控后端的变化。 |
stop | string/数组/null | 可选 | 最多 4 个序列,API 将在生成这些序列后停止进一步的标记生成。返回的文本将不包含停止序列。 |
stream | boolean | 可选 | 是否流式传输部分进度。如果设置,标记将作为数据只 服务器发送事件 发送,当流以 data: [DONE] 消息终止时。示例 Python 代码。 |
stream_options | object/null | 可选 | 流响应的选项。仅在设置 stream: true 时设置此选项。 |
suffix | string/null | 可选 | 完成插入文本后的后缀。仅支持 gpt-3.5-turbo-instruct 。 |
temperature | number/null | 可选 | 采样温度,范围在 0 到 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定性。 我们通常建议更改此参数或 top_p ,但不建议同时更改这两个参数。 |
top_p | number/null | 可选 | 温度采样的替代方案,称为核采样,模型考虑 top_p 概率质量的标记结果。因此,0.1 表示只考虑占前 10% 概率质量的标记。 我们通常建议更改此参数或 temperature ,但不建议同时更改这两个参数。 |
user | string | 可选 | 表示最终用户的唯一标识符,有助于 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的完成响应。注意:流式和非流式响应对象共享相同的形状(与聊天端点不同)。
属性
属性名 | 类型 | 描述 |
---|---|---|
id | string | 完成的唯一标识符。 |
choices | array | 模型为输入提示生成的完成选项列表。 |
created | integer | 完成创建时的 Unix 时间戳(以秒为单位)。 |
model | string | 用于完成的模型。 |
system_fingerprint | string | 表示模型运行的后端配置的指纹。可以与 seed 请求参数结合使用,以了解可能影响确定性的后端更改。 |
object | string | 对象类型,总是 "text_completion"。 |
usage | object | 完成请求的使用统计信息。 |
示例
{
"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
}
}