OpenAI API Completions

2023-03-21 11:07 更新

給定一個提示,該模型將返回一個或多個預測的 Completions,并且還可以返回每個位置的替代標記的概率。


Create completion

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

為提供的提示和參數(shù)創(chuàng)建 completion

Request body

字段 類型  是否可選  說明 
model string 必須 要使用的模型的 ID。您可以使用 List models API 來查看所有可用模型。
prompt string or array 可選 默認為 <|endoftext|> 生成完成的提示,編碼為字符串、字符串數(shù)組、標記數(shù)組或標記數(shù)組數(shù)組。

請注意,<|endoftext|> 是模型在訓練期間看到的文檔分隔符,因此如果未指定提示,模型將生成新文檔的開頭。

suffix string 可選 默認為 null 插入文本完成后出現(xiàn)的后綴。
max_tokens
integer
可選 默認為 16

完成時生成的最大令牌數(shù)。

您的提示的令牌計數(shù)加上 max_tokens 不能超過模型的上下文長度。大多數(shù)模型的上下文長度為 2048 個標記(最新模型除外,它支持 4096)。

temperature
number 可選 默認為 1
使用什么采樣 temperature,介于 0 和 2 之間。較高的值(如 0.8)將使輸出更加隨機,而較低的值(如 0.2)將使輸出更加集中和確定。
我們通常建議改變這個或 top_p 但不是兩者都改變??。
top_p
number
可選 默認為 1
一種替代 temperature 采樣的方法,稱為核采樣,其中模型考慮具有 top_p 概率質量的標記的結果。所以 0.1 意味著只考慮構成前 10% 概率質量的標記。
我們通常建議更改此值或 temperature,但不要同時更改兩者。
n integer 可選 默認為 1 為每個提示生成多少完成。
注意:因為這個參數(shù)會產(chǎn)生很多完成,它會很快消耗你的令牌配額。請謹慎使用并確保您對 max_tokens 和停止進行了合理的設置。
stream boolean 可選 默認為 false 是否回流部分進度。如果設置,令牌將在可用時作為純數(shù)據(jù)服務器發(fā)送事件發(fā)送,流由數(shù)據(jù)終止:[DONE] 消息。
logprobs integer 可選 默認為 null 在 logprobs 上包括對數(shù)概率最有可能的標記,以及所選標記。例如,如果 logprobs 為 5,則 API 將返回 5 個最有可能的標記的列表。 API 將始終返回采樣令牌的 logprob,因此響應中最多可能有 logprobs+1 個元素。
logprobs 的最大值為 5。如果您需要更多,請通過我們的幫助中心聯(lián)系我們并描述您的用例。
echo boolean 可選 默認為 false 除了完成之外回顯提示
stop string or array 可選 默認為 null API 將停止生成更多令牌的最多 4 個序列。返回的文本將不包含停止序列。
presence_penalty number 可選 默認為 0 -2.0 和 2.0 之間的數(shù)字。正值會根據(jù)到目前為止是否出現(xiàn)在文本中來懲罰新標記,從而增加模型談論新主題的可能性。
frequency_penalty number 可選 默認為 0 -2.0 和 2.0 之間的數(shù)字。正值會根據(jù)新標記在文本中的現(xiàn)有頻率對其進行懲罰,從而降低模型逐字重復同一行的可能性。
best_of integer 可選 默認為 1 在服務器端生成 best_of 完成并返回“最佳”(每個標記具有最高對數(shù)概率的那個)。無法流式傳輸結果。

當與 n 一起使用時,best_of 控制候選完成的數(shù)量,n 指定返回多少 - best_of 必須大于 n。

注意:因為這個參數(shù)會產(chǎn)生很多完成,它會很快消耗你的令牌配額。請謹慎使用并確保您對 max_tokens 和停止進行了合理的設置。

logit_bias map 可選 默認為 null

修改指定標記出現(xiàn)在完成中的可能性。

接受一個 json 對象,該對象將標記(由 GPT 標記器中的標記 ID 指定)映射到從 -100 到 100 的相關偏差值。您可以使用此標記器工具(適用于 GPT-2 和 GPT-3)來轉換文本到令牌 ID。從數(shù)學上講,偏差會在采樣之前添加到模型生成的對數(shù)中。確切的效果因模型而異,但 -1 和 1 之間的值應該會減少或增加選擇的可能性;像 -100 或 100 這樣的值應該導致相關令牌的禁止或獨占選擇。

例如,您可以傳遞 {"50256": -100} 以防止生成 <|endoftext|> 標記。

user
string
可選 代表您的最終用戶的唯一標識符,可以幫助 OpenAI 監(jiān)控和檢測濫用行為。

示例請求

 curl python  node.js 
curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "ada",
    "prompt": "Say this is a test",
    "max_tokens": 7,
    "temperature": 0
  }'
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Completion.create(
  model="ada",
  prompt="Say this is a test",
  max_tokens=7,
  temperature=0
)
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.createCompletion({
  model: "ada",
  prompt: "Say this is a test",
  max_tokens: 7,
  temperature: 0,
});

參數(shù)

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

響應

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


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號