菜单

已认证提供者

相关源文件

本文档介绍 g4f 系统中需要认证才能访问其 AI 服务的提供者。这些提供者通常与需要 API 密钥、账户凭证或会话令牌的商业 API 进行交互。对于不需要认证的免费提供者,请参阅免费提供者。有关通用提供者系统架构,请参阅提供者系统

概述

g4f 中的已认证提供者是需要某种形式的认证才能访问其 API 的 AI 服务集成。与免费提供者不同,它们通常提供更可靠的服务、更高的速率限制以及对高级模型的访问。系统支持多种认证方法,包括 API 密钥、浏览器会话 Cookie 和 HAR 文件提取。

所有已认证提供者都位于 g4f/Provider/needs_auth/ 目录中,并继承自提供认证能力的基础类。它们设置 needs_auth = True 属性以指示其认证要求。

提供商架构

继承层级

提供者继承结构

来源: g4f/Provider/needs_auth/__init__.py1-32 g4f/Provider/needs_auth/OpenaiAPI.py5-11 g4f/Provider/needs_auth/Groq.py5-11 g4f/Provider/needs_auth/Cerebras.py10-16

常见提供者属性

大多数已认证提供者定义了一些标准属性

属性目的示例
label人类可读的名称"OpenAI API"
url主要服务 URL"https://platform.openai.com"
login_url认证/注册 URL"https://platform.openai.com/settings/organization/api-keys"
api_baseAPI 端点基础 URL"https://api.openai.com/v1"
working服务可用性状态True
needs_auth认证要求标志True
default_model要使用的默认模型"gpt-3.5-turbo"
模型支持的模型列表["gpt-3.5-turbo", "gpt-4"]

来源: g4f/Provider/needs_auth/OpenaiAPI.py6-11 g4f/Provider/needs_auth/Groq.py6-11 g4f/Provider/needs_auth/DeepInfra.py11-18

认证方法

API 密钥身份验证

最常见的认证方法是使用通过 HTTP 请求头或请求参数传递的 API 密钥。

API 密钥认证流程

API 密钥提供者示例包括

  • OpenaiAPI:使用 OpenAI 的 API 密钥系统
  • Groq:使用 Groq 控制台 API 密钥
  • DeepInfra:支持可选的 API 密钥,并可回退到匿名访问
  • PerplexityApi:使用 Perplexity API 密钥

来源: g4f/Provider/needs_auth/OpenaiAPI.py5-11 g4f/Provider/needs_auth/Groq.py5-11 g4f/Provider/needs_auth/DeepInfra.py110-111 g4f/Provider/needs_auth/PerplexityApi.py5-11

基于会话的认证

有些提供者使用浏览器会话、Cookie 或基于账户的认证,而不是 API 密钥。

基于会话的认证方法

Cerebras 提供者展示了混合认证,同时支持 API 密钥和浏览器会话

来源: g4f/Provider/needs_auth/Cerebras.py25-52

认证配置

认证凭证可以通过多种方法配置

  1. 环境变量OPENAI_API_KEYGROQ_API_KEY 等。
  2. 配置文件:存储在 JSON 配置中的 API 密钥
  3. 直接参数:直接传递给提供者方法
  4. 浏览器会话:自动从浏览器 Cookie 中提取
  5. HAR 文件:包含会话数据的网络流量捕获文件

提供者类型

OpenAI 兼容提供者

许多提供者继承自 OpenaiTemplate 并遵循 OpenAI 的 API 规范

OpenAI 兼容提供者架构

来源: g4f/Provider/needs_auth/OpenaiAPI.py5 g4f/Provider/needs_auth/Groq.py5 g4f/Provider/needs_auth/DeepInfra.py10 g4f/Provider/needs_auth/ThebApi.py22

多模态提供者

一些提供者同时支持文本和图像生成能力

DeepInfra 提供者通过检查模型类型并适当路由请求来展示多模态支持。

来源: g4f/Provider/needs_auth/DeepInfra.py20-44 g4f/Provider/needs_auth/DeepInfra.py56-63 g4f/Provider/needs_auth/DeepInfra.py83-127

基于账户的提供者

需要完整账户认证而不仅仅是 API 密钥的提供者

  • CopilotAccount:通过账户登录的 Microsoft Copilot
  • MetaAIAccount:通过 Facebook 账户的 Meta AI
  • OpenaiAccount:通过 ChatGPT 账户登录的 OpenAI
  • GeminiPro:通过 Google 账户的 Google Gemini

这些提供者通常使用浏览器自动化或 HAR 文件提取来进行认证。

来源: g4f/Provider/needs_auth/__init__.py6 g4f/Provider/needs_auth/__init__.py20 g4f/Provider/needs_auth/__init__.py22 g4f/Provider/needs_auth/__init__.py13

模型管理

模型列表和别名

已认证提供者通常定义了详细的模型列表和别名

Groq 提供者展示了全面的模型管理,包括备用模型和别名。

来源: g4f/Provider/needs_auth/Groq.py11-32

ThebApi 提供者展示了用户友好名称和 API 标识符之间的模型映射。

来源: g4f/Provider/needs_auth/ThebApi.py7-20 g4f/Provider/needs_auth/ThebApi.py30-31

动态模型发现

一些提供者从服务 API 动态获取其模型列表

DeepInfra 提供者查询特色模型端点以构建其模型目录。

来源: g4f/Provider/needs_auth/DeepInfra.py21-38

使用模式

基本 API 密钥用法

基于会话的用法

提供者注册表

所有已认证提供者都注册在主提供者注册表中,可通过 g4f.Provider.needs_auth 模块访问。

来源: g4f/Provider/needs_auth/__init__.py1-32

完整列表包括 31 个已认证提供者,涵盖了主要的 AI 服务,如 OpenAI、Anthropic、Google、Microsoft、Meta,以及许多用于特定用例(如图像生成、代码补全和研究模型)的专业提供者。