OpenAI Models ( 模型 ) 接口

获取模型列表

列出当前可用的模型,并提供有关每个模型的基本信息,例如所有者和可用性。

GET 请求 :

curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

响应 :

{
  "data": [
    {
      "id": "model-id-0",
      "object": "model",
      "owned_by": "organization-owner",
      "permission": [...]
    },
    ...
}

检索模型

检索模型实例,提供有关模型的基本信息,例如所有者和权限。

GET 请求 :

curl https://api.openai.com/v1/models/模型名称 \
  -H "Authorization: Bearer $OPENAI_API_KEY"

响应 :

{
  "id": "text-davinci-003",
  "object": "model",
  "owned_by": "openai",
  "permission": [...]
}

Completions 使用模型完成一个对话

给定一个提示 ( prompt ),该模型将返回一个或多个预测的完成,并且还可以返回每个位置的替代标记的概率。

POST 请求 :

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
  }'

请求数据

model 
模型名称 字符串类型 必填
要使用的模型的 ID。您可以使用List models API 来查看所有可用模型 。

prompt 
提示内容 字符串类型 or 数组 选填 默认 <|endoftext|>
生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组数组。
请注意,<|endoftext|> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将生成新文档的开头。

suffix 
插入文本完成后出现的后缀。
string 后缀 选填 默认 null

max_tokens 
最大令牌数整数 选填 默认为16
您的提示加上的令牌计数max_tokens不能超过模型的上下文长度。大多数模型的上下文长度为 2048 个标记(最新模型除外,它支持 4096)。

temperature 
温度 数字 选填 默认为1
采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。
我们通常建议改变这个或top_p但不是两者。

top_p 数字 选填 默认为1
一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。

n 
为每个提示生成多少完成。
注意:因为这个参数会产生很多完成,它会很快消耗你的令牌配额。请谨慎使用并确保您对max_tokens和进行了合理的设置stop。

stream 
是否回流部分进度
布尔值 选填 默认为假

logprobs
日志概率 整数 选填 默认为空
包括最有可能标记的对数概率logprobs,以及所选标记。例如,如果logprobs是 5,API 将返回 5 个最有可能的标记的列表。API 将始终返回采样令牌的 ,因此响应中logprob最多可能有元素。

echo
回显 布尔值 选填 默认为假
除了完成之外回显提示

stop
停止字符 字符串或数组 选填 默认为空
API 将停止生成更多令牌的最多 4 个序列。返回的文本将不包含停止序列。

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_tokens和进行了合理的设置stop。

logit_bias
map 类型 选填 默认为空
修改指定标记出现在完成中的可能性。
接受一个 json 对象,该对象将标记(由 GPT 标记器中的标记 ID 指定)映射到从 -100 到 100 的相关偏差值。您可以使用此标记器工具(适用于 GPT-2 和 GPT-3)来转换文本到令牌 ID。从数学上讲,偏差会在采样之前添加到模型生成的对数中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。
例如,您可以传递{"50256": -100}以防止生成 <|endoftext|> 标记。


user
字符类型 选填 
代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。

响应示例 :

{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "text-davinci-003",
  "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
  }
}