OpenAI API Chat

2023-03-21 11:22 更新

給定聊天對話,模型將返回聊天完成響應(yīng)。


創(chuàng)建 chat completion

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

為聊天消息創(chuàng)建 completion

Request body

字段 類型 是否可選 說明
model string 必須 要使用的模型的 ID。
messages array 必須 以聊天格式生成聊天完成的消息。
temperature number 可選 默認(rèn)為 1

使用什么采樣 temperature,介于 0 和 2 之間。較高的值(如 0.8)將使輸出更加隨機(jī),而較低的值(如 0.2)將使輸出更加集中和確定。

我們通常建議改變這個或 top_p 但不是兩者都改變??。

top_p number 可選 默認(rèn)為 1

一種替代 temperature 采樣的方法,稱為核采樣,其中模型考慮具有 top_p 概率質(zhì)量的標(biāo)記的結(jié)果。所以 0.1 意味著只考慮構(gòu)成前 10% 概率質(zhì)量的標(biāo)記。

我們通常建議更改此值或 temperature,但不要同時更改兩者。

n integer 可選 默認(rèn)為 1 為每個輸入消息生成多少個聊天完成選項。
stream boolean 可選 默認(rèn)為 false 如果設(shè)置,將發(fā)送部分消息增量,就像在 ChatGPT 中一樣。令牌將在可用時作為純數(shù)據(jù)服務(wù)器發(fā)送事件發(fā)送,流由數(shù)據(jù)終止:[DONE] 消息。
stop string or array 可選 默認(rèn)為 null API 將停止生成更多令牌的最多 4 個序列。
max_tokens integer 可選 默認(rèn)為 inf

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

輸入標(biāo)記和生成標(biāo)記的總長度受模型上下文長度的限制。

presence_penalty number 可選 默認(rèn)為 0

-2.0 和 2.0 之間的數(shù)字。正值會根據(jù)到目前為止是否出現(xiàn)在文本中來懲罰新標(biāo)記,從而增加模型談?wù)撔轮黝}的可能性。

frequency_penalty number 可選 默認(rèn)為 0

-2.0 和 2.0 之間的數(shù)字。正值會根據(jù)新標(biāo)記在文本中的現(xiàn)有頻率對其進(jìn)行懲罰,從而降低模型逐字重復(fù)同一行的可能性。

logit_bias map 可選 默認(rèn)為 null

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

接受一個 json 對象,該對象將標(biāo)記(由標(biāo)記器中的標(biāo)記 ID 指定)映射到從 -100 到 100 的關(guān)聯(lián)偏差值。從數(shù)學(xué)上講,偏差會在采樣之前添加到模型生成的 logits 中。確切的效果因模型而異,但 -1 和 1 之間的值應(yīng)該會減少或增加選擇的可能性;像 -100 或 100 這樣的值應(yīng)該導(dǎo)致相關(guān)令牌的禁止或獨占選擇。

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

示例請求

 curl python  node.js 
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")

completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "user", "content": "Hello!"}
  ]
)

print(completion.choices[0].message)
const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

const completion = await openai.createChatCompletion({
  model: "gpt-3.5-turbo",
  messages: [{role: "user", content: "Hello world"}],
});
console.log(completion.data.choices[0].message);

參數(shù)

{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Hello!"}]
}

響應(yīng)

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號