文章目录
- 〇、使用OpenAI的两个步骤
- 一、初始化方法__init__()
- 1.源码
- 2.参数解析
- 二、提供的接口
- 1.源码
- 2.接口说明
- 主要接口说明
OpenAI版本==1.6.1
〇、使用OpenAI的两个步骤
在上一篇博客中,我实现并运行了一个OpenAI的demo,我们可以发现,想要使用OpenAI完成一个需求仅需要两个步骤,第一步是 传入参数 配置并声明对象,第二步是 调用接口 实现需求。
清楚这两点后,我们接着来看看源码。
在openai包中,OpenAI类是核心类,它作为客户端库的入口点,提供了与OpenAI API进行交互的方法和属性。这个类封装了API的各种功能,使得开发者可以通过编写代码来使用OpenAI提供的各种服务,如文本生成、图像生成、模型微调等。
下面我将针对OpenAI的源码文件_client.py进行一个概览说明。
一、初始化方法__init__()
这个方法是OpenAI Python库中用于配置和初始化客户端实例的一部分,允许用户设置各种参数以定制他们的API请求。
1.源码
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,)
2.参数解析
参数名 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
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进行交互。
1.源码
class OpenAI(SyncAPIClient):completions: resources.Completionschat: resources.Chatedits: resources.Editsembeddings: resources.Embeddingsfiles: resources.Filesimages: resources.Imagesaudio: resources.Audiomoderations: resources.Moderationsmodels: resources.Modelsfine_tuning: resources.FineTuningfine_tunes: resources.FineTunesbeta: resources.Betawith_raw_response: OpenAIWithRawResponse# client optionsapi_key: strorganization: str | None
2.接口说明
- 首先,最后两行是一个client的配置,并不属于OpenAI类的接口:
-
api_key:
- 属性类型:
str
- 描述: 用于认证的API密钥。这个密钥是必需的,以确保用户有权访问OpenAI的API。
- 属性类型:
-
organization:
- 属性类型:
str | None
- 描述: 组织标识符,如果用户属于某个OpenAI组织,可以在这里指定。如果用户不属于任何组织,可以留空或设置为
None
。
- 属性类型:
主要接口说明
-
completions:
- 属性类型:
resources.Completions
- 描述: 这个属性提供了一个用于生成文本完成的接口。它允许用户发送提示给OpenAI的语言模型,并接收由模型生成的文本响应。
- 属性类型:
-
chat:
- 属性类型:
resources.Chat
- 描述: 这个属性提供了一个用于创建和管理对话式AI的接口。它可以处理多轮对话,并允许用户与AI进行交互,类似于与聊天机器人的对话。
- 属性类型:
-
edits:
- 属性类型:
resources.Edits
- 描述: 这个属性提供了一个用于修改和改进文本的接口。它可以对生成的文本进行微调,以提高其连贯性、事实准确性或风格。
- 属性类型:
-
embeddings:
- 属性类型:
resources.Embeddings
- 描述: 这个属性提供了一个用于生成文本嵌入的接口。文本嵌入可以用于语义搜索、文本相似性比较等任务。
- 属性类型:
-
files:
- 属性类型:
resources.Files
- 描述: 这个属性提供了一个用于上传和下载文件的接口。这些文件可以用于进一步的处理或生成。
- 属性类型:
-
images:
- 属性类型:
resources.Images
- 描述: 这个属性提供了一个用于生成图像的接口。它可以利用OpenAI的DALL-E或其他图像生成模型来创建图像。
- 属性类型:
-
audio:
- 属性类型:
resources.Audio
- 描述: 这个属性提供了一个用于处理音频的接口。它可以用于生成、转录或其他音频相关的操作。
- 属性类型:
-
moderations:
- 属性类型:
resources.Moderations
- 描述: 这个属性提供了一个用于内容审核的接口。它可以检查文本内容是否违反了OpenAI的使用政策。
- 属性类型:
-
models:
- 属性类型:
resources.Models
- 描述: 这个属性提供了一个用于列出和检索有关模型信息的接口。它可以用来获取不同模型的详细信息。
- 属性类型:
-
fine_tuning:
- 属性类型:
resources.FineTuning
- 描述: 这个属性提供了一个用于模型微调的接口。用户可以创建、管理和监控模型微调作业。
- 属性类型:
-
with_raw_response:
- 属性类型:
OpenAIWithRawResponse
- 描述: 这个属性可能允许用户获取原始的API响应数据,而不仅仅是处理后的响应内容。
- 属性类型:
在这一篇博客中我们对OpenAI的参数和接口有了一些基本了解,后续的博客将会陆续对这些接口进行代码实践。