completions API

​ Completions API与Chat Completions API具有不同的接口。输入不再是消息列表,而是一个名为prompt的自由文本字符串。

Completions API 请求示例:

import openai

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="Write a tagline for an ice cream shop."
)

Completions API 响应示例:

{
  "choices": [
    {
      "finish_reason": "length",
      "index": 0,
      "logprobs": null,
      "text": "\n\n\"Let Your Sweet Tooth Run Wild at Our Creamy Ice Cream Shack"
    }
  ],
  "created": 1683130927,
  "id": "cmpl-7C9Wxi9Du4j1lQjdjhxBlO22M61LD",
  "model": "text-davinci-003",
  "object": "text_completion",
  "usage": {
    "completion_tokens": 16,
    "prompt_tokens": 10,
    "total_tokens": 26
  }
}

查看详细接口文档Completions API

​ Completions API 会根据提示给出相应的返回结果,返回结果和请求中的提示一样也是由token组成的。而Completions API 可以提供与每个输出token相关的最可能标记的有限数量的对数概率。通过使用logprobs字段来控制此功能。在某些情况下,方便评估模型在输出中的置信度可能。

​ Completions API 除了标准的提示(也称为前缀式)之外还支持通过提供后缀来插入文本(Inserting text)。在撰写长篇文字、段落之间过渡、按照大纲编写或引导模型走向结尾时,会出现这种需求。这个特性同样适用于代码,可以在函数或文件的中间插入文本。

Inserting text

​ 为了说明后缀上下文对生成的文本的影响,考虑以下提示:“今天我决定做一个重大改变。”我们可以想象有很多种方式来完成这个句子。但是,如果我们现在提供故事的结尾:“我换了一个新发型,得到了很多赞美!”那么预期的完成结果就变得清晰了。

I went to college at Boston University. After getting my degree, I decided to make a change. A big change! I packed my bags and moved to the west coast of the United States. Now, I can’t get enough of the Pacific Ocean!