OpenAI API Chat

2023-03-21 11:22 更新

給定聊天對話,模型將返回聊天完成響應。


創(chuàng)建 chat completion

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

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

Request body

字段 類型 是否可選 說明
model string 必須 要使用的模型的 ID。
messages array 必須 以聊天格式生成聊天完成的消息。
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 為每個輸入消息生成多少個聊天完成選項。
stream boolean 可選 默認為 false 如果設置,將發(fā)送部分消息增量,就像在 ChatGPT 中一樣。令牌將在可用時作為純數據服務器發(fā)送事件發(fā)送,流由數據終止:[DONE] 消息。
stop string or array 可選 默認為 null API 將停止生成更多令牌的最多 4 個序列。
max_tokens integer 可選 默認為 inf

聊天完成時生成的最大令牌數。

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

presence_penalty number 可選 默認為 0

-2.0 和 2.0 之間的數字。正值會根據到目前為止是否出現在文本中來懲罰新標記,從而增加模型談論新主題的可能性。

frequency_penalty number 可選 默認為 0

-2.0 和 2.0 之間的數字。正值會根據新標記在文本中的現有頻率對其進行懲罰,從而降低模型逐字重復同一行的可能性。

logit_bias map 可選 默認為 null

修改指定標記出現在完成中的可能性。

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

user string 可選 代表您的最終用戶的唯一標識符,可以幫助 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);

參數

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

響應

{
  "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
  }
}


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號