Skip to content

Latest commit

 

History

History
193 lines (144 loc) · 7.26 KB

会话(Chat).md

File metadata and controls

193 lines (144 loc) · 7.26 KB

会话 ( Chat )

通过提供一段聊天对话,模型会返回聊天接下来的补全内容。

创建聊天补全 ( 测试中 ) ( Create chat completion )

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

创建一个聊天消息的补全。

# Curl 请求示例
curl https://api.openai.com/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Hello!"}]
}'
# Python 请求示例
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)
// Node.js请求示例
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
  }
}

请求体


model string 必须

要使用的模型 ID ( model ID ) ,只支持 gpt-3.5-turbogpt-3.5-turbo-0301


messages array 必须

基于消息格式用于生成聊天补全内容的消息


temperature number 可选的 默认值:1

使用什么 temperature 采样,介于 0 到 2 之间。更高的值比如 0.8 会让输出更加随机,更低的值比如 0.2 会让输出更加聚焦和明确。

我们一般推荐修改这个值或者 top_p 值,但不推荐同时修改两个值。


top_p number 可选的 默认值:1

temperature 采样的另一种替代方案,被称为核采样( nucleus sampling ),其中模型考虑在 token 的结果中排前 top_p 的概率质量( probability mass )。所以 0.1 意味着只考虑包含前 10% 概率质量的 tokens 。

我们一般推荐修改这个值或者 temperature 值,但不推荐同时修改两个值。


n integer 可选的 默认值:1

为每个输入消息生成多少个聊天补全选项 ( 译者注:即在返回的参数 choices 中会返回多n 个)。


stream boolean 可选的 默认值:false

如果设置了,将会一点点发送增量的消息,就像在 ChatGPT 中一样。 当输出结果时,返回的内容将作为服务端推送事件的数据发送,流将通过data: [DONE]表明消息结束。请参阅 OpenAI Cookbook 查看示例代码


stop string | array 可选的 默认值:null

最多可以传入 4 个字符串,当模型遇到这些字符串时,API 将停止进一步生成结果。


max_tokens integer 可选的 默认值:正无穷

聊天完成时生成的最大tokens数量。

输入的 token 和生成的 token 的总长度受模型上下文长度的限制。


presence_penalty number 可选的 默认值:0

介于 -2.0 到 2.0 之间的值。正值会根据新 token 到目前为止,是否出现在文本中来惩罚 ( 抑制 ) 它们,从而增加模型谈论新主题的可能性。

请参阅有关频率和存在惩罚的更多信息。


frequency_penalty number 可选的 默认值:0

介于 -2.0 到 2.0 之间的值。正值会根据新 token 到目前为止,在当前文本中出现的频率来惩罚 ( 抑制 ) 它们,从而降低模型一字不差的地重复同一行的可能性。

请参阅有关频率和存在惩罚的更多信息。


logit_bias map 可选的 默认值:null

修改指定的 token 在补全中出现的可能性。

接受一个json对象,该对象将 tokens ( 由标记器 ( tokenizer ) 中的 token ID 指定 ) 映射到从-100到100的关联偏差值。在数学上,模型生成样本前会将偏差添加到对数中。其精确性会因模型而异,但在 -1 到 1 的范围内的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该会导致相关 token 被禁止选择或只能选择相关 token。


user string 可选的

代表最终用户的唯一标识,用来帮助 OpenAI 监控并检测滥用。了解更多