OpenAI 接口文档-(中文版)-(一)

news2024/11/26 13:32:01

介绍 Introduction

您可以通过来自任何语言的 HTTP 请求、我们的官方 Python 绑定、我们的官方 Node.js 库或社区维护的库与 API 进行交互。

若要安装官方 Python 绑定,请运行以下命令:

pip install openai

要安装官方的 Node.js 库,请在 Node.js 项目目录中运行以下命令:

npm install openai

认证

OpenAI API 使用 API 密钥进行身份验证。访问您的 API 密钥页面,检索您将在请求中使用的 API 密钥https://platform.openai.com/account/api-keys

请记住,您的API密钥是一个秘密!不要与他人共享或在任何客户端代码(浏览器、应用程序)中公开它。生产请求必须通过您自己的后端服务器进行路由,在该服务器上,可以从环境变量或密钥管理服务安全地加载 API 密钥。

所有 API 请求都应在 HTTP 标头中包含您的 API 密钥,如下所示:Authorization

Authorization: Bearer OPENAI_API_KEY

请求组织

对于属于多个组织的用户,您可以传递标头以指定用于 API 请求的组织。这些 API 请求的使用量将计入指定组织的订阅配额。

示例 curl 命令:

curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Organization: org-9IDA3AdSqPmLz47IRWkb82tK"

Python 包的示例:openai

import os
import openai
openai.organization = "org-9IDA3AdSqPmLz47IRWkb82tK"
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()

Node.js 包的示例:openai

import { Configuration, OpenAIApi } from "openai";
const configuration = new Configuration({
    organization: "org-9IDA3AdSqPmLz47IRWkb82tK",
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.listEngines();

提出请求 Making requests

您可以将以下命令粘贴到终端中以运行您的第一个 API 请求。确保替换为您的私有 API 密钥。$OPENAI_API_KEY

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": "Say this is a test!"}],
     "temperature": 0.7
   }'

此请求查询模型以完成以提示“说这是一个测试”开头的文本。您应该收到类似于以下内容的回复:gpt-3.5-turbo 

{
   "id":"chatcmpl-abc123",
   "object":"chat.completion",
   "created":1677858242,
   "model":"gpt-3.5-turbo-0301",
   "usage":{
      "prompt_tokens":13,
      "completion_tokens":7,
      "total_tokens":20
   },
   "choices":[
      {
         "message":{
            "role":"assistant",
            "content":"\n\nThis is a test!"
         },
         "finish_reason":"stop",
         "index":0
      }
   ]
}

现在,您已经生成了第一个聊天完成。我们可以看到 is 这意味着 API 返回了模型生成的完整完成。在上面的请求中,我们只生成了一条消息,但您可以设置参数以生成多条消息选项。在此示例中,用于更多传统的文本完成任务。该模型还针对聊天应用程序进行了优化。finish_reasonstopngpt-3.5-turbo 

模型 Models

列出并描述 API 中可用的各种模型。您可以参考模型文档以了解可用的模型以及它们之间的差异。

列出模型 List models

GET https://api.openai.com/v1/models

列出当前可用的模型,并提供有关每个模型的基本信息,例如所有者和可用性。

示例请求

curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"
响应
{
  "data": [
    {
      "id": "model-id-0",
      "object": "model",
      "owned_by": "organization-owner",
      "permission": [...]
    },
    {
      "id": "model-id-1",
      "object": "model",
      "owned_by": "organization-owner",
      "permission": [...]
    },
    {
      "id": "model-id-2",
      "object": "model",
      "owned_by": "openai",
      "permission": [...]
    },
  ],
  "object": "list"
}

检索模型 Retrieve model

GET https://api.openai.com/v1/models/{模型}

检索模型实例,提供有关模型的基本信息,例如所有者和权限。

示例请求

text-davinci-003

curl https://api.openai.com/v1/models/text-davinci-003 \
  -H "Authorization: Bearer $OPENAI_API_KEY"

路径参数

模型 model

string

必填

用于此请求的模型的 ID

响应

{
  "id": "text-davinci-003",
  "object": "model",
  "owned_by": "openai",
  "permission": [...]
}

补全 Completions

给定提示,模型将返回一个或多个预测完成,还可以返回每个位置的替代令牌的概率。

创建补全 Create completion

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

为提供的提示和参数创建补全

//以text-davinci-003为例,下同

示例请求

curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "text-davinci-003",
    "prompt": "Say this is a test",
    "max_tokens": 7,
    "temperature": 0
  }'

