OpenAI
OpenAI 是一家私人研究实验室,旨在以造福全人类的方式开发和引导人工智能(AI)。OpenAI 开发了以下项目:
- GPT-3:此强大的语言模型是其他 OpenAI 产品的基础。它通过分析人类生成的文本来学习自主生成类似文本。
- DALL-E 和 DALL-E 2:这些生成式 AI 平台可以分析用户希望生成的图像的文字描述,然后完全按照描述生成这些图像。
- CLIP:CLIP 是一种神经网络,将视觉和相关文本合成,以预测最能准确描述这些视觉的字幕。由于其从多种数据类型(图像和文本)中学习的能力,它可以归类为多模态 AI。
- ChatGPT:ChatGPT 目前是最先进的 AI 聊天机器人,专为生成类人文本和回答用户问题而设计。经过大型数据集训练后,它能够像人类一样生成答案和响应。
- Codex:Codex 基于数十亿行多种编程语言的代码进行训练,旨在帮助软件开发人员简化编码流程。它建立在 GPT-3 技术之上,但不生成文本,而是生成代码。
- Whisper:Whisper 是一种自动语音识别(ASR)工具。它经过海量音频数据训练,能够识别、转录并翻译约 100 种语言的语音,包括技术语言和不同口音。
OpenAI API
OpenAI API 可应用于几乎所有涉及理解或生成自然语言、代码或图像的任务。OpenAI 提供具有不同能力级别的一系列模型,适用于不同任务,同时还提供对自定义模型进行微调的能力。这些模型可用于从内容生成到语义搜索和分类的各种场景。
最常见的用途
配置
OpenAI
OpenAI API 使用 API 密钥进行身份验证。请访问您的 API 密钥页面获取您在请求中使用的 API 密钥。
请记住,您的 API 密钥是保密的!请勿与他人共享或在任何客户端代码(浏览器、应用程序)中公开。生产请求必须通过您自己的后端服务器路由,并从环境变量或密钥管理服务中安全加载 API 密钥。
此 API Key 必须在组件的 OpenAIOptions.ApiKey 属性中配置。对于属于多个组织的用户,如果您的账户属于某个组织,可以在 OpenAIOptions.Organization 属性中设置您的组织。
配置 API 密钥后,以下是与 OpenAI API 交互的可用函数列表。
Azure
该客户端支持 Microsoft Azure OpenAI Services,因此您也可以使用 Azure 账户与 Azure OpenAI API 进行交互。要将客户端配置为与 Azure 配合使用,请按照以下步骤操作:
- 将属性 OpenAIOptions.Provider 配置为 oapvAzure
- 设置 ResourceName 和 DeploymentId 的值(这些值可以在您的 Azure 账户中找到)
- OpenAIOptions.AzureOptions.ResourceName = <您的资源名称>。
- OpenAIOptions.AzureOptions.DeploymentId = <您的部署 ID>。
- 设置您 Azure 账户的 API 密钥
- OpenAIOptions.ApiKey = <azure api key>。
请注意,并非所有 OpenAI 方法都受 Azure 支持,目前仅支持以下方法:
- 完成
- 聊天补全
属性
OpenAIOptions
- ApiKey:用于向 OpenAI API 进行身份验证的 API 密钥。
- Organization:属于多个组织的用户的可选组织 ID。
- Provider: 选择提供商:oapvOpenAI(默认)或 oapvAzure(Microsoft Azure OpenAI 服务)。
- AzureOptions:Azure OpenAI 服务的配置。
- ResourceName:Azure 资源名称。
- DeploymentId:Azure 部署 ID。
- APIVersion:Azure API 版本。
- HttpOptions:HTTP 连接设置。
- ReadTimeout:读取 HTTP 响应的超时时间(毫秒)。默认值为 0(无超时)。
- LogOptions:日志配置。
- Enabled:为 True 时,HTTP 请求和响应将被记录到文件中。
- FileName:写入日志输出的文件路径。
- RetryOptions: 失败 API 请求的自动重试配置。
- Enabled: 为 True 时,失败的请求将自动重试。
- Retries: 最大重试次数。
- Wait: 两次重试之间的等待时间(毫秒)。
模型
列出并描述 API 中可用的各种模型。
- GetModels:列出当前可用的模型,并提供每个模型的基本信息,例如所有者和可用性。
- GetModel:检索一个模型实例,提供关于该模型的基本信息,如所有者和权限设置。
补全
给定一个提示,模型将返回一个或多个预测的补全结果,还可返回每个位置上备选 token 的概率。
- CreateCompletion:为提供的提示词和参数创建补全内容。
- Model:要使用的模型 ID。您可以使用列出模型 API 查看所有可用模型,或参阅模型概览了解其描述。
- Prompt:用于生成补全内容的提示词。
聊天
给定聊天对话后,模型将返回聊天补全响应。
- Model:要使用的模型 ID。调用 GetModels 获取 Chat API 支持的所有模型列表。
- Message:用于生成聊天补全的消息。
- Role:默认为 user,其他选项包括:system、assistant。
编辑
给定提示词和指令,模型将返回提示词的编辑版本。
- CreateEdit:根据提供的输入、指令和参数创建新的编辑。
- Model:要使用的模型 ID。可以在此端点使用 text-davinci-edit-001 或 code-davinci-edit-001 模型。
- Instruction:告知模型如何编辑提示的指令。
- Input:(可选)用作编辑起点的输入文本。
图像
给定提示词和/或输入图像,模型将生成新图像。
- CreateImage:根据提示词创建图像。
- Prompt:所需图像的文本描述。最大长度为 1000 个字符。
- CreateImageEdit:根据原始图像和提示词创建编辑或扩展的图像。
- Image:要编辑的图像。必须是有效的 PNG 文件,小于 4MB,且为正方形。如果未提供 mask,图像必须具有透明度,该透明度将用作蒙版。
- Prompt:对所需图像的文本描述,最大长度为 1000 个字符。
- CreateImageVariations:基于给定图像创建变体。
- Image:用于生成变体的基础图像。必须是有效的 PNG 文件,大小小于 4MB,且为正方形。
嵌入向量
获取给定输入的向量表示,该表示可供机器学习模型和算法轻松使用。
- CreateEmbeddings:创建表示输入文本的嵌入向量。
- Model:要使用的模型 ID。
- Input:用于获取嵌入的输入文本。
音频
将音频转换为文本。
- CreateTranscriptionFromFile:从文件名将音频转录为输入语言
- Model:要使用的模型 ID。目前仅支持 whisper-1。
- Filename:要转录的音频文件,支持以下格式之一:mp3、mp4、mpeg、mpga、m4a、wav 或 webm。
- CreateTranscription:录制 X 秒的音频并进行转录。
- Model:要使用的模型 ID。目前只有 whisper-1 可用。
- Time:时间(毫秒),默认为 10 秒。
- CreateTranslationFromFile:将音频翻译为英语。
- Model:要使用的模型 ID。目前只有 whisper-1 可用。
- Filename:要翻译的音频文件,格式为以下之一:mp3、mp4、mpeg、mpga、m4a、wav 或 webm。
- CreateTranslation:录制 X 秒音频并进行翻译。
- Model:要使用的模型 ID。目前仅提供 whisper-1。
- Time:时长(毫秒),默认 10 秒。
文件
文件用于上传可与微调等功能配合使用的文档。
- ListFiles:返回属于用户组织的文件列表。
- UploadFile:上传包含文档的文件,供各个端点/功能使用。目前,一个组织上传的所有文件总大小最多为 1 GB。
- Filename:要上传的 JSON Lines 文件的名称。如果 purpose 设置为 "fine-tune",则每行是一条带有 "prompt" 和 "completion" 字段的 JSON 记录,代表您的训练示例。
- Purpose:上传文档的预期用途。对于微调,请使用 "fine-tune"。
- DeleteFile: 删除文件。
- RetrieveFile:返回特定文件的信息。
- RetrieveFileContent:返回指定文件的内容
Fine-Tunes
管理微调任务,根据您的特定训练数据定制模型。
- CreateFineTune:创建一个任务,使用给定的数据集对指定模型进行微调。响应包含已入队任务的详细信息,包括任务状态以及完成后微调模型的名称。
- TrainingFile:包含训练数据的已上传文件的 ID。
- ListFineTunes:列出您的组织的微调任务。
- RetrieveFineTune:获取微调作业的信息。
- CancelFineTune:立即取消微调作业。
- ListFineTuneEvents:获取微调任务的细粒度状态更新。
- DeleteFineTuneModel: 删除一个微调模型。您必须在组织中拥有 Owner 角色。
内容审核
给定输入文本,输出模型是否将其归类为违反 OpenAI 内容政策。
- CreateModeration:分类文本是否违反 OpenAI 的内容政策
实时
OpenAI Realtime API 实现低延迟、多模态交互,包括语音到语音对话体验和实时转录。
- 转录:您可以将 Realtime API 用于纯转录场景,输入可来自麦克风或文件。例如,您可以用它实时生成字幕或转录文本。在纯转录模式下,模型不会生成响应。
助手
构建可调用模型并使用工具执行任务的 AI 助手。
- CreateAssistant:使用模型和指令创建 Assistant。
- ListAssistants:返回助手列表。
- RetrieveAssistant: 按 ID 检索助手。
- ModifyAssistant:修改现有助手。
- DeleteAssistant:删除一个助手。
线程
线程(Thread)代表一次对话会话。消息被添加到线程中,然后由运行(Run)进行处理。
- CreateThread:创建一个新线程。
- RetrieveThread:通过 ID 检索线程。
- ModifyThread:修改一个线程。
- DeleteThread:删除一个线程。
线程消息
消息被添加到线程中,并包含对话的内容。
- CreateMessage: 在线程中创建一条消息。
- ListMessages:返回给定线程的消息列表。
- RetrieveMessage:通过线程和消息 ID 检索消息。
- ModifyMessage:修改消息。
- DeleteMessage:从线程中删除一条消息。
运行
Run 表示在线程上与 Assistant 一起执行的过程。Assistant 使用其配置和线程消息通过调用模型和工具来执行任务。
- CreateRun:为线程创建一个使用指定助手的运行。
- ListRuns:返回属于某个线程的 Run 列表。
- RetrieveRun:通过线程和运行 ID 检索运行。
- ModifyRun: 修改运行。
- SubmitToolOutputsToRun:为需要操作的 Run 提交工具输出。
- CancelRun:取消正在进行的 Run。
运行步骤
运行步骤代表运行执行过程中采取的各个步骤。
- ListRunSteps:返回属于某次运行的运行步骤列表。
- RetrieveRunSteps:通过 thread、run 和 step ID 检索运行步骤。
向量存储
向量存储用于通过嵌入存储和搜索文件,以实现检索增强生成(RAG)。
- CreateVectorStore:创建一个向量存储。
- ListVectorStores:返回向量存储列表。
- RetrieveVectorStore:通过 ID 检索向量存储。
- ModifyVectorStore:修改向量存储。
- DeleteVectorStore:删除一个向量存储。
向量存储文件
管理向量存储中的文件。
- CreateVectorStoreFile:将文件附加到向量存储。
- ListVectorStoreFiles:返回向量存储中的文件列表。
- RetrieveVectorStoreFile:检索向量存储文件。
- DeleteVectorStoreFile: 从向量存储中删除文件。
向量存储文件批次
向向量存储批量添加文件的操作。
- CreateVectorStoreFileBatch:创建一个批处理,将多个文件添加到向量存储。
- RetrieveVectorStoreFileBatch: 按 ID 检索文件批次。
- CancelVectorStoreFileBatch:取消正在进行的文件批次。
- ListVectorStoreFilesBatch:列出批次中的文件。
语音合成
使用文字转语音模型从文本生成语音音频。
- CreateSpeech:根据输入文本生成音频。以字符串形式返回音频数据或写入响应流。
- Model:要使用的 TTS 模型(例如 tts-1、tts-1-hd)。
- Input:要生成音频的文本。
- Voice:要使用的声音(alloy、echo、fable、onyx、nova、shimmer)。
微调任务
管理微调作业以创建自定义模型。这是新版微调 API,取代了旧版 Fine-Tunes 端点。
- CreateFineTuningJob:从训练文件创建微调任务。
- ListFineTuningJobs:列出您组织的微调任务。
- RetrieveFineTuningJob:检索有关微调作业的信息。
- CancelFineTuningJob:取消一个微调作业。
- ListFineTuningJobEvents: 列出微调作业的状态更新。
- ListFineTuningJobCheckpoints:列出微调作业的检查点。
响应
创建和管理模型响应。Responses API 支持多轮对话、工具使用和结构化输出。
- CreateResponse:创建模型响应。
- RetrieveResponse:通过 ID 检索响应。
- DeleteResponse:删除响应。
- CancelResponse:取消正在进行的响应。
- ListInputItems:列出响应的输入项。
批处理
创建和管理批量 API 请求,以较低成本进行异步处理。
- CreateBatch:创建批处理作业。
- RetrieveBatch:通过 ID 检索批次。
- ListBatches:列出所有批处理任务。
- CancelBatch: 取消正在进行中的批处理。
上传
分段上传大文件,适用于超过标准上传大小限制的文件。
- CreateUpload:创建上传会话。
- AddUploadPart:向上传任务添加一个分片。
- CompleteUpload:完成多部分上传并创建文件。
- CancelUpload:取消正在进行的上传。