今天来教大家如何使用NAS来搭建ChatGPT,干货教程必收藏!
现在IT的新潮流,当属各种的AI,不论是绘画,聊天,AI都涌现出了更强的创造力。
例如最近火爆的chatgpt,ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。
例如,我想让它整理NAS上的文件,只需一句话就能写出能用的批处理代码:
我是使用的威联通TS-464C进行的搭建ChatGP。
TS-464C是威联通的4盘位旗舰NAS,强大的性能与低廉的价格是我选择它的原因,威联通这个品牌大家应该耳熟能详,作为传统的专业级NAS厂家,它已经发展了18年,数据安全技术底蕴极其深厚,拥有业内极佳的品牌职业操守和良好的用户口碑!
我选择威联通的原因有五点:
1、独家的Qtier技术。(支持将SSD与HDD整合在一起形成一个存储池,既有SSD的速度也有HDD的容量)
2、独家的HBS3应用。(最佳3-2-1数据备份原则实施应用,所有NAS厂商里面做得最好)
3、大陆服务器带宽升级。(即使没公网IP,使用外网访问速度也是满速)
4、独家的虚拟机技术。(非常强大,支持虚拟机多开,整机备份,以及统一管理)(还支持HDMI直出)
5、独家快照技术。(实时将整个存储池进行存档)
6、我个人目前使用都是协议连接,威联通NAS支持所有的协议,稳定满速不卡顿。
ChatGPT注册简略
这里简单说说chatgpt账号注册。(详细步骤在B站能搜一大把)
1、网址
2、接码平台
3、白嫖账号
可能眼尖的读者已经发现,我的chatgpt对话框居然不是官网,而是局域网IP访问。它可以部署到本地NAS?是的,本月OpenAI推出了GPT-3.5-Turbo的api,0.002美元/1000token(你可理解为两美元聊几十万字),所有用户都能免费申请API体验一个月。不少基于api开发的chatgpt应用涌现(ChatPDF、ChatBox、OpenCat等),比通过网页破解接口更加稳定,我实测用自己的api回复速度快好几倍,而且几乎不掉线。
威联通部署ChatGPT
1、容器介绍
2、疾速部署
打开ContainerStation,选择“创建”,点击页面右方的“创建应用程序”。(这是威联通独有的网页compose粘贴,一步到位搭建容器,后期修改也很方便。)
services:
app:
image:chenzhaoyu94/chatgpt-web
ports:
-3002:3002
environment:
OPENAI_API_KEY:sk-kxASwyVuqjLmcN2E1eztT3BlbkFJ1bMfVDd7T3Bkuj1z****
AUTH_SECRET_KEY:car
TIMEOUT_MS:60000
请务必以图片格式为准,部分平台会吞空格,空格少了就会部署失败。
3、注意事项:
①OPENAI_API_KEY后面请替换成你自己账号的api。
②由于国内api服务器被阻塞,需要填写OPENAI_API_BASE_URL反向代理,
③反代地址是我随便找的,算是有安全隐患,你也可尝试自己本地的socket代理,环境变量添加两条SOCKS_PROXY_HOST:IPSOCKS_PROXY_PORT:7891不能细说,懂的自然懂。
三、效果演示
1、手机运行的效果
第一张是浏览器打开的,第二三张是添加到主屏幕,像app一样打开,可以看出chatgpt完美支持pwa模式,聊天支持代码和公式的显示。
2、电脑使用的效果
例如我想整理近期攒起的一堆混乱文件,让chatgpt给我写了一个批处理程序。复制后另存为***.bat,就能把文件归类得井井有条。
甚至让chatgpt写一个带有界面UI的Python程序都行!可以将我囤积的大量“歌手-歌名”这类MV,按照歌手名字批量整理。
当然,chatgpt写出来的程序不一定全都能用,可以点击它右下角转圈图标重新写一遍,下面是一段成功运行的代码(另存为***.pyw,电脑要有Python):
#导入所需模块
importos
importshutil
importtkinterastk
fromtkinterimportfiledialog,IntVar
fromcollectionsimportCounter
fromglobimportglob
#创建一个主窗口
window=tk.Tk()
#创建一个标签和一个按钮,用于显示和选择源目录(也是目标目录)
src_label.pack()
src_button.pack()
src_entry=tk.Entry(window)
src_entry.pack()
#创建一个标签和一个输入框,用于输入重复次数的阈值n(默认为3)
n_label.pack()
n_var=IntVar(value=3)#创建一个整数变量,用于存储用户输入的n值
n_entry=tk.Entry(window,textvariable=n_var)
n_entry.pack()
#定义一个函数,用于弹出一个对话框让用户选择一个目录,并将其路径显示在对应的输入框中
defselect_dir(entry):
dir_path=filedialog.askdirectory()
entry.insert(0,dir_path)
#创建一个按钮,用于开始分类操作
start_button.pack()
#定义一个函数,用于按照文件名中“-”之前的文本,重复n次以上就自动归类到对应子文件夹
defsort_files(src_folder,n):
#获取源目录中所有包含“-”的文件名,并按照字母顺序排序
#创建一个空列表,用于存储所有分类依据(即“-”之前的文本)
category_list=[]
#遍历所有的文件名
forfile_nameinfile_list:
#将文件名按照“-”分割成两部分,并取第一部分作为分类依据
#将当前分类依据添加到列表中
category_list.append(category)
#使用Counter类来统计每个分类依据出现的次数,并过滤出重复n次以上的分类依据(即键值大于等于n)
category_counter=Counter(category_list)
category_counter=dict(filter(lambdax:x[1]>=n,category_counter.items()))
#遍历每个符合条件的分类依据和对应的次数(这里不需要用到次数)
forcategory,countincategory_counter.items():
#创建一个以分类依据命名的新子目录(如果不存在)
new_dir_path=os.path.join(src_folder,category)
ifnotos.path.exists(new_dir_path):
os.mkdir(new_dir_path)
#如果文件名中包含当前分类依据,就将该文件移动到新子目录中