52.2k star! 自己部署gpt4free, 免费使用各种GPT
GPT4Free是一个由开发者Xtekky在GitHub上发布的开源项目,它可以免费地使用GPT-3.5、GPT-4、llama、gemini-pro、bard、claude等多种大模型。截止到当前(2024.1.30)已经有52.2k star,可见其受欢迎程度。

github地址:https://github.com/xtekky/gpt4free
1. 部署使用
下面我们使用docker一键部署启动,体验一下效果。在命令行运行以下命令
docker pull hlohaus789/g4fdocker run -p 8080:8080 -p 1337:1337 -p 7900:7900 --shm-size="2g" hlohaus789/g4f:latest
如图所示:

到这一步已经部署启动完成,打开浏览器,输入http://localhost:8080即可打开聊天页面,界面与chatgpt有点像。

问个问题,可以正常回答:

2. api调用
该项目还提供了api,可以通过http接口调用。

3. 实现原理
gpt4free的实现原理其实很简单,就是伪装为chatgpt的官方聊天客户端、或poe、或bing、或phind等一些已向openai付费,可正常使用openai服务的网站,调用这些网站的接口来间接调用openai(bard、claude等同理)。
下面我们通过源码验证一下这个原理。
以phind为例,phind.com是一个基于chatgpt的搜索引擎。
打开phind.com,随便搜索一个东西,可以看到phind的接口请求如下:


接下来看一下gpt4free项目中Phind.py的源码,可以看到和上面phind真实的请求url,参数都是可以对上的。

