☰
GPT4Free:免费聚合各大 LLM 到一个 OpenAI 兼容的 API
2026/10/27 7:25:53 网站建设 项目流程

GPT4Free:免费聚合各大 LLM 到一个 OpenAI 兼容的 API

【免费下载链接】gpt4freeThe official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3 kimi 2.5 deepseek v3.2 gemini 3项目地址: https://gitcode.com/GitHub_Trending/gp/gpt4free

上次月度账单弹出来的时候,我盯着那行数字愣了好一会儿。后来团队干脆试了 GPT4Free 的免费聚合 API,同一套调用代码,底层换成了免费可用的模型源,账单那行数字直接归零。

它解决了什么问题

我们组接大模型这事,一直是这样的:想测 A 家的模型,注册账号、填 key;想换 B 家的,改一遍 base_url 和参数格式。provider 那边一限流,线上任务就开始掉。说白了,大家的时间都耗在"维护一堆入口"上,而不是真正调模型。

GPT4Free 的定位很直接:把一堆可用的模型源聚合成一个统一的、OpenAI 兼容的接口。你的代码只对一个接口说话,哪家可用、怎么降级,它自己处理。

核心机制,一句话说清

你可以把它理解成一个智能前台:所有请求按同一套 OpenAI 格式递进来,前台按可用性和配额把单子分给最合适的后端,某家挂了或没额度,就顺着配置好的名单顺延给下一家。

路由规则可以在config.yaml里声明:按 quota、错误计数这些条件排顺序,条件不满足就跳下一个。

跟我一步步来

第 1 步:装好环境

先确认 Python 3.10+,然后用 pip 装主包。这条命令会拉下完整依赖(含 API 服务所需的 FastAPI/uvicorn)。

pip install -U g4f[all]

装完后python -c "import g4f"不报错就算齐活。

第 2 步:用 Python 客户端发第一个请求

这一段在做什么:用一个 OpenAI 风格的客户端发同步请求,不传任何 key,provider 由 g4f 自己挑。

from g4f.client import Client client = Client() response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "一句话介绍你自己"}], ) print(response.choices[0].message.content) # ← 关键:和 OpenAI 返回结构一致

跑完你会直接看到模型的回复文本打印出来。

第 3 步:开成流式输出

长回答别干等,加一个stream=True,逐块接收。

stream = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "写段项目周报"}], stream=True, # ← 关键:开启流式 ) for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)

终端里文字会一个字一个字蹦出来。

第 4 步:跑起 OpenAI 兼容的 API 服务

这一条命令把 GPT4Free 起成本地服务,之后 curl、OpenAI SDK 都能指着它用。

python -m g4f --port 8080 --debug

服务起来后,http://localhost:8080/v1就是 OpenAI 兼容端点,把现有项目里的base_url改成它、清掉 key 就能跑。

第 5 步:用 config.yaml 声明自定义路由

最后这段是给路由文件加一条自定义模型名,客户端按这个名字请求,g4f 会按条件依次尝试各个 provider。

models: - name: "my-gpt4" providers: - provider: "OpenaiAccount" model: "gpt-4o" condition: "balance > 0 or error_count < 3" # ← 关键:有额度才走它 - provider: "PollinationsAI" # ← 兜底,无条件可用 model: "openai-large"

保存后请求model="my-gpt4",路由就生效了。

不同场景怎么选

场景推荐配置延迟成本
团队共享一个端点Docker 全量镜像,映射 8080 的 OpenAI 兼容 API中等免费,只占一台常开机器
私有内网 / 数据不出域本地 Ollama +OLLAMA_HOST/OLLAMA_PORT指向本机取决于本机硬件免费,用你自己的显存
偶尔调用 / 脚本内嵌pip 装g4f[all],直接用 Python 客户端最低(无中间服务)免费,零额外运维

如果你要的是"给全组一个稳定的 base_url",Docker 方案最合适,持久目录挂好 cookie 和生成媒体就行。如果数据绝对不能出内网,本地 Ollama 更合适,g4f/Provider/local/Ollama.py会优先查本机localhost:11434的模型列表。如果只是自己脚本里偶尔调一下,pip + Python 客户端最省,省掉容器和端口维护,注意装的是g4f[all]才有完整依赖。

新手容易踩的 3 个坑

❌ 直接写一个"听起来很高大上"的模型名,不管 provider 支不支持 ✅ 先确认可用列表(g4f.models或 API 的/v1/models)再写死名字

原因:同一个名字在不同 provider 下含义不同,名字对不上就直接空响应或报错。

❌ 本地 Ollama 不在默认端口,却指望 g4f 自动找到 ✅ 显式设置OLLAMA_HOST/OLLAMA_PORT环境变量

原因:provider 默认去localhost:11434查本机模型,查不到就会走公网代理路线。

❌ 把config.yaml随手丢在项目根目录 ✅ 放到 cookie 目录(~/.config/g4f/cookies/或./har_and_cookies/)

原因:路由文件只在读取 cookie 目录时自动加载,放错地方会被静默忽略。另外 quota 缓存有 5 分钟 TTL,改完配置稍等一会儿再验证,别误判成没生效。

接下来可以做什么

  • 先跑通etc/examples/messages.py这个最小同步例子,确认自己环境里至少有一条 provider 通
  • 把代码里硬编码的模型名,替换成config.yaml里的自定义路由,加上 quota / 错误数条件,让降级逻辑自动接管
  • 在 API 服务启动命令里加--debug,观察请求实际走了哪个 provider,再决定要不要收紧路由

延伸阅读:

  • 路由配置说明:docs/config-yaml-routing.md
  • 一份可直接抄的示例配置:etc/examples/config.yaml
  • Ollama provider 实现:g4f/Provider/local/Ollama.py
  • API 服务实现:g4f/api/run.py

有坑欢迎在 issue 里蹲一个,provider 挂了、路由不生效这种,基本都有人踩过。

【免费下载链接】gpt4freeThe official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3 kimi 2.5 deepseek v3.2 gemini 3项目地址: https://gitcode.com/GitHub_Trending/gp/gpt4free

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询