OpenAI版本==1.6.1
在上一篇博客中,我实现并运行了一个OpenAI的demo,我们可以发现,想要使用OpenAI完成一个需求仅需要两个步骤,第一步是 传入参数 配置并声明对象,第二步是 调用接口 实现需求。

清楚这两点后,我们接着来看看源码。
在openai包中,OpenAI类是核心类,它作为客户端库的入口点,提供了与OpenAI API进行交互的方法和属性。这个类封装了API的各种功能,使得开发者可以通过编写代码来使用OpenAI提供的各种服务,如文本生成、图像生成、模型微调等。
下面我将针对OpenAI的源码文件_client.py进行一个概览说明。
这个方法是OpenAI Python库中用于配置和初始化客户端实例的一部分,允许用户设置各种参数以定制他们的API请求。
def __init__(
self,
*,
api_key: str | None = None,
organization: str | None = None,
base_url: str | httpx.URL | None = None,
timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN,
max_retries: int = DEFAULT_MAX_RETRIES,
default_headers: Mapping[str, str] | None = None,
default_query: Mapping[str, object] | None = None,
http_client: httpx.Client | None = None,
_strict_response_validation: bool = False,
)

| 参数名 | 数据类型 | 默认值 | 描述 |
|---|---|---|---|
api_key | str | None | 用于OpenAI API的认证密钥。如果设置为None,将尝试使用环境变量中的密钥。 |
organization | str | None | 指定使用OpenAI API的组织名称。如果用户属于特定的组织,可以在这里指定。 |
base_url | str | None | 指定OpenAI API服务的基础URL。如果设置为None,默认使用OpenAI的官方API URL。可以用来设置代理。 |
timeout | Union[float, Timeout, None, NotGiven] | NOT_GIVEN | 设置请求的超时时间。可以是一个浮点数表示秒数,或者是一个Timeout对象。 |
max_retries | int | DEFAULT_MAX_RETRIES | 设置最大重试次数。默认值由库的常量DEFAULT_MAX_RETRIES决定。 |
default_headers | Mapping[str, str] | None | 设置默认的请求头部。映射类型,键是头部名称,值是头部值。 |
default_query | Mapping[str, object] | None | 设置默认的查询参数。映射类型,键是参数名称,值是参数值。 |
http_client | httpx.Client | None | 允许用户配置一个自定义的httpx.Client实例。这可以用于更高级的HTTP请求定制,如设置代理、SSL验证等。 |
_strict_response_validation | bool | False | 启用或禁用对API返回数据的模式验证。当启用时,如果API响应的数据不符合预期的模式,将引发APIResponseValidationError错误。这个参数可能会在未来被移除或更改。如果依赖此特性,建议用户在GitHub上开启一个issue,以帮助开发者决定是否将其作为未来公共接口的一部分。 |
OpenAI类继承自SyncAPIClient。这个类提供了一些高级接口,用于与OpenAI的API进行交互。
class OpenAI(SyncAPIClient):
completions: resources.Completions
chat: resources.Chat
edits: resources.Edits
embeddings: resources.Embeddings
files: resources.Files
images: resources.Images
audio: resources.Audio
moderations: resources.Moderations
models: resources.Models
fine_tuning: resources.FineTuning
fine_tunes: resources.FineTunes
beta: resources.Beta
with_raw_response: OpenAIWithRawResponse
# client options
api_key: str
organization: str | None

api_key:
strorganization:
str | NoneNone。
completions:
resources.Completionschat:
resources.Chatedits:
resources.Editsembeddings:
resources.Embeddingsfiles:
resources.Filesimages:
resources.Imagesaudio:
resources.Audiomoderations:
resources.Moderationsmodels:
resources.Modelsfine_tuning:
resources.FineTuningwith_raw_response:
OpenAIWithRawResponse在这一篇博客中我们对OpenAI的参数和接口有了一些基本了解,后续的博客将会陆续对这些接口进行代码实践。