GPT4Free本地部署实践:5分钟免费调用GPT-4级模型的完整教程
【免费下载链接】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
把大模型接到自己的项目里,官方 API 的按次计费往往是第一道门槛。GPT4Free(g4f)是一个聚合了数十个 LLM 与媒体生成供应商的开源项目,提供 OpenAI 兼容 API 和 Python 客户端,你可以在自己的环境里完成免费 AI 模型调用,不用按次付费,也不必绑定单一供应商。本文从 5 分钟本地部署讲起,一路讲到路由调优。
5分钟跑通:Docker 与 pip 两条最短路径 🚀
如果你不想配置 Python 环境,Docker 是最省事的方式。下面三条命令分别完成:创建持久化目录(存放 cookie 和生成的媒体文件)、拉取镜像、启动容器。
mkdir -p har_and_cookies generated_media docker pull hlohaus789/g4f docker run -p 8080:8080 --shm-size="2g" \ -v $(pwd)/har_and_cookies:/app/har_and_cookies \ -v $(pwd)/generated_media:/app/generated_media \ hlohaus789/g4f:latest启动后在浏览器打开http://localhost:8080/chat/就能直接对话,8080 同时承载 Web 界面和 API 端口。
如果你是 Python 开发者,一条 pip 命令装好即可在代码里集成:
pip install -U g4f[all]需要修改源码或贡献新供应商时,克隆仓库后按setup.py走本地安装:
git clone https://gitcode.com/GitHub_Trending/gp/gpt4free五种典型场景:从文本对话到图片理解 🧩
用三行 Python 对话 GPT-4o
任何需要在脚本里调用大模型的场景,最基础的形态就是实例化客户端并发一条消息,不需要配置任何密钥:
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)预期效果:message.content输出一段类似 "Hello! How can I assist you today?" 的文本。g4f 会在当前可用的供应商里自动挑一个,你不需要知道请求最终发给了谁。
用流式输出生成长文
生成文章、代码这类长内容时,流式输出可以避免长时间空等,写法与 OpenAI SDK 的stream=True一致:
stream = client.chat.completions.create( model="gpt-4", messages=[{"role": "user", "content": question}], stream=True, ) for chunk in stream: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)预期效果:内容按 token 实时打印,像终端逐字输出;异步版本可用AsyncClient配合async for,参考 流式示例。
让模型看懂本地图片
截图分析、图表解读这类"把图给模型看再提问"的情况,把文件对象通过image参数传入即可:
import g4f client = Client() with open("cat.jpg", "rb") as f: response = client.chat.completions.create( model=g4f.models.default_vision, messages=[{"role": "user", "content": "这张图里有什么?"}], image=f, ) print(response.choices[0].message.content)预期效果:输出对图片内容的文字描述。本地文件和网络 URL 两种传法都有现成写法,见 vision_images.py。
把 OpenAI 兼容 API 接入现有项目
项目里已经用 OpenAI SDK 写好的代码不用改请求逻辑,只需把base_url换成本地服务。先用模块方式启动 FastAPI 服务:
python -m g4f --port 8080 --debug再在原有代码里替换连接地址:
from openai import OpenAI client = OpenAI(base_url="http://localhost:8080/v1", api_key="g4f") # 占位即可 response = client.chat.completions.create( model="deepseek-v3", messages=[{"role": "user", "content": "你好"}], )预期效果:所有面向 OpenAI SDK 写的代码原样可用,/v1下提供 completions、images 等接口,/docs页面可以像 Swagger UI 一样在线调试。
给 AI 助手加上联网搜索与抓取
如果你在用支持 MCP(模型上下文协议)的客户端,比如 Claude Desktop,可以把 g4f 的 MCP 服务器挂上,让助手多出搜索、抓取、生图三种工具能力。HTTP 模式一条命令启动:
g4f mcp --http --port 8765stdio 模式则把下面这段写进客户端的 MCP 配置(仓库里有示例文件):
{ "mcpServers": { "gpt4free": { "command": "python", "args": ["-m", "g4f.mcp"] } } }预期效果:助手可以按需调用web_search(DuckDuckGo 搜索)、web_scrape(网页正文提取)和image_generation(Flux 生图),三个工具的完整调用演示见 mcp_tools_demo.py。
项目结构速览:g4f 内部有什么 🔍
- g4f/Provider/:数十个供应商适配器,覆盖 HTTP API、浏览器自动化、本地推理三种形态,是模型可用性的来源
- g4f/client/:同步
Client与异步AsyncClient,接口面与 OpenAI SDK 对齐 - g4f/api/:FastAPI 实现的 OpenAI 兼容 REST API,即上文提到的
/v1服务 - g4f/gui/:本地 Web 界面,Docker 部署后打开的聊天页面就是它
- g4f/mcp/:MCP 服务器,把联网搜索、网页抓取、图片生成暴露为工具
实战避坑:四个最常见的问题 🛠️
问题一:请求偶发超时或 429/502
- 症状:同一份请求有时成功有时失败,重试一下又好了。
- 原因:免费端点普遍有频率限制和临时故障,默认路由打到繁忙供应商时就会失败。
- 解法:内置的 RetryProvider 会在失败时自动轮换到下一个供应商;排查时也可以显式指定一个供应商,并给启动命令加
--debug观察轮换日志:
import g4f client = Client(provider=g4f.Provider.DeepInfra)问题二:浏览器类供应商直接报错
- 症状:Copilot、Gemini CLI 这类供应商启动即异常。
- 原因:它们依赖本地 Chrome/Chromium 做页面自动化,pip 装的环境里经常缺这个依赖。
- 解法:先用
which chromium || which google-chrome确认浏览器是否存在;没有就安装 Chromium,或改用纯 HTTP API 类供应商。Docker 镜像自带浏览器,这个问题基本只出现在 pip 环境。
问题三:昨天还好的模型今天 401 或返回空
- 症状:依赖 cookie 的供应商突然返回 401 或空内容。
- 原因:cookie / HAR 文件有有效期,过期后凭证失效。
- 解法:用容器内置桌面(端口 7900)重新登录、导出新的 HAR 文件放进
har_and_cookies目录,并定期备份该目录。排查时用ls -lt har_and_cookies/查看文件时间即可判断是否过期。
问题四:装完缺模型或缺功能
- 症状:
import g4f正常,但某个模型或媒体功能报缺少依赖。 - 原因:默认安装只含核心依赖,可选功能依赖 extras 分组。
- 解法:
pip install -U g4f[all]补全依赖;想控制体积的话,对照 requirements.txt 与 requirements-slim.txt 只装需要的分组。
进阶调优:模型路由与部署方式选型 ⚙️
部署方式按你的角色选,不必都试:
| 部署方式 | 适合谁 | 优点 | 注意点 |
|---|---|---|---|
| Docker(推荐) | 服务器、非开发者 | 环境隔离,自带 GUI 与浏览器 | 需挂载两个持久化目录 |
| pip install | Python 开发者 | 接入最快,方便扩展代码 | 浏览器类供应商需自备 Chromium |
| Windows .exe 启动器 | 桌面用户 | 免 Python 环境 | 依赖发布包更新 |
模型名不用死记,按任务类型选:
| 任务类型 | 可传入的 model | 理由 |
|---|---|---|
| 日常问答、摘要 | gpt-4o-mini | 轻量、响应快 |
| 编程、推理 | deepseek-v3 | 代码与推理表现好 |
| 长文、复杂指令 | gpt-4.1 | 指令遵循稳定 |
| 图片生成 | flux | 配合client.images.generate使用 |
再往上一层是自定义路由:把config.yaml放进与 cookie 文件同目录(如./har_and_cookies/),就能定义"有余额优先走 A、否则兜底走 B"的命名模型,格式见 示例配置:
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"即可,g4f 会按顺序试探每个供应商的余额与近期错误数。另外,arm64 机器或想控制镜像体积时,可以把镜像换成hlohaus789/g4f:latest-slim,它会在启动时自动更新 g4f 包并补齐缺失依赖。
上线前检查清单 ✅
- Docker 容器已启动,
http://localhost:8080/chat/能打开并完成一次对话 - pip 环境执行过
pip install -U g4f[all],且三行客户端示例能打印出回复 har_and_cookies与generated_media两个目录已挂载到宿主机,方便备份- 跑过流式输出与图片理解示例,确认目标场景真实可用
- 若持有自己的 API key 或账号,已用
config.yaml写好一条路由规则
更多供应商细节与 API 参数见 docs/ 与 示例代码目录;遇到问题可到项目 Issue 区提问,也欢迎提交新供应商实现的 PR。
【免费下载链接】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),仅供参考