您可以通过来自任何语言的 HTTP 请求、我们的官方 Python 绑定、我们的官方 Node.js 库或社区维护的库与 API 进行交互。
原文链接:API Reference – OpenAI API
若要安装官方 Python 绑定,请运行以下命令:
pip install openai要安装官方的 Node.js 库,请在 Node.js 项目目录中运行以下命令:
npm install openaiOpenAI API 使用 API 密钥进行身份验证。访问您的 API 密钥页面,检索您将在请求中使用的 API 密钥。
请记住,您的API密钥是一个秘密!不要与他人共享或在任何客户端代码(浏览器、应用程序)中公开它。生产请求必须通过您自己的后端服务器进行路由,在该服务器上,可以从环境变量或密钥管理服务安全地加载 API 密钥。
所有 API 请求都应在 Authorization HTTP 标头中包含您的 API 密钥,如下所示:
Authorization: Bearer YOUR_API_KEY对于属于多个组织的用户,您可以传递标头以指定用于 API 请求的组织。这些 API 请求的使用量将计入指定组织的订阅配额。
示例 curl 命令:
curl https://api.openai.com/v1/models / -H 'Authorization: Bearer YOUR_API_KEY' / -H 'OpenAI-Organization: org-xpMoAv99i8jdZvhGXPfiRXug'Python 包的openai示例:
import osimport openaiopenai.organization = "org-xpMoAv99i8jdZvhGXPfiRXug"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-xpMoAv99i8jdZvhGXPfiRXug", 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 模型以完成文本,并提示“说这是一个测试”。max_tokens 参数设置 API 将返回的令牌数的上限。您应该收到类似于以下内容的回复:
{ "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 }}现在,您已经生成了第一个完成。如果连接提示和完成文本(如果将参数 echo 设置为 true),API 将为您执行此操作),则生成的文本为“假设这是一个测试。这确实是一个考验。您还可以将 API 参数stream 设置为 true ,以便流式传输回文本(作为纯数据服务器发送的事件)。true
列出并描述 API 中可用的各种模型。您可以参考模型文档以了解可用的模型以及它们之间的差异。
GET 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"}GET https://api.openai.com/v1/models/{model}检索模型实例,提供有关模型的基本信息,例如所有者和权限。
model string Required用于此请求的模型的 ID
示例请求
curl https://api.openai.com/v1/models/text-davinci-003 / -H 'Authorization: Bearer YOUR_API_KEY'响应
{ "id": "text-davinci-003", "object": "model", "owned_by": "openai", "permission": [...]}给定提示,模型将返回一个或多个预测完成,还可以返回每个位置的替代令牌的概率。
POST https://api.openai.com/v1/completions为提供的提示和参数创建补全
model string Required要使用的模型的 ID。可以使用列表模型 API 查看所有可用模型,或参阅模型概述了解它们的描述。
prompt string or array Optional Defaults to <|endoftext|>用于生成完成、编码为字符串、字符串数组、标记数组或标记数组数组的提示。
请注意,<|endoftext|> 是模型在训练期间看到的文档分隔符,因此如果未指定提示,模型将生成,就像从新文档的开头一样。
suffix string Optional Defaults to null完成插入文本后的后缀。
max_tokens integer Optional Defaults to 16完成时要生成的最大令牌数。
提示加号的令牌计数不能超过模型的上下文长度 max_tokens。大多数模型的上下文长度为 2048 个令牌(最新模型除外,它支持 4096)。
temperature number Optional Defaults to 1使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。
我们通常建议更改此设置,但不要同时更改 top_p 两者。
top_p number Optional Defaults to 1使用temperature 采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。
我们通常建议更改此设置,但不要同时更改temperature两者。
n integer Optional Defaults to 1为每个提示生成的完成次数。
注意:由于此参数会生成许多完成,因此它会快速消耗令牌配额。请谨慎使用,并确保对 max_tokens 和 stop 进行合理的设置。
stream boolean Optional Defaults to false是否流式传输回部分进度。如果设置,令牌将在可用时作为纯数据服务器发送的事件发送,流由data: [DONE]消息终止。
logprobs integer Optional Defaults to nulllogprobs包括最可能的令牌的日志概率,以及所选令牌。例如,如果 logprobs 为 5,则 API 将返回 5 个最可能的令牌的 logprob 列表。API 将始终返回采样令牌的 logprobs+1 ,因此响应中最多可能有元素。
logprobs 的最大值为 5。如果您需要更多,请通过我们的帮助中心与我们联系并描述您的使用案例。
echo boolean Optional Defaults to false除了完成之外,还回显提示
stop string or array Optional Defaults to null最多 4 个序列,其中 API 将停止生成更多令牌。返回的文本将不包含停止序列。
presence_penalty number Optional Defaults to 0介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加模型讨论新主题的可能性。
frequency_penalty number Optional Defaults to 0介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止在文本中的现有频率来惩罚新标记,从而降低模型逐字重复同一行的可能性。
best_of integer Optional Defaults to 1在服务器端生成完成并返回 best_of(每个令牌的日志概率最高的那个)。无法流式传输结果。
n 与 best_of一起使用时,控制候选完成次数 并指定要返回的完成次数 – best_of 必须大于 n。
注意:由于此参数会生成许多完成,因此它会快速消耗令牌配额。请谨慎使用,并确保对 和 进行合理的设置。max_tokensstop
logit_bias map Optional Defaults to null修改完成中出现指定令牌的可能性。
接受将令牌(由其在 GPT 标记器中的令牌 ID 指定)映射到 -100 到 100 之间的关联偏差值的 json 对象。您可以使用此分词器工具(适 用于 GPT-2 和 GPT-3)将文本转换为令牌 ID。在数学上,偏差在采样之前被添加到模型生成的对数中。确切的效果因模型而异,但介于 -1 和 1 之间的值应降低或增加选择的可能性;像 -100 或 100 这样的值应该会导致禁止或排他性选择相关令牌。
例如,您可以传递{"50256": -100}以防止生成 <|endoftext|> 令牌。
user string Optional代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。
示例请求
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 }’
参数
{ "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 }}给定提示和指令,模型将返回提示的编辑版本。
POST https://api.openai.com/v1/edits为提供的输入、指令和参数创建新的编辑。
model string Required要使用的模型的 ID。可以将 text-davinci-edit-001 或 code-davinci-edit-001 模型用于此终结点。
input string Optional Defaults to ''要用作编辑起点的输入文本。
instruction string Required告知模型如何编辑提示的说明。
n integer Optional Defaults to 1要为输入和指令生成的编辑次数。
temperature number Optional Defaults to 1使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。
我们通常建议更改此设置,但不要同时更改 top_p 两者。
top_p number Optional Defaults to 1使用温度采样的替代方法称为核心采样,其中模型考虑具有top_p概率质量的令牌的结果。因此,0.1 意味着只考虑包含前 10% 概率质量的代币。
我们通常建议更改此设置,但不要同时更改 temperature 两者。
示例请求
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"}'参数
{ "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 }}给定提示和/或输入图像,模型将生成一个新图像。
相关指南:图像生成
POST https://api.openai.com/v1/images/generations创建给定提示的图像。
prompt string Required
所需图像的文本描述。最大长度为 1000 个字符。
n integer Optional Defaults to 1要生成的图像数。必须介于 1 和 10 之间。
size string Optional Defaults to 1024x1024生成的图像的大小。必须是 256x256、 512x512 或 1024x1024 之一。
response_format string Optional Defaults to url返回生成的图像的格式。必须是 url 或 b64_json 之一。
user string Optional代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。
示例请求
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://..." } ]}POST https://api.openai.com/v1/images/edits在给定原始图像和提示的情况下创建编辑或扩展的图像。
image string Required要编辑的图像。必须是有效的 PNG 文件,小于 4MB,并且是正方形。如果未提供蒙版,则图像必须具有透明度,该透明度将用作蒙版。
mask string Optional一个附加图像,其完全透明的区域(例如,alpha为零)指示 image 应编辑的位置。必须是有效的 PNG 文件,小于 4MB,并且尺寸与 image 相同。
prompt string Required所需图像的文本描述。最大长度为 1000 个字符。
n integer Optional Defaults to 1要生成的图像数。必须介于 1 和 10 之间。
size string Optional Defaults to 1024x1024生成的图像的大小。必须是 256x256 、 512x512 或 1024x1024 之一。
response_format string Optional Defaults to url返回生成的图像的格式。必须是 url 或 b64_json 之一。b64_json
user string Optional代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。
示例请求
curl https://api.openai.com/v1/images/edits / -H 'Authorization: Bearer YOUR_API_KEY' / -F image='@otter.png' / -F mask='@mask.png' / -F prompt="A cute baby sea otter wearing a beret" / -F n=2 / -F size="1024x1024"响应
{ "created": 1589478378, "data": [ { "url": "https://..." }, { "url": "https://..." } ]}POST https://api.openai.com/v1/images/variations创建给定图像的变体。
image string Required用作变体基础的图像。必须是有效的 PNG 文件,小于 4MB,并且是正方形。
n integer Optional Defaults to 1要生成的图像数。必须介于 1 和 10 之间。
size string Optional Defaults to 1024x1024生成的图像的大小。必须是 256x256 、 512x512 或 1024x1024 之一。
response_format string Optional Defaults to url返回生成的图像的格式。必须是 url 或 b64_json 之一。b64_json
user string Optional代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。
示例请求
curl https://api.openai.com/v1/images/variations / -H 'Authorization: Bearer YOUR_API_KEY' / -F image='@otter.png' / -F n=2 / -F size="1024x1024"响应
{ "created": 1589478378, "data": [ { "url": "https://..." }, { "url": "https://..." } ]}获取给定输入的向量表示形式,机器学习模型和算法可以轻松使用该表示形式。
相关指南:嵌入
POST https://api.openai.com/v1/embeddings创建表示输入文本的嵌入向量。
model string Required要使用的模型的 ID。可以使用列表模型 API 查看所有可用模型,或参阅模型概述了解它们的描述。
input string or array Required要为其嵌入的输入文本,编码为字符串或标记数组。若要在单个请求中获取多个输入的嵌入,请传递字符串数组或令牌数组数组。每个输入的长度不得超过 8192 个令牌。
user string Optional代表最终用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。了解更多。
示例请求
curl https://api.openai.com/v1/embeddings / -X POST / -H "Authorization: Bearer YOUR_API_KEY" / -H "Content-Type: application/json" / -d '{"input": "The food was delicious and the waiter...", "model": "text-embedding-ada-002"}'参数
{ "model": "text-embedding-ada-002", "input": "The food was delicious and the waiter..."}响应
{ "object": "list", "data": [ { "object": "embedding", "embedding": [ 0.0023064255, -0.009327292, .... (1536 floats total for ada-002) -0.0028842222, ], "index": 0 } ], "model": "text-embedding-ada-002", "usage": { "prompt_tokens": 8, "total_tokens": 8 }}文件用于上传可与微调等功能一起使用的文档。
POST https://api.openai.com/v1/files
返回属于用户组织的文件列表。
示例请求
curl https://api.openai.com/v1/files /
-H ‘Authorization: Bearer YOUR_API_KEY’
响应
{ "data": [ { "id": "file-ccdDZrC3iZVNiQVeEA6Z66wf", "object": "file", "bytes": 175, "created_at": 1613677385, "filename": "train.jsonl", "purpose": "search" }, { "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "bytes": 140, "created_at": 1613779121, "filename": "puppy.jsonl", "purpose": "search" } ], "object": "list"}POST https://api.openai.com/v1/files
上传包含要跨各种端点/功能使用的文档的文件。目前,一个组织上传的所有文件的大小最大为 1 GB。如果您需要增加存储限制,请联系我们。
file string Required要上传的 JSON 行文件的名称。
如果设置为“微调”,则每行都是一个 JSON 记录,其中“提示”和“完成”字段表示您的训练示例。purpose
purpose string Required上传文档的预期用途。
使用“微调”进行微调。这使我们能够验证上传文件的格式。
示例请求
curl https://api.openai.com/v1/files / -H "Authorization: Bearer YOUR_API_KEY" / -F purpose="fine-tune" / -F file='@mydata.jsonl'响应
{ "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "bytes": 140, "created_at": 1613779121, "filename": "mydata.jsonl", "purpose": "fine-tune"}DELETE https://api.openai.com/v1/files/{file_id}
删除文件。
file_id string Required用于此请求的文件的 ID
示例请求
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 / -X DELETE / -H 'Authorization: Bearer YOUR_API_KEY'响应复制
{ "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "deleted": true}GET https://api.openai.com/v1/files/{file_id}
返回有关特定文件的信息。
file_id string Required用于此请求的文件的 ID
示例请求
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 / -H 'Authorization: Bearer YOUR_API_KEY'响应
{ "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "bytes": 140, "created_at": 1613779657, "filename": "mydata.jsonl", "purpose": "fine-tune"}GET https://api.openai.com/v1/files/{file_id}/内容
返回指定文件的内容
file_id string Required用于此请求的文件的 ID
示例请求
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3/content / -H 'Authorization: Bearer YOUR_API_KEY' > file.jsonl管理微调作业,以根据特定训练数据定制模型。
相关指南:微调模型
POST https://api.openai.com/v1/fine-tunes
创建一个作业,用于微调给定数据集中的指定模型。
响应包括排队作业的详细信息,包括作业状态和完成后微调模型的名称。
training_file string Required包含训练数据的上传文件的 ID。
有关如何上传文件的信息,请参阅上传文件。
您的数据集必须格式化为 JSONL 文件,其中每个训练 示例是具有键“提示”和“完成”的 JSON 对象。 此外,您必须上传具有目的的文件 fine-tune。
有关更多详细信息,请参阅微调指南。
validation_file string Optional包含验证数据的上载文件的 ID。
如果提供此文件,则数据将用于生成验证 微调期间定期执行指标。可以在 微调结果文件。 训练数据和验证数据应互斥。
数据集必须格式化为 JSONL 文件,其中每个验证 示例是具有键“提示”和“完成”的 JSON 对象。 此外,您必须上传具有目的的文件。fine-tune
有关更多详细信息,请参阅微调指南。
model string Optional Defaults to curie要微调的基本模型的名称。您可以选择“ada”之一, “巴贝奇”、“居里”、“达芬奇”或 2022-04-21 之后创建的微调模型。 若要了解有关这些模型的详细信息,请参阅模型文档。
n_epochs integer Optional Defaults to 4要为其训练模型的纪元数。纪元是指一个 通过训练数据集的完整周期。
batch_size integer Optional Defaults to null用于训练的批大小。批大小是 用于训练单个前进和后退传递的训练示例。
默认情况下,批大小将动态配置为 ~训练集中样本数的 0.2%,上限为 256 – 一般来说,我们发现较大的批量往往效果更好 对于较大的数据集。
learning_rate_multiplier number Optional Defaults to null用于训练的学习率乘数。 微调学习率是用于 预训练乘以此值。
默认情况下,学习率乘数为 0.05、0.1 或 0.2 取决于最终 batch_size(较大的学习率往往 使用较大的批量时性能更好)。我们建议尝试 值在 0.02 到 0.2 范围内,以查看产生最佳结果 结果。
prompt_loss_weight number Optional Defaults to 0.01用于提示令牌损失的权重。这将控制如何 模型试图学习生成提示(相比之下 完成的权重始终为 1.0),并且可以添加 当完成时间短时,对培训起到稳定作用。
如果提示非常长(相对于完成),则可能会使 减轻此权重以避免过度优先 学习提示。
compute_classification_metrics boolean Optional Defaults to false如果设置,我们将计算特定于分类的指标,例如准确性 以及使用每个纪元末尾的验证集进行 F-1 分数。 可以在结果文件中查看这些指标。
要计算分类指标,必须提供 validation_file .此外,您必须 指定多classification_n_classes 类分类或classification_positive_class 二元分类。
classification_n_classes integer Optional Defaults to null
分类任务中的类数。
此参数对于多类分类是必需的。
classification_positive_class string Optional Defaults to null二元分类中的正类。
需要此参数来生成精度、召回率和 F1 执行二元分类时的指标。
classification_betas array Optional Defaults to null如果提供,我们将计算指定 F-beta 分数 贝塔值。F-beta 分数是 F-1 分数的概括。 这仅用于二元分类。
当 beta 为 1(即 F-1 分数)时,精度和召回率是 给定相同的权重。贝塔分数越高,权重越高 召回,精度较少。较小的 beta 分数带来更大的权重 在精度上,在召回方面更少。
suffix string Optional Defaults to null最多 40 个字符的字符串,将添加到微调的模型名称中。
例如,“自定义模型名称”将生成类似 .suffixada:ft-your-org:custom-model-name-2022-02-15-04-21-04
示例请求
curl https://api.openai.com/v1/fine-tunes / -X POST / -H "Content-Type: application/json" / -H "Authorization: Bearer YOUR_API_KEY" / -d '{ "training_file": "file-XGinujblHPwGLSztz8cPS8XY"}'响应
{ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", "object": "fine-tune", "model": "curie", "created_at": 1614807352, "events": [ { "object": "fine-tune-event", "created_at": 1614807352, "level": "info", "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." } ], "fine_tuned_model": null, "hyperparams": { "batch_size": 4, "learning_rate_multiplier": 0.1, "n_epochs": 4, "prompt_loss_weight": 0.1, }, "organization_id": "org-...", "result_files": [], "status": "pending", "validation_files": [], "training_files": [ { "id": "file-XGinujblHPwGLSztz8cPS8XY", "object": "file", "bytes": 1547276, "created_at": 1610062281, "filename": "my-data-train.jsonl", "purpose": "fine-tune-train" } ], "updated_at": 1614807352,}GET https://api.openai.com/v1/fine-tunes
列出组织的微调作业
示例请求
curl https://api.openai.com/v1/fine-tunes / -H 'Authorization: Bearer YOUR_API_KEY'响应
{ "object": "list", "data": [ { "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", "object": "fine-tune", "model": "curie", "created_at": 1614807352, "fine_tuned_model": null, "hyperparams": { ... }, "organization_id": "org-...", "result_files": [], "status": "pending", "validation_files": [], "training_files": [ { ... } ], "updated_at": 1614807352, }, { ... }, { ... } ]}GET https://api.openai.com/v1/fine-tunes/{fine_tune_id}
获取有关微调作业的信息。
fine_tune_id string Required示例请求
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F / -H "Authorization: Bearer YOUR_API_KEY"响应
{ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", "object": "fine-tune", "model": "curie", "created_at": 1614807352, "events": [ { "object": "fine-tune-event", "created_at": 1614807352, "level": "info", "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." }, { "object": "fine-tune-event", "created_at": 1614807356, "level": "info", "message": "Job started." }, { "object": "fine-tune-event", "created_at": 1614807861, "level": "info", "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Job succeeded." } ], "fine_tuned_model": "curie:ft-acmeco-2021-03-03-21-44-20", "hyperparams": { "batch_size": 4, "learning_rate_multiplier": 0.1, "n_epochs": 4, "prompt_loss_weight": 0.1, }, "organization_id": "org-...", "result_files": [ { "id": "file-QQm6ZpqdNwAaVC3aSz5sWwLT", "object": "file", "bytes": 81509, "created_at": 1614807863, "filename": "compiled_results.csv", "purpose": "fine-tune-results" } ], "status": "succeeded", "validation_files": [], "training_files": [ { "id": "file-XGinujblHPwGLSztz8cPS8XY", "object": "file", "bytes": 1547276, "created_at": 1610062281, "filename": "my-data-train.jsonl", "purpose": "fine-tune-train" } ], "updated_at": 1614807865,}POST https://api.openai.com/v1/fine-tunes/{fine_tune_id}/取消
立即取消微调作业。
fine_tune_id string Required示例请求
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/cancel / -X POST / -H "Authorization: Bearer YOUR_API_KEY"响应
{ "id": "ft-xhrpBbvVUzYGo8oUO1FY4nI7", "object": "fine-tune", "model": "curie", "created_at": 1614807770, "events": [ { ... } ], "fine_tuned_model": null, "hyperparams": { ... }, "organization_id": "org-...", "result_files": [], "status": "cancelled", "validation_files": [], "training_files": [ { "id": "file-XGinujblHPwGLSztz8cPS8XY", "object": "file", "bytes": 1547276, "created_at": 1610062281, "filename": "my-data-train.jsonl", "purpose": "fine-tune-train" } ], "updated_at": 1614807789,}GET https://api.openai.com/v1/fine-tunes/{fine_tune_id}/events
获取微调作业的精细状态更新。
fine_tune_id string Required要为其获取事件的微调作业的 ID。
stream boolean Optional Defaults to false是否流式传输微调作业的事件。如果设置为 true, 事件将在可用时作为纯数据服务器发送的事件发送。作业完成后,流将终止并显示一条data: [DONE]消息(成功、已取消、 或失败)。
如果设置为 false,则仅返回到目前为止生成的事件。
示例请求
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/events / -H "Authorization: Bearer YOUR_API_KEY"响应
{ "object": "list", "data": [ { "object": "fine-tune-event", "created_at": 1614807352, "level": "info", "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." }, { "object": "fine-tune-event", "created_at": 1614807356, "level": "info", "message": "Job started." }, { "object": "fine-tune-event", "created_at": 1614807861, "level": "info", "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Job succeeded." } ]}DELETE https://api.openai.com/v1/models/{模型}
删除微调的模型。您必须在组织中具有所有者角色。
model string Required要删除的模型
示例请求
curl https://api.openai.com/v1/models/curie:ft-acmeco-2021-03-03-21-44-20 / -X DELETE / -H "Authorization: Bearer YOUR_API_KEY"响应
{ "id": "curie:ft-acmeco-2021-03-03-21-44-20", "object": "model", "deleted": true}给定输入文本,如果模型将其归类为违反 OpenAI 的内容策略,则输出。
相关指南:审核
对文本违反 OpenAI 内容政策进行分类
input string or array Required要分类的输入文本
model string Optional Defaults to text-moderation-latest有两种内容审查模型可用:text-moderation-stable 和 text-moderation-latest 。
默认值为 text-moderation-latest 将随时间自动升级。这可确保您始终使用我们最准确的模型。如果您使用 text-moderation-stable,我们将在更新模型之前提供提前通知。text-moderation-stable的准确度可能略低于text-moderation-latest的精度。
示例请求
curl https://api.openai.com/v1/moderations / -H 'Content-Type: application/json' / -H 'Authorization: Bearer YOUR_API_KEY' / -d '{ "input": "I want to kill them."}'参数
{ "input": "I want to kill them."}响应
{ "id": "modr-5MWoLO", "model": "text-moderation-001", "results": [ { "categories": { "hate": false, "hate/threatening": true, "self-harm": false, "sexual": false, "sexual/minors": false, "violence": true, "violence/graphic": false }, "category_scores": { "hate": 0.22714105248451233, "hate/threatening": 0.4132447838783264, "self-harm": 0.005232391878962517, "sexual": 0.01407341007143259, "sexual/minors": 0.0038522258400917053, "violence": 0.9223177433013916, "violence/graphic": 0.036865197122097015 }, "flagged": true } ]}引擎终结点已弃用。
这些终结点描述并提供对 API 中可用的各种引擎的访问。
GET https://api.openai.com/v1/engines
列出当前可用的(非微调的)模型,并提供有关每个模型的基本信息,例如所有者和可用性。
curl https://api.openai.com/v1/engines / -H 'Authorization: Bearer YOUR_API_KEY'响应
{ "data": [ { "id": "engine-id-0", "object": "engine", "owner": "organization-owner", "ready": true }, { "id": "engine-id-2", "object": "engine", "owner": "organization-owner", "ready": true }, { "id": "engine-id-3", "object": "engine", "owner": "openai", "ready": false }, ], "object": "list"}GET https://api.openai.com/v1/engines/{engine_id}
检索模型实例,提供有关该实例的基本信息,例如所有者和可用性。
engine_id string Required用于此请求的引擎的 ID
示例请求
curl https://api.openai.com/v1/engines/text-davinci-003 / -H 'Authorization: Bearer YOUR_API_KEY'响应
{ "id": "text-davinci-003", "object": "engine", "owner": "openai", "ready": true}频率和存在处罚
在完成 API 中找到的频率和存在惩罚可用于降低对重复的令牌序列进行采样的可能性。 它们通过直接修改具有加性贡献的对数(非规范化对数概率)来工作。
mu[j] -> mu[j] - c[j] * alpha_frequency - float(c[j] > 0) * alpha_presence哪里:
mu[j]是 j 令牌的对数c[j]是该代币在当前位置之前采样的频率float(c[j] > 0)如果为 1,否则为 0c[j] > 0alpha_frequency是频率惩罚系数alpha_presence是存在惩罚系数正如我们所看到的,存在惩罚是一次性的加性贡献,适用于至少采样过一次的所有代币,频率惩罚是与特定代币已被采样的频率成正比的贡献。
惩罚系数的合理值约为 0.1 比 1,如果目的是稍微减少重复样本。如果目的是强烈抑制重复,则可以将系数增加到 2,但这会显着降低样本的质量。负值可用于增加重复的可能性。

