本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008
一图看懂 openai 模块:ChatGPT的API python库, 资料整理+笔记(大全)
- 摘要
- 模块图
- 类关系图
- 结束
摘要
全文介绍系统内置 openai ——ChatGPT的API python库:模块、函数、类及类的方法和属性。
它通过代码抓取并经AI智能翻译和人工校对。
是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】
- 由于模块较大,且很多相关库也是既多且复杂,所以分为多集。本文很简单明了地给出图,便于读者有个概貌了解。
- 接下来,笔者还要介绍 OpenAI API 的安装,一个简单的例子,以及本文的N多续集:即对主包的展开、一直到主要的类的介绍、以及以前没有介绍过的相关的模块,例如:aiohttp 模块。
模块图
首先给出模块的一级结构,即简明结构。
openai◆osopenai.erroropenai.utilopenai.versionopenai.openai_responseopenai.api_requestoropenai.openai_objectopenai.datalibopenai.api_resources
openai◆osopenai.erroropenai.util◆logging◆re◆sysopenai.versionopenai.openai_responseopenai.api_requestor◆asyncio◆json◆platform◆threading◆warnings◆aiohttp◆requestsopenai.openai_objectopenai.datalib◆numpy◆pandasopenai.api_resourcesopenai.api_resources.abstractopenai.api_resources.abstract.api_resourceopenai.api_resources.abstract.createable_api_resourceopenai.api_resources.abstract.deletable_api_resourceopenai.api_resources.abstract.listable_api_resourceopenai.api_resources.abstract.updateable_api_resourceopenai.api_resources.abstract.engine_api_resourceopenai.api_resources.audioopenai.api_resources.chat_completion◆timeopenai.api_resources.completionopenai.api_resources.customeropenai.api_resources.deploymentopenai.api_resources.editopenai.api_resources.embedding◆base64openai.api_resources.engineopenai.api_resources.error_objectopenai.api_resources.fileopenai.api_resources.fine_tuneopenai.api_resources.imageopenai.api_resources.modelopenai.api_resources.moderation
类关系图
同样地,我这里给出类关系简图,即类所属模块为 OpenAI API包及从属模块才展示,其它相关模块(requirements清单)并不在这里展示,而是另分单独文章逐一介绍。
分析:从上图及以下数据可以看出:OpenAI-API包的类对象结构并不是太复杂,主要分为异常处理、词典类、以及枚举。但是同样不可忽视的是:从模块图中可以看出,
openai.api_resources
将是重点。
◆object◆BaseException◆Exceptionopenai.datalib.MissingDependencyErroropenai.error.OpenAIErroropenai.error.APIConnectionErroropenai.error.APIErroropenai.error.AuthenticationErroropenai.error.InvalidAPITypeopenai.error.InvalidRequestErroropenai.error.PermissionErroropenai.error.RateLimitErroropenai.error.ServiceUnavailableErroropenai.error.SignatureVerificationErroropenai.error.Timeoutopenai.error.TryAgain◆dictopenai.openai_object.OpenAIObjectopenai.api_resources.abstract.api_resource.APIResourceopenai.api_resources.abstract.createable_api_resource.CreateableAPIResourceopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.abstract.createable_api_resource.CreateableAPIResourceopenai.api_resources.engine.Engineopenai.api_resources.file.Fileopenai.api_resources.fine_tune.FineTuneopenai.api_resources.model.Modelopenai.api_resources.deployment.Deploymentopenai.api_resources.abstract.deletable_api_resource.DeletableAPIResourceopenai.api_resources.abstract.createable_api_resource.CreateableAPIResourceopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.abstract.engine_api_resource.EngineAPIResourceopenai.api_resources.chat_completion.ChatCompletionopenai.api_resources.completion.Completionopenai.api_resources.edit.Editopenai.api_resources.embedding.Embeddingopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.abstract.updateable_api_resource.UpdateableAPIResourceopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.audio.Audioopenai.api_resources.image.Imageopenai.api_resources.customer.Customeropenai.api_resources.error_object.ErrorObjectopenai.api_resources.moderation.Moderation◆EnumApiType
复杂结构如下(图形略,过于复杂)
◆object◆BaseException◆Exception◆EOFError◆asyncio.streams.IncompleteReadError◆LookupError◆IndexError◆ValueError◆OSError◆aiohttp.client_exceptions.ClientError◆aiohttp.client_exceptions.ClientConnectionError◆aiohttp.client_exceptions.ClientOSError◆aiohttp.client_exceptions.ClientConnectorError◆aiohttp.client_exceptions.ClientProxyConnectionError◆aiohttp.client_exceptions.ClientSSLError◆aiohttp.client_exceptions.ClientConnectorCertificateError◆aiohttp.client_exceptions.ClientConnectorSSLError◆aiohttp.client_exceptions.ServerConnectionError◆aiohttp.client_exceptions.ServerDisconnectedError◆aiohttp.client_exceptions.ServerFingerprintMismatch◆aiohttp.client_exceptions.ServerTimeoutError◆aiohttp.client_exceptions.ClientPayloadError◆aiohttp.client_exceptions.ClientResponseError◆aiohttp.client_exceptions.ClientHttpProxyError◆aiohttp.client_exceptions.ContentTypeError◆aiohttp.client_exceptions.TooManyRedirects◆aiohttp.client_exceptions.WSServerHandshakeError◆aiohttp.client_exceptions.InvalidURL◆requests.exceptions.RequestException◆requests.exceptions.ConnectionError◆requests.exceptions.ConnectTimeout◆requests.exceptions.HTTPError◆requests.exceptions.InvalidJSONError◆requests.exceptions.JSONDecodeError◆requests.exceptions.Timeout◆requests.exceptions.ConnectionError◆requests.exceptions.ReadTimeout◆requests.exceptions.TooManyRedirects◆requests.exceptions.URLRequired◆ssl.SSLError◆aiohttp.client_exceptions.ClientError◆ssl.SSLCertVerificationError◆aiohttp.client_exceptions.ClientError◆aiohttp.client_exceptions.ClientError◆json.decoder.JSONDecodeError◆OSError◆numpy.AxisError◆OSError◆RuntimeError◆asyncio.events.SendfileNotAvailableError◆numpy.TooHardError◆threading.BrokenBarrierError◆ValueError◆Warning◆DeprecationWarning◆numpy.ModuleDeprecationWarning◆requests.exceptions.RequestsWarning◆requests.exceptions.FileModeWarning◆requests.exceptions.RequestsDependencyWarning◆RuntimeWarning◆aiohttp.multipart.BadContentDispositionHeader◆aiohttp.multipart.BadContentDispositionParam◆numpy.ComplexWarning◆UserWarning◆numpy.RankWarning◆numpy.VisibleDeprecationWarning◆requests.exceptions.RequestsWarning◆urllib3.exceptions.HTTPWarning◆urllib3.exceptions.DependencyWarning◆aiohttp.client_exceptions.ClientError◆aiohttp.http_websocket.WebSocketError◆aiohttp.streams.EofStream◆asyncio.queues.QueueEmpty◆asyncio.queues.QueueFull◆asyncio.streams.LimitOverrunError◆concurrent.futures._base.Error◆asyncio.base_futures.InvalidStateError◆concurrent.futures._base.CancelledError◆concurrent.futures._base.TimeoutError◆aiohttp.client_exceptions.ClientErroropenai.datalib.MissingDependencyErroropenai.error.OpenAIErroropenai.error.APIConnectionErroropenai.error.APIErroropenai.error.AuthenticationErroropenai.error.InvalidAPITypeopenai.error.InvalidRequestErroropenai.error.PermissionErroropenai.error.RateLimitErroropenai.error.ServiceUnavailableErroropenai.error.SignatureVerificationErroropenai.error.Timeoutopenai.error.TryAgain◆re.error◆warnings._OptionError◆ContextVar◆_asyncio.Future◆_asyncio.Task◆_frozen_importlib.BuiltinImporter◆_thread.RLock◆_thread._local◆_weakrefset.WeakSet◆abc.ABC◆aiohttp.abc.AbstractResolver◆aiohttp.resolver.AsyncResolver◆aiohttp.resolver.ThreadedResolver◆aiohttp.payload.Payload◆aiohttp.multipart.MultipartWriter◆aiohttp.payload.AsyncIterablePayload◆aiohttp.payload.BytesPayload◆aiohttp.payload.JsonPayload◆aiohttp.payload.StringPayload◆aiohttp.payload.StringIOPayload◆aiohttp.payload.IOBasePayload◆aiohttp.payload.BufferedReaderPayload◆aiohttp.payload.BytesIOPayload◆aiohttp.payload.TextIOPayload◆os.PathLike◆pandas.core.strings.base.BaseStringArrayMethods◆pandas.core.strings.object_array.ObjectStringArrayMixin◆pandas.core.accessor.DirNamesMixin◆pandas.core.base.PandasObject◆pandas.core.arraylike.OpsMixin◆pandas.core.base.IndexOpsMixin◆pandas.core.indexes.base.Index◆pandas.core.indexes.extension.ExtensionIndex◆pandas.core.indexes.extension.NDArrayBackedExtensionIndex◆pandas.core.indexes.category.CategoricalIndex◆pandas.core.indexes.datetimelike.DatetimeIndexOpsMixin◆pandas.core.indexes.datetimelike.DatetimeTimedeltaMixin◆pandas.core.indexes.datetimes.DatetimeIndex◆pandas.core.indexes.timedeltas.TimedeltaIndex◆pandas.core.indexes.period.PeriodIndex◆pandas.core.indexes.interval.IntervalIndex◆pandas.core.indexes.multi.MultiIndex◆pandas.core.indexes.numeric.NumericIndex◆pandas.core.indexes.numeric.Float64Index◆pandas.core.indexes.numeric.IntegerIndex◆pandas.core.indexes.numeric.Int64Index◆pandas.core.indexes.numeric.UInt64Index◆pandas.core.indexes.range.RangeIndex◆pandas.core.series.Series◆pandas.core.indexing.IndexingMixin◆pandas.core.accessor.DirNamesMixin◆pandas.core.arrays.base.ExtensionArray◆pandas._libs.arrays.NDArrayBacked◆pandas.core.arrays._mixins.NDArrayBackedExtensionArray◆pandas.core.arrays.categorical.Categorical◆pandas.core.generic.NDFrame◆pandas.core.arraylike.OpsMixin◆pandas.core.frame.DataFrame◆aiohttp._frozenlist.FrozenList◆aiohttp.signals.Signal◆aiohttp.client.ClientSession◆aiohttp.client.ClientTimeout◆aiohttp.client_reqrep.ClientRequest◆aiohttp.client_reqrep.Fingerprint◆aiohttp.client_reqrep.RequestInfo◆aiohttp.client_ws.ClientWebSocketResponse◆aiohttp.connector.BaseConnector◆aiohttp.connector.NamedPipeConnector◆aiohttp.connector.TCPConnector◆aiohttp.connector.UnixConnector◆aiohttp.formdata.FormData◆aiohttp.helpers.HeadersMixin◆aiohttp.client_reqrep.ClientResponse◆aiohttp.multipart.BodyPartReader◆aiohttp.multipart.MultipartReader◆aiohttp.payload.payload_type◆aiohttp.payload_streamer.streamer◆aiohttp.streams.AsyncStreamReaderMixin◆aiohttp.streams.StreamReader◆aiohttp.tracing.TraceConfig◆aiohttp.tracing.TraceConnectionCreateEndParams◆aiohttp.tracing.TraceConnectionCreateStartParams◆aiohttp.tracing.TraceConnectionQueuedEndParams◆aiohttp.tracing.TraceConnectionQueuedStartParams◆aiohttp.tracing.TraceConnectionReuseconnParams◆aiohttp.tracing.TraceDnsCacheHitParams◆aiohttp.tracing.TraceDnsCacheMissParams◆aiohttp.tracing.TraceDnsResolveHostEndParams◆aiohttp.tracing.TraceDnsResolveHostStartParams◆aiohttp.tracing.TraceRequestChunkSentParams◆aiohttp.tracing.TraceRequestEndParams◆aiohttp.tracing.TraceRequestExceptionParams◆aiohttp.tracing.TraceRequestRedirectParams◆aiohttp.tracing.TraceRequestStartParams◆aiohttp.tracing.TraceResponseChunkReceivedParams◆asyncio.events.AbstractEventLoop◆asyncio.base_events.BaseEventLoop◆asyncio.proactor_events.BaseProactorEventLoop◆asyncio.windows_events.ProactorEventLoop◆asyncio.selector_events.BaseSelectorEventLoop◆asyncio.windows_events._WindowsSelectorEventLoop◆asyncio.events.AbstractEventLoopPolicy◆asyncio.events.BaseDefaultEventLoopPolicy◆asyncio.windows_events.WindowsProactorEventLoopPolicy◆asyncio.windows_events.WindowsSelectorEventLoopPolicy◆asyncio.events.AbstractServer◆asyncio.events.Handle◆asyncio.events.TimerHandle◆asyncio.locks.Event◆asyncio.locks._ContextManagerMixin◆asyncio.locks.Condition◆asyncio.locks.Lock◆asyncio.locks.Semaphore◆asyncio.locks.BoundedSemaphore◆asyncio.protocols.BaseProtocol◆asyncio.protocols.BufferedProtocol◆asyncio.protocols.DatagramProtocol◆asyncio.protocols.Protocol◆asyncio.streams.FlowControlMixin◆asyncio.streams.StreamReaderProtocol◆asyncio.protocols.SubprocessProtocol◆asyncio.queues.Queue◆asyncio.queues.LifoQueue◆asyncio.queues.PriorityQueue◆asyncio.streams.StreamReader◆asyncio.streams.StreamWriter◆asyncio.transports.BaseTransport◆asyncio.transports.DatagramTransport◆asyncio.transports.ReadTransport◆asyncio.transports.Transport◆asyncio.transports.SubprocessTransport◆asyncio.transports.WriteTransport◆asyncio.transports.ReadTransport◆asyncio.windows_events.IocpProactor◆collections.abc.Container◆collections.abc.Iterable◆collections.abc.Sized◆aiohttp.abc.AbstractCookieJar◆aiohttp.cookiejar.CookieJar◆aiohttp.cookiejar.DummyCookieJar◆collections.abc.Collection◆collections.abc.Mapping◆aiohttp.helpers.ChainMapProxy◆collections.abc.MutableMapping◆os._Environ◆collections.deque◆complex◆numpy.generic◆numpy.bool_◆numpy.datetime64◆numpy.flexible◆numpy.character◆bytes◆numpy.bytes_◆str◆numpy.str_◆numpy.void◆numpy.record◆numpy.number◆numpy.inexact◆numpy.complexfloating◆numpy.clongdouble◆numpy.complex128◆numpy.complex64◆numpy.floating◆numpy.float16◆numpy.float32◆numpy.float64◆numpy.longdouble◆numpy.integer◆numpy.signedinteger◆numpy.int16◆numpy.int32◆numpy.int64◆numpy.int8◆numpy.intc◆numpy.timedelta64◆numpy.unsignedinteger◆numpy.uint16◆numpy.uint32◆numpy.uint64◆numpy.uint8◆numpy.uintc◆numpy.object_◆contextlib.ContextDecorator◆numpy.errstate◆pandas._config.config.option_context◆datetime.date◆datetime.datetime◆pandas._libs.tslibs.base.ABCTimestamp◆pandas._libs.tslibs.timestamps._Timestamp◆pandas._libs.tslibs.timestamps.Timestamp◆datetime.timedelta◆pandas._libs.tslibs.timedeltas._Timedelta◆pandas._libs.tslibs.timedeltas.Timedelta◆dictopenai.openai_object.OpenAIObjectopenai.api_resources.abstract.api_resource.APIResourceopenai.api_resources.abstract.createable_api_resource.CreateableAPIResourceopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.abstract.createable_api_resource.CreateableAPIResourceopenai.api_resources.engine.Engineopenai.api_resources.file.Fileopenai.api_resources.fine_tune.FineTuneopenai.api_resources.model.Modelopenai.api_resources.deployment.Deploymentopenai.api_resources.abstract.deletable_api_resource.DeletableAPIResourceopenai.api_resources.abstract.createable_api_resource.CreateableAPIResourceopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.abstract.engine_api_resource.EngineAPIResourceopenai.api_resources.chat_completion.ChatCompletionopenai.api_resources.completion.Completionopenai.api_resources.edit.Editopenai.api_resources.embedding.Embeddingopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.abstract.updateable_api_resource.UpdateableAPIResourceopenai.api_resources.abstract.listable_api_resource.ListableAPIResourceopenai.api_resources.audio.Audioopenai.api_resources.image.Imageopenai.api_resources.customer.Customeropenai.api_resources.error_object.ErrorObjectopenai.api_resources.moderation.Moderation◆float◆numpy.generic◆itertools.count◆itertools.islice◆json.decoder.JSONDecoder◆json.encoder.JSONEncoder◆logging.BufferingFormatter◆logging.Filter◆logging.Filterer◆logging.Handler◆logging.NullHandler◆logging.StreamHandler◆logging.FileHandler◆logging._StderrHandler◆logging.Logger◆logging.RootLogger◆logging.Formatter◆logging.LogRecord◆logging.LoggerAdapter◆logging.Manager◆logging.PercentStyle◆logging.StrFormatStyle◆logging.StringTemplateStyle◆logging.PlaceHolder◆nt.DirEntry◆numpy.DataSource◆numpy.MachAr◆numpy.broadcast◆numpy.busdaycalendar◆numpy.dtype◆numpy.finfo◆numpy.flatiter◆numpy.format_parser◆numpy.generic◆numpy.iinfo◆numpy.ndarray◆numpy.chararray◆numpy.matrix◆numpy.memmap◆numpy.recarray◆numpy.ndenumerate◆numpy.ndindex◆numpy.nditer◆numpy.poly1d◆numpy.ufunc◆numpy.vectorizeopenai.api_requestor.APIRequestoropenai.openai_response.OpenAIResponse◆os._wrap_close◆pandas._libs.interval.IntervalMixin◆pandas._libs.interval.Interval◆pandas._libs.tslibs.offsets.BaseOffset◆pandas._libs.tslibs.offsets.RelativeDeltaOffset◆pandas._libs.tslibs.offsets.DateOffset◆pandas._libs.tslibs.period.PeriodMixin◆pandas._libs.tslibs.period._Period◆pandas._libs.tslibs.period.Period◆pandas.core.accessor.DirNamesMixin◆pandas.core.accessor.PandasDelegate◆pandas.core.accessor.DirNamesMixin◆pandas.core.arraylike.OpsMixin◆pandas.core.dtypes.base.ExtensionDtype◆pandas.core.arrays.masked.BaseMaskedDtype◆pandas.core.arrays.boolean.BooleanDtype◆pandas.core.arrays.numeric.NumericDtype◆pandas.core.arrays.floating.FloatingDtype◆pandas.core.arrays.floating.Float32Dtype◆pandas.core.arrays.floating.Float64Dtype◆pandas.core.arrays.integer._IntegerDtype◆pandas.core.arrays.integer.Int16Dtype◆pandas.core.arrays.integer.Int32Dtype◆pandas.core.arrays.integer.Int64Dtype◆pandas.core.arrays.integer.Int8Dtype◆pandas.core.arrays.integer.UInt16Dtype◆pandas.core.arrays.integer.UInt32Dtype◆pandas.core.arrays.integer.UInt64Dtype◆pandas.core.arrays.integer.UInt8Dtype◆pandas.core.arrays.sparse.dtype.SparseDtype◆pandas.core.arrays.string_.StringDtype◆pandas.core.dtypes.dtypes.PandasExtensionDtype◆pandas._libs.tslibs.dtypes.PeriodDtypeBase◆pandas.core.dtypes.dtypes.PeriodDtype◆pandas.core.dtypes.dtypes.CategoricalDtype◆pandas.core.dtypes.dtypes.DatetimeTZDtype◆pandas.core.dtypes.dtypes.IntervalDtype◆pandas.core.flags.Flags◆pandas.core.groupby.grouper.Grouper◆pandas.core.indexing.IndexingMixin◆pandas.io.excel._base.ExcelFile◆pandas.io.excel._base.ExcelWriter◆pandas.io.pytables.HDFStore◆re.Match◆re.Pattern◆re.Scanner◆requests.models.RequestHooksMixin◆requests.models.Request◆requests.models.RequestEncodingMixin◆requests.models.PreparedRequest◆requests.models.Response◆requests.sessions.SessionRedirectMixin◆requests.sessions.Session◆string.Template◆threading.Barrier◆threading.Condition◆threading.Event◆threading.Semaphore◆threading.BoundedSemaphore◆threading.Thread◆threading.Timer◆threading._DummyThread◆threading._MainThread◆threading._RLock◆tuple◆aiohttp.helpers.BasicAuth◆aiohttp.helpers.BasicAuth◆aiohttp.http_websocket._WSMessageBase◆aiohttp.http_websocket.WSMessage◆aiohttp.http_writer.HttpVersion◆nt.times_result◆nt.uname_result◆os.stat_result◆os.statvfs_result◆os.terminal_size◆pandas.core.groupby.generic.NamedAgg◆platform.uname_result◆time.struct_time◆typing.Generic◆aiohttp.streams.DataQueue◆aiohttp.streams.FlowControlDataQueue◆collections.abc.Container◆collections.abc.Iterable◆warnings.WarningMessage◆warnings.catch_warnings◆Enum◆int◆IntEnum◆WSCloseCode◆WSMsgType◆IntFlag◆RegexFlagApiType◆Flag◆int
结束
- 敬请期待:
- OpenAI API 的安装
- 基于 OpenAI API 开发的一个简单的例子
- OpenAI API包的子模块展开
- OpenAI API包有依赖对象(requirements)清单模块的展开