在群晖上安装GPT4Free

什么是 GPT4Free ?
GPT4Free简称G4F,是一个强大的大型语言模型命令行界面(LLM-CLI),旨在去中心化并提供免费访问先进人工智能技术的能力。G4F的目标是通过提供用户友好和高效的工具,使人工智能民主化,并与最先进的语言模型进行交互。
GPT4Free 是一个通过逆向工程,调用第三方 ChatGPT 网站的 API 项目,让 OpenAI API 误以为它是从拥有已付费 OpenAI账户的网站(如搜索引擎 You.com、WriteSonic 或 Quora 的 Poe )发出的请求,从而达到使任何人都可以免费访问 GPT-4 和 GPT-3.5 模型的目的。
OpenAI 曾要求下架免费 GPT4Free 项目,但一年过去了,目前这个项目还在 github 上
GPT4Free 是作为 PoC(概念验证),演示了具有多提供商请求的 API 包的开发,具有超时、负载平衡和流量控制等功能。
主要特征
- 去中心化的AI访问:
G4F提供免费访问先进语言模型的能力,促进 了AI技术的民主化。 - 多供应商支持:
G4F与多个AI供应商无缝集成,确保可靠、高效的性能。 - 稳健的架构:
G4F的架构融合了超时、负载平衡和流量控制,以实现最佳性能和稳定性。 - 用户友好的界面:
G4F提供直观的命令行界面,使用户可以轻松地与语言模型进行交互。 - 详尽的文档:提供全面的指南、教程和
API参考,帮助您充分利用G4F的功能。
该项目仅用于教育目的。在使用前,请阅读官方的法律申明:https://github.com/xtekky/gpt4free/blob/main/LEGAL_NOTICE.md
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 g4f ,选择第一个 hlohaus789/g4f,版本选择 latest。
本文写作时,
latest版本对应为0.2.8.2;

常规设置
勾选 启用资源限制
CPU优先顺序设为默认的中- 内存限制设置为
2048

卷
在 docker 文件夹中,创建一个新文件夹 gpt4free,并在其中建一个子文件夹 data
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/gpt4free/data | /app/hardir | 存放导出的 .har 文件 |
.har文件的生成,请看官方文档:https://github.com/xtekky/gpt4free#har-file-for-openaichat-provider

端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
| 本地端口 | 容器端口 | 说明 |
|---|---|---|
1336 | 8080 | web client 端口 |
1337 | 1337 | API 端口 |
7900 | 7900 | vnc 端口 |

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 gpt4free 和 子目录
mkdir -p /volume1/docker/gpt4free/data# 进入 gpt4free 目录
cd /volume1/docker/gpt4free# 运行容器
docker run -d \--restart unless-stopped \--name gpt4free \--shm-size="2g" \-p 1336:8080 \-p 1337:1337 \-p 7900:7900 \-v $(pwd)/data:/app/hardir \hlohaus789/g4f:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'services:gpt4free:image: hlohaus789/g4f:latestcontainer_name: gpt4freeshm_size: 2gbvolumes:- ./data:/app/hardirports:- '1336:8080'- '1337:1337'- '7900:7900'
然后执行下面的命令
# 新建文件夹 gpt4free 和 子目录
mkdir -p /volume1/docker/gpt4free/data# 进入 gpt4free 目录
cd /volume1/docker/gpt4free# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
聊天
启动会有一个过程,日志中看到下面的内容就可以开始访问了

在浏览器中输入 http://群晖IP:1136 就能看到内置客户端的聊天界面

下方是设置模型和服务商的

Model:支持的模型列表

Provider:支持的供应商列表

更详细的信息,请参考官方文档:https://github.com/xtekky/gpt4free#-providers-and-models
Web Access:指联网,也就是具备互联网访问能力Disable History:禁用历史记录
开始用的 Model:Default

后来切换到 gpt-4

换个问题 https://laosu.tech 主要是介绍哪方面的内容?

切换到 llama2-70b

API
在浏览器中输入 http://群晖IP:1337 会看到一行字

可以继续访问 http://群晖IP1337/v1/chat/completions

和 http://群晖IP:1337/v1/models

还是以 ChatGPT-Next-Web,修改 BASE_URL
| 服务名称 | 服务地址 |
|---|---|
FreeGPT35 | http://192.168.0.197:3044 |
aurora | http://192.168.0.197:8328 |
GPT4Free | http://192.168.0.197:1337 |
CUSTOM_MODELS 改为了 +all

可以在 设置 --> 模型 中看到支持的模型

可惜触发了 ERROR:root:Response 403: Cloudflare detected,没能成功聊天
VNC
在浏览器中输入 http://群晖IP:7900

需要密码访问

默认的密码为 secret

