这篇文章教你怎么不懂技术也可以搭建自己的chatGPT,内容都是一个字一个字的手打的,可能要错别字,需要技术支持私信老王。
提供本文你可以学到:
1、如何挑选、购买自己的服务器
2、如何注册自己的域名
3、如何安装服务器的软件环境和数据库
4、如何把域名和服务器进行绑定
5、如何把chatGPT源码放在网站上。
第一:如何挑选、购买自己的服务器
1.去各个大的云厂商,比如慈云数据,阿里云,腾讯云注册账户
2.一般新用户便宜,找新人优惠的活动,一般在网站里面找。

3.选中地区和服务器系统。
服务器区域选择:这个玩意需要国外环境比较稳定,一般除了大陆的和香港的,哪个离我们国家近,选哪个。比如:新加坡,日本。
服务器配置选择:2核心2G足够,不用太大,哪天不够用了,可以升级。系统选择centos7.x 其中x代表小版本号,任意都可以。然后直接购买即可。
第二:如何注册自己的域名
和上面一样的网站,注册一个域名,在腾讯云上面买一个也是可以的
找”域名注册“ 输入自己的名字拼音或者喜欢的英文字母,随你的喜好,然后查询。已注册的不能再注册了,后缀优先级是 com >cn >http://com.cn >cc其他真没啥好比的了,主要是你喜欢就行。

中间会让你填写域名的持有者信息,就是你身份证上的,对着填写就行。然后付费,域名购买成功。
注意:后面会有域名的实名认证,需要身份证。
第三:如何安装服务器的软件环境和数据库
有个神器叫“宝塔”,直接在他们官网直接可以安装,需要用到连接服务器的工具是Xshell和xftp, 去他们官网下载即可。

安装完毕可以直接登录宝塔,就是管理服务器的一个软件。

先登录进去。
第四:如何把域名和服务器进行绑定
登录你的域名注册网站,找到我的域名,点击后面的解析:

比如我的域名是https://6om.net/,我想做一个网站使用域名test.6om.net 我这样解析:

先点击添加记录,
记录类型是A记录
主机记录是域名前的几个字母. 比如我的是test, 一般是www
记录值是服务器 公网 IP. 一定不是192.168开头的
切换到宝塔这边,前面已经登录进来了,进来后左侧的“网站”,点击进来添加网站,如下图:

然后保存即可。上面是实例,下面这个图是我实际配置的https://6om.net的配置:

到这一步,就可以用浏览器打开域名了。
正常情况下会是这样的:

第五:如何把chatGPT源码放在网站上。
1、开源项目地址:https://github.com/dirk1983/chatgpt
直接下载压缩包就行,要是你打不开,找我发给你。
wx+我:Y85136926
2、进入宝塔,找到刚刚创建的网站。点击网站目录下面的字幕,一般是wwwroot开头的。

3、上传你刚刚下载的压缩包,并解压(上传完成后可以直接解压)
编辑
切换为居中
添加图片注释,不超过 140 字(可选)
4、解压的文件夹,进去,把所有文件剪贴出来,放到带压缩包的目录。
编辑
切换为居中
添加图片注释,不超过 140 字(可选)
剪贴后是这样的:
然后到了这一步,刷新你网站的首页,我演示的是ChatGPT个人专用版.就变成了这个样子:

到这一步,我们离成功只有一步之遥,去openai 官网,登录你的账户,创建你的key, 是一串【sk-xxx】开头的字符串,复制下来,写入到我们系统中就可以啦:
在网站目录找这个文件【stream.php】,双击编辑
在这里插入图片描述
然后找到第8行:

左上角保存,点击完事!!!!
此时打开你的网站,开始爽歪歪吧!

最后说明:
1、如果你的服务器是国内的,需要一个反代。
2、如果你想卖账户,接下来我给你说怎么整。
3、如果你不想花大钱买服务器,我们这几个哥们合租一个服务器,共同分担费用。
4、如果你需要技术支持,联系我。我只希望你帮我转发一下
所以我开始关注ruby,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出
给定以下方法:defsome_method:valueend以下语句按我的预期工作:some_method||:other#=>:valuex=some_method||:other#=>:value但是下面语句的行为让我感到困惑:some_method=some_method||:other#=>:other它按预期创建了一个名为some_method的局部变量,随后对some_method的调用返回该局部变量的值。但为什么它分配:other而不是:value呢?我知道这可能不是一件明智的事情,并且可以看出它可能有多么模棱两可,但我认为应该在考虑作业之前评估作业的右侧...我已经在R
我在我的Rails3示例应用程序上使用CarrierWave。我想验证远程位置上传,因此当用户提交无效URL(空白或非图像)时,我不会收到标准错误异常:CarrierWave::DownloadErrorinImageController#createtryingtodownloadafilewhichisnotservedoverHTTP这是我的模型:classPaintingtrue,:length=>{:minimum=>5,:maximum=>100}validates:image,:presence=>trueend这是我的Controller:classPaintingsC
英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
我正在研究使用EventMachine支持的twitter-streamrubygem来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法? 最佳答案 您可以通过使用周期性计时器并打印出耗时来确定延迟。如果您使用的是1秒的计时器,您应该已经过了大约1秒,如果它更长,您就知道您正在减慢react器的速度。@last=Time.now.to_fEM.add_periodic_timer(1)doputs"LATENCY:#{Time.now.to_f-@last}"@
啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组
是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T