菜单

模型系统

相关源文件

模型系统负责在 g4f 架构中管理模型定义、提供者映射和模型选择逻辑。它提供了一个统一的来自各种提供者的 AI 模型注册表,并根据模型的可用性和优先级处理请求到适当提供者的路由。

有关提供者实现的信息,请参阅提供者系统。有关核心编排逻辑的详细信息,请参阅核心组件

模型架构

模型系统围绕一个分层的类结构构建,该结构定义了不同类型的 AI 模型及其功能。

模型类层级结构

基础的 Model 类被定义为一个数据类,具有三个核心属性:用于模型标识符的 name、指示原始提供者的 base_provider,以及可以是单个提供者或用于回退逻辑的 IterListProviderbest_provider

来源: g4f/models.py48-77

模型注册表结构

注册表系统维护多个数据结构:ModelUtils.convert 作为主要的查找字典,__models__ 提供模型到可用提供者的映射,而 _all_models 包含所有可用模型名称的完整列表。

来源: g4f/models.py981-1275 g4f/models.py1264-1275

模型选择逻辑

模型选择过程涉及多层回退和提供者优先级,以确保可靠地访问 AI 服务。

提供商选择流程

选择逻辑首先尝试在 ModelUtils.convert 中查找请求的模型。如果找到,它会评估 best_provider 字段,该字段可能包含单个提供者或一个带有多个回退选项的 IterListProvider

来源: g4f/models.py83-96 g4f/models.py121-125

默认模型配置

系统定义了两个主要的默认模型:一个通用型的 default 模型和一个用于视觉能力的 default_vision 模型。它们都使用 IterListProvider,并根据可靠性和能力对不同的提供者列表进行排序。

来源: g4f/models.py79-113

模型类别和类型

模型系统按提供者、功能和模型家族组织模型,以便于发现和选择。

基于提供者的模型组织

提供商文本模型视觉模型图像模型音频模型
OpenAIgpt_4, gpt_4o_mini, o1, o3_minigpt_4odall_e_3gpt_4o_audio
Metallama_3_3_70b, llama_4_scoutllama_3_2_11b--
Googlegemini_2_0_flash, gemma_3_12b---
Anthropicclaude_3_5_sonnet, claude_3_7_sonnet---
DeepSeekdeepseek_r1, deepseek_v3janus_pro_7b--
Stability AI--sdxl_turbo, sd_3_5-
Black Forest Labs--flux_pro, flux_dev-

来源: g4f/models.py119-980

模型能力矩阵

每种模型类型都继承自基础的 Model 类,但会指示特定的能力。VisionModel 实例可以处理图像,ImageModel 实例生成图像,而 AudioModel 实例处理音频。

来源: g4f/models.py67-77 g4f/models.py153-169 g4f/models.py928-980

模型别名与提供者集成

系统支持模型别名以方便用户使用,并与提供者特定的模型映射集成。

提供者模型别名

各个提供者维护其自身的模型别名映射,以处理模型命名约定的差异并提供向后兼容性。

来源: g4f/Provider/Blackbox.py234-287 g4f/Provider/DDG.py36-44

演示模型注册表

demo_models 注册表定义了为演示目的而优化的特定模型-提供者组合,通常使用免费或易于访问的提供者。

来源: g4f/models.py1247-1261

模型-提供者运行状态系统

系统维护对跨提供者的模型可用性进行动态跟踪,以确保可靠的服务交付。

运行状态解析

__models__ 字典生成会根据提供者的 working 状态过滤提供者,确保只有可用的提供者被包含在最终的模型到提供者映射中。

来源: g4f/models.py1264-1274