OpenAI API Chat

2023-03-21 11:22 更新

给定聊天对话,模型将返回聊天完成响应。


创建 chat completion

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

为聊天消息创建 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 如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。令牌将在可用时作为纯数据服务器发送事件发送,流由数据终止:[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 监控和检测滥用行为。

示例请求

 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

公众号
微信公众号

编程狮公众号