介绍
您可以通过来自任何语言的 HTTP 请求、我们的官方 Python 绑定、我们的官方 Node.js 库或社区维护的库与 API 进行交互。
若要安装官方 Python 绑定,请运行以下命令:
pip install openai
要安装官方的 Node.js 库,请在 Node.js 项目目录中运行以下命令:
npm install openai
认证
OpenAI API 使用 API 密钥进行身份验证。访问您的 API 密钥页面,检索您将在请求中使用的 API 密钥。
请记住,您的API密钥是一个秘密!不要与他人共享或在任何客户端代码(浏览器、应用程序)中公开它。生产请求必须通过您自己的后端服务器进行路由,在该服务器上,可以从环境变量或密钥管理服务安全地加载 API 密钥。
所有 API 请求都应在 HTTP 标头中包含您的 API 密钥,如下所示:Authorization
Authorization: Bearer YOUR_API_KEY
请求组织
对于属于多个组织的用户,您可以传递标头以指定用于 API 请求的组织。这些 API 请求的使用量将计入指定组织的订阅配额。
示例 curl 命令:
curl https://api.openai.com/v1/models \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'OpenAI-Organization: YOUR_ORG_ID'
Python 包的示例:openai
import os
import openai
openai.organization = "YOUR_ORG_ID"
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()
Node.js 包的示例:openai
import { Configuration, OpenAIApi } from "openai";
const configuration = new Configuration({
organization: "YOUR_ORG_ID",
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.listEngines();
可以在组织设置页面上找到组织 ID。
提出请求
您可以将以下命令粘贴到终端中以运行您的第一个 API 请求。确保替换为您的私有 API 密钥。YOUR_API_KEY
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 模型以完成文本,并提示“说这是一个测试”。该参数设置 API 将返回的令牌数的上限。您应该收到类似于以下内容的回复:max_tokens
{
"id": "cmpl-GERzeJQ4lvqPk8SkZu4XMIuR",
"object": "text_completion",
"created": 1586839808,
"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
}
}
现在,您已经生成了第一个完成。如果连接提示和完成文本(如果将参数设置为 ),API 将为您执行此操作),则生成的文本为“假设这是一个测试。这确实是一个考验。您还可以将参数设置为 API,以便流式传输回文本(作为纯数据服务器发送的事件)。echotruestreamtrue
模型
列出并描述 API 中可用的各种模型。您可以参考模型文档以了解可用的模型以及它们之间的差异。
列出模型
获取 https://api.openai.com/v1/models
列出当前可用的模型,并提供有关每个模型的基本信息,例如所有者和可用性。
示例请求卷曲选择库卷曲蟒节点.js复制
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/{ 模型}
检索模型实例,提供有关模型的基本信息,例如所有者和权限。
路径参数
型字符串必填
用于此请求的模型的 ID
示例请求文本-达芬奇-003文本-ADA-001文本-巴贝奇-001文本居里-001文本-达芬奇-003卷曲选择库卷曲蟒节点.js复制
curl https://api.openai.com/v1/models/text-davinci-003 \
-H 'Authorization: Bearer YOUR_API_KEY'
响应文本-达芬奇-003文本-ADA-001文本-巴贝奇-001文本居里-001文本-达芬奇-003复制
{
"id": "text-davinci-003",
"object": "model",
"owned_by": "openai",
"permission": [...]
}
完成
给定提示,模型将返回一个或多个预测完成,还可以返回每个位置的替代令牌的概率。
创建完成
发布 https://api.openai.com/v1/completions
为提供的提示和参数创建补全
请求正文
型字符串必填
要使用的模型的 ID。可以使用列表模型 API 查看所有可用模型,或参阅模型概述了解它们的描述。
提示字符串或数组自选默认为 <|结尾文本|>
用于生成完成、编码为字符串、字符串数组、标记数组或标记数组数组的提示。
请注意,<|endoftext|> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将生成,就像从新文档的开头一样。
后缀字符串自选默认值为空
完成插入文本后的后缀。
max_tokens整数自选默认值为 16
完成时要生成的最大令牌数。
提示加号的令牌计数不能超过模型的上下文长度。大多数模型的上下文长度为 2048 个令牌(最新模型除外,它支持 4096)。max_tokens
温度数自选默认值为 1
使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。
我们通常建议更改此设置,但不要同时更改两者。top_p
top_p数自选默认值为 1
使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。
我们通常建议更改此设置,但不要同时更改两者。temperature
n整数自选默认值为 1
为每个提示生成的完成次数。
注意:由于此参数会生成许多完成,因此它会快速消耗令牌配额。请谨慎使用,并确保对 和 进行合理的设置。max_tokensstop
流布尔自选默认为 false
是否流式传输回部分进度。如果设置,令牌将在可用时作为纯数据服务器发送的事件发送,流由消息终止。data: [DONE]
对数整数自选默认值为空
包括最可能的令牌的日志概率,以及所选令牌。例如,如果为 5,则 API 将返回 5 个最可能的令牌的列表。API 将始终返回采样令牌的 ,因此响应中最多可能有元素。logprobslogprobslogproblogprobs+1
的最大值为 5。如果您需要更多,请通过我们的帮助中心与我们联系并描述您的使用案例。logprobs
回波布尔自选默认为 false
除了完成之外,还回显提示
停字符串或数组自选默认值为空
最多 4 个序列,其中 API 将停止生成更多令牌。返回的文本将不包含停止序列。
presence_penalty数自选默认值为 0