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 System使用多重继承来组合不同提供商类型的能力。
基础由几个定义提供商能力的关键基类组成
| 类 | 目的 | 关键方法 |
|---|---|---|
BaseProvider | Core provider interface | working, supports_stream, url |
AsyncProvider | Async operation support | create_async() |
AsyncGeneratorProvider | Streaming response support | create_async_generator() |
ProviderModelMixin | Model management utilities | get_model(), model aliases |
来源: g4f/providers/types.py g4f/providers/base_provider.py g4f/Provider/Blackbox.py31-43 g4f/Provider/DDG.py24-35
Templates提供可重用的通用提供商模式实现。
OpenaiTemplate为OpenAI兼容API提供了标准化的实现
来源: g4f/Provider/template.py g4f/Provider/DeepInfraChat.py1-85
该系统通过RetryProvider和IterListProvider包含了复杂的备用机制
来源: g4f/providers/retry_provider.py g4f/models.py83-96
该系统通过模块内省自动发现和注册提供商
来源: g4f/Provider/__init__.py72-92
该系统维护模型与其可用提供商之间的复杂映射
来源: g4f/models.py48-75 g4f/models.py1264-1275 g4f/models.py981-1244
大多数提供商遵循一致的实现模式,由Blackbox提供商演示
来源: g4f/Provider/Blackbox.py31-544
该系统支持多种身份验证模式
| 模式 | 实现 | 示例 |
|---|---|---|
| No Auth | 直接 API 调用 | DDG, Blackbox free tier |
| API密钥 | Header-based auth | OpenaiAPI, HuggingFaceAPI |
| Browser Auth | Cookie/session based | OpenaiChat, CopilotAccount |
| HAR Files | Session extraction | HarProvider 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