如果不想麻烦,可以把密码传进去,直接访问 http://群晖IP:7900/?autoconnect=1&resize=scale&password=secret
参考文档
xtekky/gpt4free: decentralising the Ai Industry, just some language model api’s…
地址:https://github.com/xtekky/gpt4free
g4f.ai
地址:https://g4f.ai/
相关文章:
在群晖上安装GPT4Free
什么是 GPT4Free ? GPT4Free 简称 G4F,是一个强大的大型语言模型命令行界面(LLM-CLI),旨在去中心化并提供免费访问先进人工智能技术的能力。G4F 的目标是通过提供用户友好和高效的工具,使人工智能民主化&am…...
C# 语言类型(四)—传递参数及其修饰符
总目录 C# 语法总目录 参考链接: C#语法系列:C# 语言类型(一)—预定义类型值之数值类型 C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述 C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体 C#语法系列:C# 语言类型(四)—传递参数及其修饰符 C#语法…...
刷穿力扣006-剑指offer一数组——02寻找目标值-二维数组
刷穿力扣006-剑指offer<一>数组——02寻找目标值-二维数组 基本面试题都是我带大家刷的力扣热题100和剑指offer的75道题,建议刷两遍!(ps:想找工作实习的同学,文末有面试八股和简历模板) 题目: 语言…...
爬虫(小案例)
点开其中一个链接, http://desk.zol.com.cn/dongman/huoyingrenzhe/(前面为浏览器自动补全,在代码里需要自己补全) 可以看到图片的下载地址以及打开本图集下一张图片的链接 了解完网站的图片构造后动手写代码,我们筛…...
环信 IM 客户端将适配鸿蒙 HarmonyOS
自华为推出了自主研发操作系统鸿蒙 HarmonyOS 后,国内许多应用软件开始陆续全面兼容和接入鸿蒙操作系统。环信 IM 客户端计划将全面适配统鸿蒙 HarmonyOS ,助力开发者快速实现社交娱乐、语聊房、在线教育、智能硬件、社交电商、在线金融、线上医疗等广泛…...
伪元素的使用
.box::after{content: ;display: block;// 定义元素位置margin-top: 12rpx;margin-right: 20rpx;// 定义元素宽高width: 36rpx;height: 36rpx;// background-image无法引用本地资源,故需要用网络地址background-image: url($urlcalendar.png);background-size: 100%…...
TensorFlow学习之:高级应用和扩展
生成对抗网络:了解GAN的基本原理,使用TensorFlow实现简单的GAN 生成对抗网络(Generative Adversarial Networks,GAN)由两部分组成:生成器(Generator)和判别器(Discrimin…...
maya模板导入动画
maya模板导入动画,第一帧为模板姿态 要将一个FBX文件中的动画数据导入另一个FBX文件的模板,并使得第一帧是模板的初始姿势,第二帧开始是动画,你可以在Maya中采用以下步骤来操作: 步骤 1: 导入模板FBX 首先ÿ…...
【微信小程序之分包】
微信小程序之分包 什么是分包分包的好处分包前的结构图分包后的结构图分包的加载规则分包的体积限制使用分包打包原则引用原则独立分包独立分包的配置方法独立分包的引用原则分包预下载配置分包的预下载分包预下载限制 什么是分包 分包指的是把一个完整小程序项目,…...
STM32-ADC(独立模式、双重模式)
ADC简介 18个通道:外部信号源就是16个GPIO回。在引脚上直接接模拟信号就行了,不需要侄何额外的电路。引脚就直接能测电压。2个内部信号源是内部温度传感器和内部参考电压。 逐次逼近型ADC: 它是一个独立的8位逐次逼近型ADC芯片,这个ADC0809是…...
03.卸载MySQL
卸载MySQL 1.Windows卸载MySQL8 停止服务 用命令停止或者在服务中停止都可以 net stop mysql(服务名字可以去服务里面看一下)控制面板卸载MySQL 卸载MySQL8.0的程序可以和其他桌面应用程序一样直接在控制面板选择卸载程序,并在程序列表中…...
2024.4.13 蓝桥杯软件类C++B组山东省赛 小记
大三老狗了 , 还是把精力放在考研上了 ,所以只是蓝桥杯的前一晚上把常用算法翻了翻。 其实还做了一场小模拟,两个题分值200分我狂砍了17分,bfs写半小时写不明白,所以晚上已经是心如死灰了,所以就早早睡觉了…...
Windows下IntelliJ IDEA远程连接服务器中Hadoop运行WordCount(详细版)
使用IDEA直接运行Hadoop项目,有两种方式,分别是本地式:本地安装HadoopIDEA;远程式:远程部署Hadoop,本地安装IDEA并连接, 本文介绍第二种。 一、安装配置Hadoop (1)虚拟机伪分布式 见上才艺&a…...
【每日刷题】Day16
【每日刷题】Day16 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 24. 两两交换链表中的节点 - 力扣(LeetCode) 2. 160. 相交链表 - 力扣&…...
【K8s】:在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)
【K8s】:在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从) 一、准备工作二、搭建nfs服务器2.1 安装 NFS 服务器软件包(所有节点执行)2.2 设置共享目录2.3 启动 NFS 服务器2.4 设置防火墙规则(可选&am…...
Vue内置组件TransitionGroup详细介绍
<TransitionGroup> 是一个内置组件,用于对 v-for 列表中的元素或组件的插入、移除和顺序改变添加动画效果。 和 <Transition> 的区别 <TransitionGroup> 支持和 <Transition> 基本相同的 props、CSS 过渡 class 和 JavaScript 钩子监听器…...
【机器学习300问】71、神经网络中前向传播和反向传播是什么?
我之前写了一篇有关计算图如何帮助人们理解反向传播的文章,那为什么我还要写这篇文章呢?是因为我又学习了一个新的方法来可视化前向传播和反向传播,我想把两种方法总结在一起,方便我自己后续的复习。对了顺便附上往期文章的链接方…...
【ZZULIOJ】1067: 有问题的里程表(Java)
目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 某辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数。然而这个里程表有个毛病:它总是从3变到5,而跳过数字4,里程表…...
A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用
A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用 1 该驱动函数预览1.12 HAL_I2C_Master_Sequential_Receive_IT1.13 HAL_I2C_Slave_Transmit_IT1.14 HAL_I2C_Slave_Receive_IT1.15 HAL_I2C_Slave_Sequential_Transmit_IT1.16 HAL_I2C_Slave_Sequential_R…...
简介:Asp.Net Core进阶高级编程教程
课程简介目录 🚀前言一、课程背景二、课程目的三、课程特点四、课程适合人员六、最后 🚀前言 本文是《.Net Core进阶编程课程》教程专栏的导航站(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
