菜单

架构

相关源文件

本文档全面概述了 g4f (gpt4free) 系统架构,重点介绍其核心组件、它们之间的交互以及请求处理流程。该架构通过多种客户端接口(包括同步/异步 Python 客户端、REST API、Web GUI 和 CLI 工具)实现了对 50 多个 AI 提供商的统一访问。

有关特定提供商实现的信息,请参阅提供商。有关客户端使用模式和示例,请参阅客户端接口。有关 API 端点规范,请参阅API

系统概览

g4f 架构遵循分层设计,其核心是中央编排引擎,该引擎将多个 AI 提供商实现抽象为统一接口。该系统支持流式和非流式响应,处理不同提供商要求下的身份验证,并提供故障转移机制以提高可靠性。

高层架构

来源: g4f/__init__.py25-85 g4f/client/service.py g4f/providers/helper.py

核心引擎组件

核心引擎由三个主要组件组成,它们负责协调所有 AI 交互:中央 ChatCompletion 类、模型注册系统以及处理提供商选择的服务层。

ChatCompletion 编排器

ChatCompletion 类是所有 AI 交互的主要入口点,提供同步和异步接口。

该编排器通过将旧版 image 参数转换为更新的 media 格式来处理媒体附件,并通过 G4F_PROXY 管理基于环境的代理配置。

来源: g4f/__init__.py25-85 g4f/client/service.py g4f/providers/helper.py

模型注册系统

模型注册表维护模型名称与其可用提供商之间的映射,从而能够根据模型功能进行智能的提供商选择。

组件目的位置
__models__核心模型到提供商的映射g4f/models/__init__.py
ModelUtils.convert模型名称解析g4f/models/ModelUtils.py
ProviderModelMixin提供商模型能力g4f/providers/base_provider.py

该系统支持模型别名,以便于用户友好命名,并为文本、图像、视觉和音频模型维护独立的注册表。

来源: etc/unittest/models.py13-21 g4f/providers/any_provider.py114-128

提供商系统架构

提供商系统实现了一个复杂的抽象层,它标准化了不同 AI 服务 API 之间的交互,同时保留了提供商特定的功能。

提供商层级

来源: g4f/providers/base_provider.py g4f/Provider/Cloudflare.py15-25 g4f/Provider/Copilot.py38-52

提供商注册与发现

AnyProvider 类实现了所有已注册提供商的动态提供商选择和模型发现功能。

来源: g4f/providers/any_provider.py105-194 g4f/providers/any_provider.py44-103

客户端接口层

客户端层提供多种接口以访问 AI 服务,每种接口都针对不同的用例和集成模式进行了优化。

客户端架构

来源: g4f/client/__init__.py326-340 g4f/client/__init__.py617-632 g4f/client/__init__.py341-411

FastAPI 服务器接口

FastAPI 服务器提供与 OpenAI 兼容的 REST 端点,并附带额外的 g4f 特定功能。

端点类别路由目的
聊天补全/v1/chat/completions与 OpenAI 兼容的聊天接口
提供商特定/api/{provider}/chat/completions直接提供商访问
模型管理/v1/models, /v1/models/{model}模型发现与信息
媒体生成/v1/images/generate, /v1/media/generate图像/媒体创建
文件处理/v1/audio/transcriptions, /v1/files/{bucket_id}文件上传与处理
提供商信息/v1/providers, /v1/providers/{provider}提供商能力

来源: g4f/api/__init__.py312-397 g4f/api/__init__.py474-506 g4f/api/__init__.py508-543

请求处理流程

请求处理流程演示了请求如何通过系统层,从客户端输入到提供商响应。

请求流程架构

来源: g4f/__init__.py40-55 g4f/client/service.py g4f/providers/retry_provider.py

媒体处理管道

该系统包含全面的图像、音频和文档媒体处理能力。

来源: g4f/tools/media.py g4f/image/__init__.py g4f/image/copy_images.py

身份验证与配置系统

身份验证系统支持多种方法,以适应各种提供商要求,从 API 密钥到浏览器会话提取。

认证架构

AppConfig 类集中管理配置,支持忽略的提供商、API 密钥、代理设置和身份验证偏好。

来源: g4f/api/__init__.py136-151 g4f/Provider/openai/har_file.py g4f/Provider/Copilot.py198-227 g4f/cookies/__init__.py

提供商能力矩阵

该系统维护关于提供商能力的全面元数据,以实现智能路由。

功能接口示例
supports_stream布尔标志实时响应流
supports_system_message布尔标志系统提示支持
supports_message_history布尔标志对话上下文
image_models模型名称列表图像生成能力
vision_models模型名称列表图像理解能力
audio_models字典映射音频处理能力
working布尔标志提供商运行状态

该能力矩阵使得 AnyProvider 能够根据请求要求自动选择合适的提供商,例如将图像生成请求路由到具有 image_models 的提供商,或将音频处理路由到具有 audio_models 的提供商。

来源: g4f/providers/base_provider.py g4f/providers/any_provider.py224-232 g4f/Provider/Cloudflare.py22-25