起初,我对chatGPT没什么感觉,因为对其不是很清楚,所以也不是很感兴趣。
接着,随着朋友、同事和徒弟的耳濡目染,就弄了个账号,在官网上玩一玩,感觉也没啥意思。
再然后,徒弟发给我个截图说,chatGPT可以用来学习,但我还是没动心。
再后来,偶然一次看到群里朋友分享文章,搭建了自己的专属chatGPT服务。
于是,由于“技痒”,当天下班晚上就开始搞,搞到下半夜2点40左右终于成功完成搭建,真的超级开心,哈哈哈.....
chatGPT账号百度一搜这样的文章很多,但是我想说的是,注意时效性,另外现在注册账号,超级困难,而且各种限制,有愿意尝试的同学请自行尝试。
注册成功的截图:
自己可以去买个vpn,多少钱的都有,建议买收费的,稳定且速度快,每月成本10-30元不等,有了梯子,就能上网啦。
搭建好服务后,我们就不用再依赖梯子(VPN)使用chatGPT了,这也是我搭建的一个很重要原因。
这里就用我自己的情况举例讲解,我用的是莱卡云服务器centos7系统。
选择美国,40元/月,月付,支付宝支付即可,值得一提的是,这个网站不需要FQ就能访问的。
使用Xhell登录你的云服务器,开始部署工作。
# 基础环境配置升级
yum groupinstall "Development Tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install -y libffi-devel zlib1g-dev
yum install zlib* -y
# 切换目录
cd /opt
# 下载安装包
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
# 解压并进入源码目录
tar xvzf Python-3.10.4.tgz
cd Python-3.10.4
# 配置
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl –with-openssl-rpath=auto
# 编译并且安装
make -j && make install
# 创建软连接
ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -sf /usr/local/python3/bin/python3 /usr/bin/python3
# 安装docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker --showduplicates | sort -r
sudo yum install docker
sudo systemctl start docker
systemctl enable docker
docker --version
# 安装docker-compose
pip3 install docker-compose
chatgpt-webmkdir ~/chatgpt && cd ~/chatgpt
vim docker-compose.yml
在docker-compose.yml中,添加下面的内容,wq保存!
version: '3'
services:
app:
image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
ports:
- 80:3002 # 80可以改成你喜欢的也行
environment:
# OPENAI_API_KEY和OPENAI_ACCESS_TOKEN 用其中一个就就行
# OPENAI_API_KEY: sk-xxx # 开头的
# 登录chatgpt,在浏览器输入https://chat.openai.com/api/auth/session,就能获取到OPENAI_ACCESS_TOKEN,很长的一段,你没有看错
# OPENAI_ACCESS_TOKEN:
TIMEOUT_MS: 60000
# web页面的验证码
AUTH_SECRET_KEY:
docker-compose up -d
在浏览器打开http://服务器ip:端口号 , 如下所示:
https://www.bilibili.com/video/BV1vs4y1K75J/
到这算是初步完成,使用你的api-key就能使用了。
比较正式的话,建议买个域名,这样就显得很正式了,感兴趣的同学可以动手自行尝试。
友情提示:
有账号注册、账号需求方面想交流的的同学,可以添加我个人微信chandlerman即可,旨在学习相互成长。
我是六哥,如果文章对您有帮助,还请帮忙、转发,我会继续努力的!
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我有一大串格式化数据(例如JSON),我想使用Psychinruby同时保留格式转储到YAML。基本上,我希望JSON使用literalstyle出现在YAML中:---json:|{"page":1,"results":["item","another"],"total_pages":0}但是,当我使用YAML.dump时,它不使用文字样式。我得到这样的东西:---json:!"{\n\"page\":1,\n\"results\":[\n\"item\",\"another\"\n],\n\"total_pages\":0\n}\n"我如何告诉Psych以想要的样式转储标量?解