ChatGPT api文档之一
介绍
您可以通过任何语言的 HTTP 请求、我们的官方 Python 绑定、我们的官方 Node.js 库或社区维护的库与 API 交互。
要安装官方 Python 绑定,请运行以下命令:(交易要认准国际大站:欧易,官网注册,APP下载)
要安装官方 Node.js 库,请在 Node.js 项目目录中运行以下命令:
验证
OpenAI API 使用 API 密钥进行身份验证。访问您的API 密钥页面以检索您将在请求中使用的 API 密钥。
请记住,您的 API 密钥是秘密的!不要与他人共享或在任何客户端代码(浏览器、应用程序)中公开它。生产请求必须通过您自己的后端服务器进行路由,您的 API 密钥可以从环境变量或密钥管理服务中安全加载。
所有 API 请求都应在 HTTP 标头中包含您的 API 密钥,Authorization如下所示:
-
Authorization: Bearer YOUR_API_KEY
请求组织
对于属于多个组织的用户,您可以传递一个标头来指定哪个组织用于 API 请求。来自这些 API 请求的使用将计入指定组织的订阅配额。
卷曲命令示例:
-
curl https://api.openai.com/v1/models
-
-H 'Authorization: Bearer YOUR_API_KEY'
-
-H 'OpenAI-Organization: org-wz7FeUF4KSIM2Jvv98ssOps2'
Python 包的示例openai:
-
import os
-
import openai
-
openai.organization = "org-wz7FeUF4KSIM2Jvv98ssOps2"
-
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-wz7FeUF4KSIM2Jvv98ssOps2",
-
apiKey: process.env.OPENAI_API_KEY,
-
});
-
const openai = new OpenAIApi(configuration);
-
const response = await openai.listEngines();
组织 ID 可以在您的组织设置页面上找到。
发出请求
您可以将下面的命令粘贴到您的终端中以运行您的第一个 API 请求。确保替换YOUR_API_KEY为您的秘密 API 密钥。
-
curl https://api.openai.com/v1/completions
-
-H "Content-Type: application/json"
-
-H "Authorization: Bearer YOUR_API_KEY"
-
-d '{"model": "text-davinci-003", "prompt": "Say this is a test", "temperature": 0, "max_tokens": 7}'
此请求查询 Davinci 模型以完成以提示“ Say this is a test ”开头的文本。该参数设置了API 将返回的令牌max_tokens数量的上限。您应该会收到类似于以下内容的响应:
-
{
-
"id": "cmpl-GERzeJQ4lvqPk8SkZu4XMIuR",
-
"object": "text_completion",
-
"created": 1586839808,
-
"model": "text-davinci:003",
-
"choices": [
-
{
-
"text": "nnThis is indeed a test",
-
"index": 0,
-
"logprobs": null,
-
"finish_reason": "length"
-
}
-
],
-
"usage": {
-
"prompt_tokens": 5,
-
"completion_tokens": 7,
-
"total_tokens": 12
-
}
-
}
现在你已经生成了你的第一个完成。echo如果您连接提示和完成文本(如果您将参数设置为 ,API 将为您执行此操作true),则结果文本为“ Say this is a test. This indeed is a test. ”您还可以将stream参数设置为true用于 API 流回文本(作为仅数据服务器发送的事件)。
楷模
列出并描述 API 中可用的各种模型。您可以参考模型文档以了解可用的模型以及它们之间的区别。
列出模型
得到
https://api.openai.com/v1/models _
列出当前可用的模型,并提供有关每个模型的基本信息,例如所有者和可用性。
示例请求
卷曲
卷曲
-
curl https://api.openai.com/v1/models
-
-H 'Authorization: Bearer YOUR_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"
-
}
检索模型
得到
https://api.openai.com/v1 /models/{模型}
检索模型实例,提供有关模型的基本信息,例如所有者和权限。
示例请求
文本-davinci-003
文本-davinci-003
卷曲
卷曲
-
curl https://api.openai.com/v1/models/text-davinci-003
-
-H 'Authorization: Bearer YOUR_API_KEY'
-
路径参数
模型 细绳 必需的
用于此请求的模型的 ID
回复
文本-davinci-003
文本-davinci-003
-
{
-
"id": "text-davinci-003",
-
"object": "model",
-
"owned_by": "openai",
-
"permission": [...]
-
}
完工
给定一个提示,该模型将返回一个或多个预测的完成,并且还可以返回每个位置的替代标记的概率。
创建完成
邮政 https://api.openai.com/v1/completions _
为提供的提示和参数创建完成
示例请求
文本-davinci-003
文本-davinci-003
卷曲
卷曲
-
curl https://api.openai.com/v1/completions
-
-H 'Content-Type: application/json'
-
-H 'Authorization: Bearer YOUR_API_KEY'
-
-d '{
-
"model": "text-davinci-003",
-
"prompt": "Say this is a test",
-
"max_tokens": 7,
-
"temperature": 0
-
}'
请求正文
模型
细绳
必需的
要使用的模型的 ID。您可以使用List models API 来查看所有可用模型,或查看我们的模型概述以了解它们的描述。
参数
文本-davinci-003
文本-davinci-003
-
{
-
"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"
-
}
回复
文本-davinci-003
文本-davinci-003
-
{
-
"id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
-
"object": "text_completion",
-
"created": 1589478378,
-
"model": "text-davinci-003",
-
"choices": [
-
{
-
"text": "nnThis is indeed a test",
-
"index": 0,
-
"logprobs": null,
-
"finish_reason": "length"
-
}
-
],
-
"usage": {
-
"prompt_tokens": 5,
-
"completion_tokens": 7,
-
"total_tokens": 12
-
}
-
}
迅速的
字符串或数组
选修的
默认为<|endoftext|>
生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组数组。
请注意,<|endoftext|> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将生成新文档的开头。
后缀
细绳
选修的
默认为空
插入文本完成后出现的后缀。
最大令牌数
整数
选修的
默认为16
完成时生成的最大令牌数。
您的提示加上的令牌计数max_tokens不能超过模型的上下文长度。大多数模型的上下文长度为 2048 个标记(最新模型除外,它支持 4096)。
温度
数字
选修的
默认为1
使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。
我们通常建议改变这个或top_p但不是两者。
top_p
数字
选修的
默认为1
一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。
我们通常建议改变这个或temperature但不是两者。
n
整数
选修的
默认为1
为每个提示生成多少完成。
注意:因为这个参数会产生很多完成,它会很快消耗你的令牌配额。请谨慎使用并确保您对max_tokens和进行了合理的设置stop。
溪流
布尔值
选修的
默认为假
是否回流部分进度。如果设置,令牌将在可用时作为仅数据服务器发送事件发送,流由data: [DONE]消息终止。
日志概率
整数
选修的
默认为空
包括最有可能标记的对数概率logprobs,以及所选标记。例如,如果logprobs是 5,API 将返回 5 个最有可能的标记的列表。API 将始终返回采样令牌的 ,因此响应中logprob最多可能有元素。logprobs+1
的最大值logprobs为 5。如果您需要更多,请通过我们的帮助中心联系我们并描述您的用例。
回声
布尔值
选修的
默认为假
除了完成之外回显提示
停止
字符串或数组
选修的
默认为空
API 将停止生成更多令牌的最多 4 个序列。返回的文本将不包含停止序列。
存在_惩罚
数字
选修的
默认为0
-2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。
查看有关频率和存在惩罚的更多信息。
频率惩罚
数字
选修的
默认为0
-2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。
查看有关频率和存在惩罚的更多信息。
最好的
整数
选修的
默认为1
best_of在服务器端生成完成并返回“最佳”(每个标记具有最高对数概率的那个)。无法流式传输结果。
与 一起使用时n,best_of控制候选完成的数量并n指定要返回的数量 -best_of必须大于n。
注意:因为这个参数会产生很多完成,它会很快消耗你的令牌配额。请谨慎使用并确保您对max_tokens和进行了合理的设置stop。
logit_bias
地图
选修的
默认为空
修改指定标记出现在完成中的可能性。
接受一个 json 对象,该对象将标记(由 GPT 标记器中的标记 ID 指定)映射到从 -100 到 100 的相关偏差值。您可以使用此标记器工具(适用于 GPT-2 和 GPT-3)来转换文本到令牌 ID。从数学上讲,偏差会在采样之前添加到模型生成的对数中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。
例如,您可以传递{"50256": -100}以防止生成 <|endoftext|> 标记。
用户
细绳
选修的
代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。了解更多。
聊天
给定聊天对话,模型将返回聊天完成响应。
创建聊天完成测试版
邮政 https://api.openai.com/v1/chat/completions _
为聊天消息创建完成
示例请求
卷曲
卷曲
-
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!"}]
-
}'
参数
-
{
-
"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": "nnHello there, how may I assist you today?",
-
},
-
"finish_reason": "stop"
-
}],
-
"usage": {
-
"prompt_tokens": 9,
-
"completion_tokens": 12,
-
"total_tokens": 21
-
}
-
}
请求正文
模型
细绳
必需的
要使用的模型的 ID。目前仅支持gpt-3.5-turbo和。gpt-3.5-turbo-0301
讯息
大批
必需的
以聊天格式生成聊天完成的消息。
温度
数字
选修的
默认为1
使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。
我们通常建议改变这个或top_p但不是两者。
top_p
数字
选修的
默认为1
一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。
我们通常建议改变这个或temperature但不是两者。
n
整数
选修的
默认为1
为每个输入消息生成多少个聊天完成选项。
溪流
布尔值
选修的
默认为假
如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。当令牌可用时,令牌将作为纯数据服务器发送事件data: [DONE]发送,流由消息终止。
停止
字符串或数组
选修的
默认为空
API 将停止生成更多令牌的最多 4 个序列。
最大令牌数
整数
选修的
默认为inf
生成的答案允许的最大标记数。默认情况下,模型可以返回的标记数为(4096 - 提示标记)。
存在_惩罚
数字
选修的
默认为0
-2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。
查看有关频率和存在惩罚的更多信息。
频率惩罚
数字
选修的
默认为0
-2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。
查看有关频率和存在惩罚的更多信息。
logit_bias
地图
选修的
默认为空
修改指定标记出现在完成中的可能性。
接受一个 json 对象,该对象将标记(由标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。从数学上讲,偏差会在采样之前添加到模型生成的 logits 中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。
用户
细绳
选修的
代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。了解更多。
编辑
给定提示和指令,模型将返回提示的编辑版本。
创建编辑
邮政
https://api.openai.com/v1/edits _
为提供的输入、指令和参数创建新的编辑。
示例请求
text-davinci-edit-001
text-davinci-edit-001
卷曲
卷曲
-
curl https://api.openai.com/v1/edits
-
-H 'Content-Type: application/json'
-
-H 'Authorization: Bearer YOUR_API_KEY'
-
-d '{
-
"model": "text-davinci-edit-001",
-
"input": "What day of the wek is it?",
-
"instruction": "Fix the spelling mistakes"
-
}'
参数
text-davinci-edit-001
text-davinci-edit-001
-
{
-
"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
-
}
-
}
请求正文
模型
细绳
必需的
要使用的模型的 ID。您可以将text-davinci-edit-001或code-davinci-edit-001模型与此端点一起使用。
输入
细绳
选修的
默认为''
用作编辑起点的输入文本。
操作说明
细绳
必需的
告诉模型如何编辑提示的指令。
n
整数
选修的
默认为1
为输入和指令生成多少编辑。
温度
数字
选修的
默认为1
使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。
我们通常建议改变这个或top_p但不是两者。
top_p
数字
选修的
默认为1
一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。
我们通常建议改变这个或temperature但不是两者。
图片
给定提示和/或输入图像,模型将生成新图像。
相关指南:图像生成
创建图像 测试版
邮政
https://api.openai.com/v1/images/generations _
根据提示创建图像。
示例请求
卷曲
卷曲
-
curl https://api.openai.com/v1/images/generations
-
-H 'Content-Type: application/json'
-
-H 'Authorization: Bearer YOUR_API_KEY'
-
-d '{
-
"prompt": "A cute baby sea otter",
-
"n": 2,
-
"size": "1024x1024"
-
}'
参数
-
{
-
"prompt": "A cute baby sea otter",
-
"n": 2,
-
"size": "1024x1024"
-
}
回复
-
{
-
"created": 1589478378,
-
"data": [
-
{
-
"url": "https://..."
-
},
-
{
-
"url": "https://..."
-
}
-
]
-
}
请求正文
迅速的
细绳
必需的
所需图像的文本描述。最大长度为 1000 个字符。
n
整数
选修的
默认为1
要生成的图像数。必须介于 1 和 10 之间。
尺寸
细绳
选修的
默认为1024x1024
生成图像的大小。必须是256x256、512x512或 之一1024x1024。
响应格式
细绳
选修的
默认为url
生成的图像返回的格式。必须是 或url之一b64_json。
用户
细绳
选修的
代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。了解更多。
ChatGPT api文档之一
ChatGPT api文档之二