OpenAI开发者平台文档非官方翻译-ENDPOINTS-Chat Completions

免责声明:该翻译作品仅供参考,对翻译的准确性和完整性不做任何保证,译者对使用该作品所产生的任何后果不承担责任。如侵犯任何个人或组织的合法权益,请及时联系我以删除相关内容。若发现翻译错误或有更好的建议,欢迎评论和私信我,我将虚心接受并改进。本人不对该翻译作品保留任何权利,但在使用时请勿侵犯其他权利人的合法权益。

对话补全

学习如何使用 OpenAI 的核心 API 端点获取来自语言模型的响应

试用GPT-4o
在实验平台上试用GPT-4o

输入图片以探索GPT-4o(的视觉能力)
查看视觉指南以了解(GPT-4o的)图像理解(能力)

要通过OpenAI API使用这些模型之一,您将向包含输入和API密钥的Chat Completions API发送请求,并接收包含模型输出的响应。

您可以在聊天平台中体验各种模型。如果你不确定使用哪种型号我们的建议是:如果你希望智能程度更高就试试gpt- 4o,如果你希望速度最快和成本最低就试试gpt- 40 -mini。

概述

Chat Completions API支持文本和图像输入,并且可以输出文本内容(包括代码和JSON)。
它通过messages参数接受输入,该参数是一个消息对象数组。

(发送)消息的角色

每个消息对象都有一个角色(可以是system、user、assistant)和内容。

  • system消息是可选的,可用于设置对话助手的行为
  • user消息提供请求或解释,供对话助手进行回应
  • assistant消息用于存储以前的对话助手响应,但也可以由您编写以提供期望行为的例子(一些实例

默认情况下没有系统消息。使用系统消息可以在用户上下文之外给模型提供指令。您可以为每个会话设置多个系统消息,模型将按照接收消息的顺序读取和解释消息。

开始

聊天模型将messages参数作为输出,返回一个其生成的消息作为输出。虽然聊天格式是为了让多轮对话变得简单,但对于没有连
续的对话上下文的单轮任务(如问答或命令执行)同样有效。

聊天格式:chat format,指的是一种特定的交互方式或结构,用于在对话系统中组织和处理用户与模型之间的交流。在这种格式中,用户的输入和模型的响应被视为消息的序列,这些消息可以包含多轮对话的上下文。

调用Chat Completions API的例子如下:

Python

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4o-mini",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Who won the world series in 2020?"},
    {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
    {"role": "user", "content": "Where was it played?"}
  ]
)

node.js

import OpenAI from "openai";

const openai = new OpenAI();

async function main() {
  const completion = await openai.chat.completions.create({
    messages: [{"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}],
    model: "gpt-4o-mini",
  });

  console.log(completion.choices[0]);
}
main();

curl

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Who won the world series in 2020?"
      },
      {
        "role": "assistant",
        "content": "The Los Angeles Dodgers won the World Series in 2020."
      },
      {
        "role": "user",
        "content": "Where was it played?"
      }
    ]
  }'

要了解更多信息,您可以查看Chat API的完整API参考文档

(请求中)包含对话历史在用户指令涉及之前的消息时非常重要。在上面的例子中,用户的最终问题“(比赛)在哪里进行?”只有在之前关于World Series in 2020的消息背景下才有意义。由于模型无法记住过去的请求,所以所有相关信息都必须在每个请求中作为对话历史提供。如果对话内容超出了模型的token限制,就需要以某种方式进行缩减
要模拟在 ChatGPT 中看到的流式返回文本的效果,请将 stream 参数设置为 true。

响应格式

下面是一个Chat Completions API响应的例子:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "The 2020 World Series was played in Texas at Globe Life Field in Arlington.",
        "role": "assistant"
      },
      "logprobs": null
    }
  ],
  "created": 1677664795,
  "id": "chatcmpl-7QyqpwdfhqwajicIEznoc6Q47XAyW",
  "model": "gpt-4o-mini",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 17,
    "prompt_tokens": 57,
    "total_tokens": 74,
    "completion_tokens_details": {
      "reasoning_tokens": 0
    }
  }
}

提取对话助手响应的方法:

message = completion.choices[0].message.content

Python和node.js相同,就不分开写了

每个响应将包含一个finish_reason。finish_reason的可能值有:

  • stop:API 返回了完整的消息,或者是由通过stop参数提供的其中一个停止序列(用于告知生成模型在特定位置停止生成文本)终止的消息。
  • length:模型输出不完整,原因是受到max_tokens参数或token限制
  • function_call:模型决定调用一个函数
  • content_filter:内容被省略,原因是受到内容过滤器的限制
  • null:API 响应仍在进行中或不完整

根据输入参数的不同,模型响应可能包含不同的信息。

下一步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值