菜单

API资源

相关源文件

本文档概述了 OpenAI Python 库中的 API 资源组织。它涵盖了 API 端点如何组织成资源类、如何通过客户端实例访问它们以及不同资源类型之间的分层关系。

有关提供对这些资源访问的核心客户端类的信息,请参阅 核心客户端类。有关聊天补全和响应 API 等特定资源实现的详细信息,请分别参阅 聊天补全 API响应 API

资源组织概述

OpenAI Python 库将 API 端点组织到将相关功能分组的资源类中。每个资源对应一个特定的 API 域,并提供创建、检索、更新和管理该资源类型的方法。

来源: src/openai/_client.py159-253 src/openai/resources/__init__.py1-216 api.md1-1000

资源访问模式

资源作为客户端实例的属性进行访问。该库支持直接客户端实例化和模块级访问模式。

直接客户端访问

模块级访问

模块级访问使用 _module_client.py 中定义的代理类的延迟加载。每种资源类型都有一个相应的代理类,该类将延迟加载推迟到首次访问时。

来源: src/openai/_client.py159-253 src/openai/_module_client.py26-142 src/openai/__init__.py355-372

核心资源实现

所有资源都遵循一致的实现模式,具有同步和异步变体,以及原始响应和流式响应包装器。

资源类型同步类异步类原始响应流式响应
对话对话AsyncChatChatWithRawResponseChatWithStreamingResponse
文件文件AsyncFilesFilesWithRawResponseFilesWithStreamingResponse
音频音频AsyncAudioAudioWithRawResponseAudioWithStreamingResponse
图像图像AsyncImagesImagesWithRawResponseImagesWithStreamingResponse

每个资源都实现为客户端上的缓存属性,确保每个客户端实例只有一个实例

来源: src/openai/_client.py159-253 src/openai/_client.py460-555 src/openai/_client.py678-778

主要 API 资源

对话式 AI 资源

chat”和“responses”资源提供了对话式 AI 交互的主要接口

  • chat.completions:基于消息的对话的传统聊天补全接口
  • responses:支持多模态输入和结构化输出的新统一 API

内容生成资源

  • images:图像生成、编辑和变体创建
  • audio:语音合成、转录和翻译
  • embeddings:为文本输入生成向量表示

文件和模型管理

  • files:用于各种 API 端点的文件上传、检索和管理
  • models:用于微调模型进行模型列表、检索和删除
  • moderations:内容安全和审核分类

来源: api.md34-211 src/openai/_client.py159-210

Beta 资源命名空间

Beta 资源组织在 beta 命名空间下,以表明其实验性或预览状态

助手 API(beta.assistantsbeta.threads)已被标记为已弃用,用户应迁移到新的响应 API 以获得类似功能。

来源: api.md398-634 src/openai/_client.py220-223

专用资源

微调和训练

  • fine_tuning.jobs:为自定义模型训练创建和管理微调作业
  • fine_tuning.checkpoints:访问微调检查点和权限
  • evals:模型评估和测试框架

批量和上传处理

  • batches:用于大规模 API 请求的异步批量处理
  • uploads:用于大型文件的分块上传管理
  • uploads.parts:单个上传部分的管理

向量存储和检索

  • vector_stores:用于 RAG 应用程序的向量数据库管理
  • vector_stores.files:文件与向量存储的关联
  • vector_stores.file_batches:对向量存储进行批量文件操作

代码执行

  • containers:代码执行环境管理

来源: api.md226-675 src/openai/_client.py207-253

资源方法模式

大多数资源遵循一致的方法命名模式

操作方法名称HTTP 方法目的
创建create()POST创建新资源
Retrieveretrieve()GET通过 ID 获取特定资源
更新update()POST/PATCH修改现有资源
列表list()GET列出带分页的资源
删除delete()DELETE删除资源

许多资源还提供便捷方法,例如

  • create_and_poll():创建资源并等待完成
  • upload_and_poll():上传文件并等待处理
  • wait_for_processing():轮询直到资源达到最终状态

来源: api.md32-675 src/openai/resources/files.py117-124

配置统计

该库目前支持 **111 个已配置的端点**,涵盖所有资源类型,这些数据已在项目统计中跟踪。这种全面的覆盖确保了对 OpenAI API 全面的访问。

来源: .stats.yml1-5