参数

{
  "model": "text-davinci-003",
  "prompt": "Say this is a test",
  "max_tokens": 7,
  "temperature": 0,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "logprobs": null,
  "stop": "\n"
}

响应

{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "text-davinci-003",
  "choices": [
    {
      "text": "\n\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}

请求正文

模型 model
字符串
必填

要使用的模型的 ID。可以使用列表模型 API 查看所有可用模型,或参阅模型概述了解它们的描述。

提示 promt
字符串或数组
自选
默认为 <|endoftext|>

用于生成完成、编码为字符串、字符串数组、标记数组或标记数组数组的提示。

请注意,<|endoftext|> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将生成,就像从新文档的开头一样。

后缀 suffix
字符串
自选
默认值为空

完成插入文本后的后缀。

max_tokens
整数
自选
默认值为 16

完成时要生成的最大令牌数。

提示加号的令牌计数不能超过模型的上下文长度。大多数模型的上下文长度为 2048 个令牌(最新模型除外,它支持 4096)。max_tokens

温度 temperature
自选
默认值为 1

使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。

我们通常建议更改此设置,但不要同时更改两者。top_p

top_p
自选
默认值为 1

使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。

我们通常建议更改此设置,但不要同时更改两者。temperature

n
整数
自选
默认值为 1

为每个提示生成的完成次数。

注意:由于此参数会生成许多完成,因此它会快速消耗令牌配额。请谨慎使用,并确保对 和 进行合理的设置。max_tokensstop

流 stream
布尔
自选
默认为 false

是否流式传输回部分进度。如果设置,令牌将在可用时作为纯数据服务器发送的事件发送,流由消息终止。data: [DONE]

对数 logprobs
整数
自选
默认值为空

包括最可能的令牌的日志概率,以及所选令牌。例如,如果为 5,则 API 将返回 5 个最可能的令牌的列表。API 将始终返回采样令牌的 ,因此响应中最多可能有元素。logprobslogprobslogproblogprobs+1

的最大值为 5。如果您需要更多,请通过我们的帮助中心与我们联系并描述您的使用案例。logprobs

回显 echo
布尔
自选
默认为 false

除了完成之外,还回显提示

停用词 stop
字符串或数组
自选
默认值为空

最多 4 个序列,其中 API 将停止生成更多令牌。返回的文本将不包含停止序列。

presence_penalty
自选
默认值为 0

介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加模型讨论新主题的可能性。

查看有关频率和状态处罚的更多信息。

frequency_penalty
自选
默认值为 0

介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止在文本中的现有频率来惩罚新标记,从而降低模型逐字重复同一行的可能性。

查看有关频率和状态处罚的更多信息。

best_of
整数
自选
默认值为 1

在服务器端生成完成并返回“最佳”(每个令牌的日志概率最高的那个)。无法流式传输结果。best_of

与 一起使用时,控制候选完成次数并指定要返回的完成次数 – 必须大于 。nbest_ofnbest_ofn

注意:由于此参数会生成许多完成,因此它会快速消耗令牌配额。请谨慎使用,并确保对 和 进行合理的设置。max_tokensstop

logit_bias
地图
自选
默认值为空

修改完成中出现指定令牌的可能性。

接受将令牌(由其在 GPT 标记器中的令牌 ID 指定)映射到 -100 到 100 之间的关联偏差值的 json 对象。您可以使用此分词器工具(适用于 GPT-2 和 GPT-3)将文本转换为令牌 ID。在数学上,偏差在采样之前被添加到模型生成的对数中。确切的效果因模型而异,但介于 -1 和 1 之间的值应降低或增加选择的可能性;像 -100 或 100 这样的值应该会导致禁止或排他性选择相关令牌。

例如,您可以传递以防止生成 <|endoftext|> 令牌。{"50256": -100}

用户
字符串
自选

代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。

聊天 Chat

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

创建聊天补全 Create chat completion 

试用版

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

为聊天消息创建补全

实例请求

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!"}]
  }'

参数

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

请求正文

字符串
必填

要使用的模型的 ID。有关哪些模型与聊天 API 配合使用的详细信息,请参阅模型终端节点兼容性表。

消息
数组
必填

要为其生成聊天完成的消息,采用聊天格式。

温度
自选
默认值为 1

使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。

我们通常建议更改此设置,但不要同时更改两者。top_p

top_p
自选
默认值为 1

使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。

我们通常建议更改此设置,但不要同时更改两者。temperature

n
整数
自选
默认值为 1

要为每个输入消息生成的聊天完成选项数。

布尔
自选
默认为 false

如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。令牌将在可用时作为纯数据服务器发送的事件发送,流由消息终止。有关示例代码,请参阅 OpenAI 说明书。data: [DONE]

字符串或数组
自选
默认值为空

最多 4 个序列,其中 API 将停止生成更多令牌。

max_tokens
整数
自选
默认为 inf

要在聊天完成中生成的最大令牌数。

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

presence_penalty
自选
默认值为 0

介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加模型讨论新主题的可能性。

查看有关频率和状态处罚的更多信息。

frequency_penalty
自选
默认值为 0

介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止在文本中的现有频率来惩罚新标记,从而降低模型逐字重复同一行的可能性。

查看有关频率和状态处罚的更多信息。

logit_bias
地图
自选
默认值为空

修改完成中出现指定令牌的可能性。

接受将令牌(由其在分词器中的令牌 ID 指定)映射到 -100 到 100 之间的关联偏差值的 json 对象。在数学上,偏差在采样之前被添加到模型生成的对数中。确切的效果因模型而异,但介于 -1 和 1 之间的值应降低或增加选择的可能性;像 -100 或 100 这样的值应该会导致禁止或排他性选择相关令牌。

用户
字符串
自选

代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。

编辑

给定提示和指令,模型将返回提示的编辑版本。

创建编辑

发布 https://api.openai.com/v1/edits

为提供的输入、指令和参数创建新的编辑。

示例请求

curl https://api.openai.com/v1/edits \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "text-davinci-edit-001",
    "input": "What day of the wek is it?",
    "instruction": "Fix the spelling mistakes"
  }'

参数

{
  "model": "text-davinci-edit-001",
  "input": "What day of the wek is it?",
  "instruction": "Fix the spelling mistakes",
}

响应

{
  "object": "edit",
  "created": 1589478378,
  "choices": [
    {
      "text": "What day of the week is it?",
      "index": 0,
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 32,
    "total_tokens": 57
  }
}

请求正文

模型 model
字符串
必填

要使用的模型的 ID。可以将 or 用于此终结点。text-davinci-edit-001code-davinci-edit-001

输入 input
字符串
自选
默认为''

要用作编辑起点的输入文本。

指令 instruction
字符串
必填

告知模型如何编辑提示的说明。

n
整数
自选
默认值为 1

要为输入和指令生成的编辑次数。

温度 temperature
自选
默认值为 1

使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。

我们通常建议更改此设置,但不要同时更改两者。top_p

top_p
自选
默认值为 1

使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。

我们通常建议更改此设置,但不要同时更改两者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python将空格改为换行符

Python将空格改为换行符 在Python编程中&#xff0c;经常需要对字符串进行处理&#xff0c;其中包括将空格替换为换行符。这篇文章将会介绍如何使用Python来实现这个目标&#xff0c;并分享一些关于字符串处理的技巧。 为什么要将空格改为换行符 将空格改为换行符可以让文本…

chatgpt赋能python:Python屏蔽一段代码

Python屏蔽一段代码 在Python编程中&#xff0c;有时我们需要屏蔽一段代码以便于调试或者测试。在很多情况下&#xff0c;我们可能不想删除这段代码&#xff0c;因为需要在将来的某个时间再次使用它。为了解决这个问题&#xff0c;我们可以使用Python中的注释语句或者条件语句…

Vue3中集成Unreal 5.2 像素流(Pixel Streaming插件)

目录 1. 创建一个Unreal项目2. 启用Pixel Streaming插件3. 下载Unreal 5.2对应的Pixel Streaming Infrastructure4. 创建一个Vue项目5. 推流方式一&#xff1a;使用Unreal Engine 5.26. 推流方式二&#xff1a;打包项目参考资源&#xff1a; 1. 创建一个Unreal项目 默认大家都…

机器人的免费使用方法

目录 一、机器人是什么&#xff1f; 二、机器人免费使用的方法&#xff1a; 第一点&#xff1a;电脑端 第二点&#xff1a;手机端 三、结语&#xff1a; 一、机器人是什么&#xff1f; 博主理解&#xff1a;方便生活&#xff0c;比Siri更加高级&#xff0c;能够智能的对我们…

chatgpt赋能python:Python就业前景分析

Python就业前景分析 Python已成为全球最流行的编程语言之一&#xff0c;因其易学、易用、高效、可扩展性强等特点&#xff0c;Python在各个领域都发挥着重要作用。Python的发展和应用迅猛&#xff0c;拥有Python编程经验的工程师在各个领域都面临着广泛的就业机会。 Python的…

推荐一个Edge浏览器中的一个好用问答插件。

目录 ChatGPT介绍:一、ChatGPT是什么?二、ChatGPT发展:三、ChatGPT 优点:四、Edge浏览器插件五、结语: ChatGPT介绍: 一、ChatGPT是什么? ChatGPT 是一个基于语言模型 GPT-3.5 的聊天机器人&#xff0c;ChatGPT模型是Instruct GPT的姊妹模型&#xff08;siblingmodel&#x…

Sql Server 自动备份

Sql Server 自动备份 文章目录 Sql Server 自动备份1. 打开SQL Server&#xff0c;在管理下找到”维护计划”&#xff0c;右键点击”维护计划向导”&#xff0c;如图&#xff1b;2. 再次点击维护计划向导3. 在选择维护任务下勾选”备份数据库”、”清楚维护任务”4.选择需要备份…

ChatGPT应用于软件测试中的切入口(干货!)

以上均为本人原创&#xff0c;转载请说明出处&#xff0c;谢谢&#xff01; 如果您觉得这篇文章还不错的话&#xff0c;请点击关注&#xff0c;转发&#xff0c;再看&#xff1b; 全是干货&#xff0c;话不多说 开搞&#xff01; 1. 测试想法生成器 可以使用ChatGPT技术&…

宝塔反代教程+国内服务器访问openai api接口+502 Bad Gateway问题解决!

前言 宝塔反代教程国内服务器访问openai api接口502 Bad Gateway问题解决! 此方法最简单快捷&#xff0c;没有复杂步骤&#xff0c;不容易出错&#xff0c;即最简单&#xff0c;零代码、零部署的方法。 实现前提 一台海外VPSOpenAI官方的API_KEYChatGPT网站系统源码 ChatGP…

手机上谷歌的方法有哪些

google的方法 一般情况下&#xff0c;我们打开谷歌都是提示无法显示页面的&#xff0c;如图 先百度搜索下载一个能切换IP地址的软件 下载压缩包客户端到桌面上(没安装winRAR的童鞋请安装一下) 把客户端解压到桌面&#xff0c;双击里面的exe文件 输入注册好的账户和密码&#xf…

Spring项目启动报错java.lang.NoClassDefFoundError : javax/xml/soap/SOAPException

文章目录 1.背景2.原因3.解决办法4.参考资料 1.背景 今天&#xff0c;在新设备上启动一个之前的项目的时候&#xff0c;发现启动不了了&#xff0c;报错 java.lang.NoClassDefFoundError : javax/xml/soap/SOAPException2.原因 网上查询了一下&#xff0c;大概的原因就是因为…

bert预训练梳理

BERT (Bidirectional Encoder Representation Transformers) 是在2018年由Google AI 团队发布的&#xff0c;虽然在此前刚发布不久的ELMo模型已经相比过去带来了很大的改善&#xff0c;但是BERT在各主流任务上取得的成绩仍然是一个质的飞跃。可以说&#xff0c;此后2-3年陆续出…

线程的start方法剖析

线程的start方法剖析 public synchronized void start() {if (threadStatus&#xff01;0)throw new IllegalThreadStateException();group.add(this);boolean started false;try {start0();started true;} finally {try {if (&#xff01;started){group.threadStartFailed…

javascript基础三十一:web常见的攻击方式有哪些?如何防御?

一、是什么 Web攻击&#xff08;WebAttack&#xff09;是针对用户上网行为或网站服务器等设备进行攻击的行为 如植入恶意代码&#xff0c;修改网站权限&#xff0c;获取网站用户隐私信息等等 Web应用程序的安全性是任何基于Web业务的重要组成部分 确保Web应用程序安全十分重…

安裝系列 之《Ubuntu 22.04 Mysql 8.0 在线安装和设置静态IP》

为了以后我能直接用&#xff0c;特此记录下来&#xff0c;方便你我他。 开始安装 apt-get update sudo apt install mysql-server -y输入命令&#xff0c;直接安装 输入 mysql --version 就可以看到版本 然后&#xff0c;开始设置默认密码和允许外网访问 sudo mysql -uroot …

异步任务池

Java中的线程池设计得非常巧妙&#xff0c;可以高效并发执行多个任务&#xff0c;但是在某些场景下需要对线程池进行扩展才能更好地服务于系统。例如&#xff0c;如果一个任务仍进线程池之后&#xff0c;运行线程池的程序重启了&#xff0c;那么线程池里的任务就会丢失。另外&a…

Linux 配置系统白名单 gcc/g++

推荐书籍《程序员的自我修养》《深入理解计算机系统》 配置系统白名单 我们在使用普通用户的时候&#xff0c;有些时候需要使用 sudo 指令来对某一条指令直接进行权限提升&#xff0c;因为某一些指令可能因为使用的路径或者其他原因&#xff0c;普通用户没有权限使用这个命令&…

spring boot + minio 分布式文件上传

介绍 1、分布式文件系统 简单理解为&#xff1a;一个计算机无法存储海量的文件&#xff0c;通过网络将若干计算机组织起来共同去存储海量的文件&#xff0c;去接收海量用户的请求&#xff0c;这些组织起来的计算机通过网络进行通信。 好处&#xff1a; 一台计算机的文件系统…

固定风格任意内容的快速风格迁移(讲解网络模型部分)

目录 一、目标&#xff1a;求出一个某种固定风格图像转换网络二、对比一下&#xff1a;v1算法和v2算法的区别在哪里&#xff1f;三、参数四、v2算法的优点五、图像风格转换算法的扩展性六、网络细节&#xff08;该算法的特点&#xff09;七、参考资料 下面我们统一把&#xff1…

《计算机网络——自顶向下方法》精炼——4.3.1-4.4.1

学习和研究好比爬梯子,要一步一步地往上爬,企图一脚跨上四五步,平地登天,那就必须会摔跤了。——华罗庚 文章目录 路由器工作原理输入端口概述交换结构概述输出端口何处出现排队路由选择控制平面 网际协议&#xff1a;因特网中的转发和编址数据报格式IP数据报分片 路由器工作原…