赞
踩
您可以通过来自任何语言的 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();
您可以将以下命令粘贴到终端中以运行您的第一个 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_reason
stop
n
gpt-3.5-turbo
列出并描述 API 中可用的各种模型。您可以参考模型文档以了解可用的模型以及它们之间的差异。
列出当前可用的模型,并提供有关每个模型的基本信息,例如所有者和可用性。
示例请求
- 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"
- }
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": [...]
- }
给定提示,模型将返回一个或多个预测完成,还可以返回每个位置的替代令牌的概率。
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
- }
- }
用于生成完成、编码为字符串、字符串数组、标记数组或标记数组数组的提示。
请注意,<|endoftext|> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将生成,就像从新文档的开头一样。
完成插入文本后的后缀。
完成时要生成的最大令牌数。
提示加号的令牌计数不能超过模型的上下文长度。大多数模型的上下文长度为 2048 个令牌(最新模型除外,它支持 4096)。max_tokens
使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。
我们通常建议更改此设置,但不要同时更改两者。top_p
使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。
我们通常建议更改此设置,但不要同时更改两者。temperature
为每个提示生成的完成次数。
注意:由于此参数会生成许多完成,因此它会快速消耗令牌配额。请谨慎使用,并确保对 和 进行合理的设置。max_tokens
stop
是否流式传输回部分进度。如果设置,令牌将在可用时作为纯数据服务器发送的事件发送,流由消息终止。data: [DONE]
包括最可能的令牌的日志概率,以及所选令牌。例如,如果为 5,则 API 将返回 5 个最可能的令牌的列表。API 将始终返回采样令牌的 ,因此响应中最多可能有元素。logprobs
logprobs
logprob
logprobs+1
的最大值为 5。如果您需要更多,请通过我们的帮助中心与我们联系并描述您的使用案例。logprobs
除了完成之外,还回显提示
最多 4 个序列,其中 API 将停止生成更多令牌。返回的文本将不包含停止序列。
介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加模型讨论新主题的可能性。
介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止在文本中的现有频率来惩罚新标记,从而降低模型逐字重复同一行的可能性。
在服务器端生成完成并返回“最佳”(每个令牌的日志概率最高的那个)。无法流式传输结果。best_of
与 一起使用时,控制候选完成次数并指定要返回的完成次数 – 必须大于 。n
best_of
n
best_of
n
注意:由于此参数会生成许多完成,因此它会快速消耗令牌配额。请谨慎使用,并确保对 和 进行合理的设置。max_tokens
stop
修改完成中出现指定令牌的可能性。
接受将令牌(由其在 GPT 标记器中的令牌 ID 指定)映射到 -100 到 100 之间的关联偏差值的 json 对象。您可以使用此分词器工具(适用于 GPT-2 和 GPT-3)将文本转换为令牌 ID。在数学上,偏差在采样之前被添加到模型生成的对数中。确切的效果因模型而异,但介于 -1 和 1 之间的值应降低或增加选择的可能性;像 -100 或 100 这样的值应该会导致禁止或排他性选择相关令牌。
例如,您可以传递以防止生成 <|endoftext|> 令牌。{"50256": -100}
代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。
给定聊天对话,模型将返回聊天完成响应。
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 配合使用的详细信息,请参阅模型终端节点兼容性表。
要为其生成聊天完成的消息,采用聊天格式。
使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。
我们通常建议更改此设置,但不要同时更改两者。top_p
使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。
我们通常建议更改此设置,但不要同时更改两者。temperature
要为每个输入消息生成的聊天完成选项数。
最多 4 个序列,其中 API 将停止生成更多令牌。
要在聊天完成中生成的最大令牌数。
输入令牌和生成的令牌的总长度受模型上下文长度的限制。
介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加模型讨论新主题的可能性。
介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止在文本中的现有频率来惩罚新标记,从而降低模型逐字重复同一行的可能性。
修改完成中出现指定令牌的可能性。
接受将令牌(由其在分词器中的令牌 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
- }
- }
要使用的模型的 ID。可以将 or 用于此终结点。text-davinci-edit-001
code-davinci-edit-001
要用作编辑起点的输入文本。
告知模型如何编辑提示的说明。
要为输入和指令生成的编辑次数。
使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。
我们通常建议更改此设置,但不要同时更改两者。top_p
使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。
我们通常建议更改此设置,但不要同时更改两者。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。