这个项目还挺有意思的,感兴趣的朋友们自己部署一下试试吧,使用docker2分钟就可以完成部署。
文章来源于AI技术实战,作者AI李良
相关文章:
52.2k star! 自己部署gpt4free, 免费使用各种GPT
GPT4Free是一个由开发者Xtekky在GitHub上发布的开源项目,它可以免费地使用GPT-3.5、GPT-4、llama、gemini-pro、bard、claude等多种大模型。截止到当前(2024.1.30)已经有52.2k star,可见其受欢迎程度。 github地址:https://github.com/xtekky…...
【HbuilderX】 uniapp实现 android申请权限 和 退出app返回桌面
目录 android申请权限: 监听用户是否开启权限或关闭权限: 退出app返回桌面: android申请权限: 首先在 manifest.json 内添加你所需要用到权限 添加权限插件 permission.js 一次就好1/权限插件 - Gitee.comhttps://gitee.co…...
计算机网络之传输层 + 应用层
.1 CIDR地址块中还有三个特殊的地址块 a. 前缀 n 32 , 即32位IP地址都是前缀, 没有主机号, 这其实就是一个IP地址, 用于主机路由 b. 前缀 n 31 , 这个地址块中有两个IP地址, 主机号分别为0/1 , 这个地址块用于点对点链路 c. 前缀 n 0 , 用于默认路由使用二叉线索树查找转发…...
五、软考-系统架构设计师笔记-信息安全技术基础知识
信息安全技术基础知识 1、信息安全基础知识概述 信息安全的概念 信息安全包括 5 个基本要素: 机密性:确保信息不暴露给未授权的实体或进程。完整性:只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改。可用性:得到授权的实体在需要时可以…...
vue3+uniapp在微信小程序实现一个2048小游戏
一、效果展示 二、代码 <template><view class"page"><view class"top"><view class"score">得分:{{total}}</view><view class"time">用时:{{allTime}}s</view></view><view cl…...
常见的浏览器跨域解决方法
1. 前端方法:JSONP(仅适用于GET请求) JSONP(JSON with Padding)是一种利用<script>标签的src属性不受同源策略限制的特性来实现跨域数据请求的方法。JSONP通过在前端动态创建<script>标签,并将…...
飞桨模型转ONNX模型教程
文章目录 飞桨模型转ONNX模型教程1. ONNX简介2. Paddle2ONNX安装3. 获取Paddle2ONNX模型库4. 飞桨转ONNX教程4.1 飞桨训练模型导出为ONNX模型4.2 飞桨部署模型转为ONNX模型4.3 验证ONNX模型4.4 使用ONNX模型进行推理 5. 注意事项 飞桨模型转ONNX模型教程 1. ONNX简介 ONNX是一…...
vue使用swiper(轮播图)-真实项目使用
一、安装 我直接安装的vue-awesome-swiper": "^3.1.3"指定版本 npm install vue-awesome-swiper3.1.3 swiper --save二、vue页面使用,写了一个小demo <template><div class"vue-swiper"><h1>{{ msg }}</h1><…...
C++ 创建并初始化对象
创建并初始化C对象 当我们创建一个C对象时,它需要占用一些内存,即使我们写一个完全为空的类,类中没有成员,什么也没有,它至少也要占用一个字节的内存。但是我们类中有很多成员,它们需要存储在某地方&#…...
大数据可视化python01
import pandas as pd import matplotlib.pyplot as plt# 设置中文改写字体 plt.rcParams[font.sans-serif] [SimHei]# 读取数据 data pd.read_csv(C:/Users/wzf/Desktop/读取数据进行数据可视化练习/实训作业练习/瓜果类单位面积产量.csv ,encoding utf-8)#输出 print(data)…...
Java底层自学大纲_分布式篇
分布式专题_自学大纲所属类别学习主题建议课时(h)A 分布式锁001 Zookeeper实现分布式锁l-常规实现方式2.5A 分布式锁002 Zookeeper实现分布式锁II-续命&超时&羊群效应问题解决方案2.5A 分布式锁003 Zookeeper实现分布式锁III-基于Curator框架实现…...
Thread多线程(创建,方法,安全,通信,线程池,并发,并行,线程的生命周期)【全详解】
目录 1.多线程概述 2.多线程的创建 3.Thread的常用方法 4.线程安全 5.线程同步 6.线程通信 7.线程池 8.其它细节知识:并发、并行 9.其它细节知识:线程的生命周期 1.多线程概述 线程是什么? 线程(Thread)是一个程序内部的一条执行…...
自定义View中的ListView和ScrollView嵌套的问题
当我们在使用到ScrollView和ListView的时候可能会出现显示不全的问题。那我们可以进行以下分析 ScrollView在测量子布局的时候会用UNSPECIFIED。通过源码观察, 在ScrollView的onMeasure方法中 Overrideprotected void onMeasure(int widthMeasureSpec, int heightMe…...
支持向量机 SVM | 线性可分:硬间隔模型公式推导
目录 一. SVM的优越性二. SVM算法推导小节概念 在开始讲述SVM算法之前,我们先来看一段定义: 支持向量机(Support VecorMachine, SVM)本身是一个二元分类算法,支持线性分类和非线性分类的分类应用,同时通过OvR或者OvO的方式可以应用…...
【Unity实战】UGUI和Z轴排序那点事儿
如果读者是从Unity 4.x时代过来的,可能都用过NGUI这个插件(后来也是土匪成了正规军),NGUI一大特点是可以靠transform位移的Z值进行遮挡排序,然而这个事情在UGUI成了难题(Sorting Layer、Inspector顺序等因素…...
Vue/React 前端高频面试
说一说vue钩子函数 钩子函数是Vue实例创建和销毁过程中自动执行的函数。按照组件生命周期的过程分为:挂载阶段 -> 更新阶段 -> 销毁阶段。 每个阶段对应的钩子函数分别为:挂载阶段(beforeCreate,created,befor…...
[技巧]Arcgis之图斑四至范围批量计算
ArcGIS图层(点、线、面三类图形)四至范围计算 例外一篇介绍:[技巧]Arcgis之图斑四至点批量计算 说明:如下图画出来的框(范围标记不是很准) ,图斑的x最大和x最小,y最大,…...
C/C++工程师面试题(STL篇)
STL 中有哪些常见的容器 STL 中容器分为顺序容器、关联式容器、容器适配器三种类型,三种类型容器特性分别如下: 1. 顺序容器 容器并非排序的,元素的插入位置同元素的值无关,包含 vector、deque、list vector:动态数组…...
Effective Programming 学习笔记
1 基本语句 1.1 断言 在南溪看来,断言可以用来有效地确定编程中当前代码运行的前置条件,尤其是以下情况: 第三方工具库对输入数据的依赖,例如:minitouch库对Android版本的要求...
【MGR】MySQL Group Replication 背景
目录 17.1 Group Replication Background 17.1.1 Replication Technologies 17.1.1.1 Primary-Secondary Replication 17.1.1.2 Group Replication 17.1.2 Group Replication Use Cases 17.1.2.1 Examples of Use Case Scenarios 17.1.3 Group Replication Details 17.1…...
Keil µVision TAB显示异常问题分析与解决方案
1. 问题现象与背景分析在Keil Vision集成开发环境中,部分用户遇到了编辑器界面显示异常的问题。具体表现为:当代码中包含TAB字符(制表符)时,屏幕上会出现奇怪的显示错乱,原本应该显示为空白缩进的区域&…...
AI、机器学习与深度学习的本质区别与选型指南
1. 这不是概念辨析课,而是一张能让你少走三年弯路的“技术地图”我带过三十多个从零起步转行做数据工作的学员,几乎每个人在刚接触这个领域时,都会被这三个词绕晕:AI、机器学习、深度学习。有人翻了十页维基百科,越看越…...
向量化映射框架优化图着色问题的FPGA实现
1. 问题背景与核心挑战图着色问题作为组合优化领域的经典NP难问题,在集成电路布局分解、寄存器分配、逻辑最小化等场景中具有广泛应用。传统Ising机采用独热编码(one-hot encoding)方案,将每个节点的q种颜色状态映射为q个物理比特…...
Houdini 19.5 新手必看:从自定义启动界面到项目设置的保姆级避坑指南
Houdini 19.5 新手必看:从自定义启动界面到项目设置的保姆级避坑指南 第一次打开Houdini 19.5时,面对密密麻麻的界面和复杂的参数设置,很多新手会感到无所适从。本文将带你系统性地完成从界面个性化到项目配置的全流程,避开那些容…...
三年级下册语文第三单元作文:我做了一个小实验300字
三年级下册语文《我做了一个小实验》作文,重点要写清楚:做了什么实验实验前准备了什么实验过程看到了什么变化明白了什么道理我用夸克网盘分享了「三年级下册语文作文」,1-8单元。链接:https://pan.quark.cn/s/a80b7ca7f993这类作…...
Go语言实现DCI架构:用角色扮演解耦对象行为与数据
1. 从“是什么”到“做什么”:DCI架构如何重塑对象行为建模在面向对象编程的世界里,我们总在试图用代码“复刻”现实。一个“人”是什么?我们定义一个People类,拥有姓名、年龄等属性。这个人能做什么?我们为People类添…...
Gemini3.1Pro编程项目什么时候该用什么时候不该用
概要Gemini 3.1 Pro是Google DeepMind于2026年2月推出的旗舰级多模态大语言模型。在编程和项目管理场景中,它最核心的价值不是"替代程序员写代码",而是在特定环节——需求分析、架构设计初稿、代码审查、Bug定位、技术文档生成、项目进度整理—…...
AI时代工程师的核心价值:从写代码到定义问题
1. 这不是“AI取代程序员”的老调重弹,而是职业坐标的重新校准你最近有没有在刷技术社区时,被两条截然相反的消息撞得有点懵?一条说“编码岗位正站在悬崖边上”,另一条却高呼“这是工程师黄金十年的起点”。这不是媒体制造焦虑的标…...
通信对抗新利器:HWG1在铁路高速领域的卓越应用
在现代化交通体系中,铁路、高速等关键领域的通信安全至关重要。为了应对复杂多变的电磁环境,确保通信系统的稳定运行,成都鼎讯信通科技有限公司推出了通信信号干扰模拟器HWG1,为交通领域的通信对抗训练提供了强有力的支持。HWG1通…...
Unity构建性能分析工具:四层数据采集与包体优化实战
1. 这不是又一个“构建日志查看器”,而是一把能切开Unity构建黑箱的手术刀 我第一次在客户项目里看到Build Report Tool时,它正安静地躺在一个被遗忘的Plugins文件夹里,名字叫 BuildReportTool_v2.3.1.unitypackage 。当时团队正为一个中型…...
