菜单

提供者系统

相关源文件

Provider System是核心抽象层,它使g4f能够通过统一的API与超过50个不同的AI服务提供商进行交互。该系统负责提供商的发现、模型映射、身份验证、请求路由和跨不同提供商实现的响应流式传输。

有关特定提供商实现的信息,请参阅Providers。有关模型选择和注册的详细信息,请参阅Model System

系统架构

Provider System实现了多层架构,包含基类、模板和具体实现,以处理不同的提供商类型和功能。

来源: g4f/Provider/__init__.py1-92 g4f/Provider/base_provider.py1-4 g4f/providers/types.py g4f/providers/base_provider.py

Provider Hierarchy

Provider System使用多重继承来组合不同提供商类型的能力。

Base Provider Classes

基础由几个定义提供商能力的关键基类组成

目的关键方法
BaseProviderCore provider interfaceworking, supports_stream, url
AsyncProviderAsync operation supportcreate_async()
AsyncGeneratorProviderStreaming response supportcreate_async_generator()
ProviderModelMixinModel management utilitiesget_model(), model aliases

来源: g4f/providers/types.py g4f/providers/base_provider.py g4f/Provider/Blackbox.py31-43 g4f/Provider/DDG.py24-35

Provider Templates

Templates提供可重用的通用提供商模式实现。

OpenaiTemplate

OpenaiTemplate为OpenAI兼容API提供了标准化的实现

来源: g4f/Provider/template.py g4f/Provider/DeepInfraChat.py1-85

Retry and Fallback Providers

该系统通过RetryProviderIterListProvider包含了复杂的备用机制

来源: g4f/providers/retry_provider.py g4f/models.py83-96

Provider Registration and Discovery

该系统通过模块内省自动发现和注册提供商

来源: g4f/Provider/__init__.py72-92

Model-Provider Mapping

该系统维护模型与其可用提供商之间的复杂映射

来源: g4f/models.py48-75 g4f/models.py1264-1275 g4f/models.py981-1244

Provider Implementation Patterns

Standard Provider Pattern

大多数提供商遵循一致的实现模式,由Blackbox提供商演示

来源: g4f/Provider/Blackbox.py31-544

身份验证模式

该系统支持多种身份验证模式

模式实现示例
No Auth直接 API 调用DDG, Blackbox free tier
API密钥Header-based authOpenaiAPI, HuggingFaceAPI
Browser AuthCookie/session basedOpenaiChat, CopilotAccount
HAR FilesSession extractionHarProvider subclasses

来源: g4f/Provider/DDG.py29-30 g4f/Provider/needs_auth/__init__.py g4f/Provider/har.py

对话管理

Providers通过conversation对象支持有状态对话

来源: g4f/Provider/Blackbox.py23-30 g4f/Provider/DDG.py17-23 g4f/Provider/hf_space/DeepseekAI_JanusPro7b.py96-97 g4f/providers/response.py

错误处理和弹性

Provider System实现了全面的错误处理

来源: g4f/errors.py1-59 g4f/Provider/DDG.py162-202 g4f/Provider/Blackbox.py533-536