从 sgcWebSockets 2023.3.0 起,OpenAI API 已完全支持。
OpenAI API 几乎可以应用于任何涉及理解或生成自然语言、代码或图像的任务。OpenAI 提供一系列具有不同能力级别的模型,适用于不同任务,同时支持微调自定义模型。这些模型可用于从内容生成到语义搜索和分类的各类场景。
身份验证
OpenAI API 使用 API 密钥进行身份验证。访问您的 API 密钥页面以获取请求中使用的 API 密钥。
请记住,您的 API 密钥是机密!不要与他人共享或在任何客户端代码(浏览器、应用程序)中暴露它。生产请求必须通过您自己的后端服务器路由,API 密钥应从环境变量或密钥管理服务中安全加载。此 API 密钥必须在组件的 OpenAIOptions.ApiKey 属性中配置。对于属于多个组织的用户,如果您的账户属于某个组织,可以在 OpenAIOptions.Organization 属性中设置您的组织。
OpenAI 模型
配置 API 密钥后,以下是可与 OpenAI API 交互的可用功能列表。
模型列出并描述 API 中可用的各种模型。
- GetModels:列出当前可用的模型,并提供每个模型的基本信息,如所有者和可用性。
- GetModel:检索模型实例,提供模型的基本信息,如所有者和权限。
- Model(模型):用于此请求的模型 ID
补全
给定一个提示,模型将返回一个或多个预测补全,也可以返回每个位置的备选 token 概率。
- CreateCompletion:为提供的提示和参数创建补全
- Model(模型):要使用的模型 ID。您可以使用列出模型 API 查看所有可用模型,或查看模型概览以获取说明。
- Prompt(提示):用于生成补全的提示。
给定一段聊天对话,模型将返回聊天补全响应。
- Model(模型):要使用的模型 ID。调用 GetModels 获取聊天 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,且为正方形。如果未提供蒙版,图像必须具有透明度,该透明度将用作蒙版。
- 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: The audio file to translate, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.
- CreateTranslation:录制 X 秒音频并翻译。
- Model(模型):要使用的模型 ID。目前仅 whisper-1 可用。
- Time(时间):毫秒为单位的时间,默认 10 秒。
文件用于上传可与微调等功能一起使用的文档。
- ListFiles:返回属于用户组织的文件列表。
- UploadFile:上传包含文档的文件,可用于各种端点/功能。目前,一个组织上传的所有文件大小总和最多为 1 GB。
- Filename(文件名):要上传的 JSON Lines 文件名称。如果用途设置为 "fine-tune",每行是一条 JSON 记录,包含代表训练示例的 "prompt" 和 "completion" 字段。
- Purpose(用途):上传文档的预期用途。微调请使用 "fine-tune"。
- DeleteFile:删除一个文件。
- FileId:用于此请求的文件 ID
- RetrieveFile:返回特定文件的信息。
- FileId:用于此请求的文件 ID
- RetrieveFileContent:返回指定文件的内容
- FileId:用于此请求的文件 ID。
管理微调作业,使模型适应您的特定训练数据。
- CreateFineTune:创建一个从给定数据集微调指定模型的作业。响应包含排队作业的详细信息,包括作业状态和完成后微调模型的名称。
- TrainingFile:包含训练数据的已上传文件 ID。
- ListFineTunes:列出您组织的微调作业
- RetrieveFineTune:获取微调作业的信息。
- FineTuneId:微调作业的 ID
- CancelFineTune:立即取消微调作业。
- FineTuneId:微调作业的 ID
- ListFineTuneEvents:获取微调作业的细粒度状态更新。
- FineTuneId:微调作业的 ID
- DeleteFineTuneModel:删除微调模型。您必须在组织中拥有所有者角色。
- Model(模型):要删除的模型。
内容审核
给定输入文本,输出模型是否将其分类为违反 OpenAI 内容政策。
- CreateModeration:分类文本是否违反 OpenAI 内容政策
- Input(输入):要分类的输入文本
OpenAI 示例
以下是使用 OpenAI API 在 Delphi 中构建的应用程序示例:
2. OpenAI Transcription Delphi Client
3. Translate OpenAI Delphi Client
4. Image Generator OpenAI Delphi Client
以下是使用 Delphi sgcWebSockets 库为 Windows 构建的 OpenAI API 客户端示例,展示了 API 的主要方法。
