后端:
https://github.com/waylaidwanderer/node-chatgpt-api
前端:
https://github.com/waylaidwanderer/PandoraAI
或者百度云
链接:https://pan.baidu.com/s/16qoy62i0jM5T_8gE4UvHhQ?pwd=d0a2
提取码:d0a2
可从此处下载你所需的 node.js 版本:https://www.runoob.com/nodejs/nodejs-install-setup.html
查看安装好的版本:命令行中输入 node -v
npm 是 Node.js 的包管理工具,它可以让你方便地安装和使用别人编写的模块或命令行程序。
如果你已经安装了 Node.js,那么 npm 也已经一起安装好了
在控制台里输入 npm -v 来查看版本。如果输出版本号说明已经成功安装了。如果你想升级npm,可以使用 npm install npm -g 命令
当然后续版本是不支持-g命令的,如果提示
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
请将根据指示将 -g 命令替换为 --location=global 本篇中仍会使用-g作为命令样例
不是必需品,感兴趣的大佬可以自己琢磨然后还请告诉我解决方法喵
进入到node-chatgpt-api-main的根目录,在控制台内输入
npm i @waylaidwanderer/chatgpt-api
或
npm i -g @waylaidwanderer/chatgpt-api
区别:
npm i 是 npm install 的缩写,它是用来安装模块的命令。npm i 将模块安装在当前操作目录下, 安装后的模块会放在 node_modules 文件夹中;
npm i -g 是指将模块进行全局安装,安装后的模块会放在系统目录下,你可以在任何地方直接使用这个模块。
此时会出现的问题

这有可能是因为 npm命令不符合规范 或 下载源问题
npm命令的解决方法即前面-g的修改替换
下载源问题: 需要nrm查看下载源
下载nrm :npm install -g nrm
查看npm下载源:nrm ls
设置下载源:(最好使用npm源或者淘宝源)
例:npm config set registry http://mirrors.cloud.tencent.com/npm/
(这是腾讯云)
或者 nrm use taobao
(这是淘宝源)
查看是否设置成功:npm config get registry


找到node-chatgpt-api-main项目中的根目录下的settings.example.js,将其重命名为 settings.js,并修改以下几处:
openaiApiKey: process.env.OPENAI_API_KEY || ‘’
在单引号中填写你的openai chatgpt api 以供调用
可在此网址获得
https://platform.openai.com/account/api-keys
proxy: ‘’,
在单引号中填写你的代理
可从此网址获得
https://ipapi.co/json/
打开网址后,会看到 ip,network,version 等相关信息, 按 F12 进入开发人员工具-网络-点击第一个 json/,将远程地址(Remote Address)右边复制下来就是了。
【当然还有其他办法可以获得,例如可以根据代理工具的不同灵活变换方法,实用即可】
下面以clash为例来看以下直接查找的方式:

我们直接在主页看到端口
那么代理就是
http://127.0.0.1:7890
cookies: ‘’
此处填写你的一个可以正常使用微软new bing 的账号的 cookie。
获取方式(其一):打开 edge 或者 edge dev 浏览器,进入 bing.com(注意不是 cn.bing.com), 按 F12 进入开发人员工具- 选择网络- 搜索 bing.com -ctr+r 刷新- 点击nosignin -右侧栏一直下滑找到cookie-复制那段很长很长的内容就是了
在node-chatgpt-api-main项目中启动终端,输入npm install
此时会出现的问题 :
下载失败:
下载失败有几种可能的原因:
1、 npm源问题,自己换源
2、 代理流量没有完全从节点走,这里先尝试将代理工具clash切换为全局代理,仍然无效
于是下载Proxifier(其中一种方法)
https://www.nite07.com/download/index.html?f=Proxifier_4.11.7z
下载后解压,此时杀毒软件可能会删除Crack文件夹内的文件

对于自己安装的杀毒软件想办法加入白名单(省流:自己百度解决)
这里只针对Windows自带的windws defender出具解决方案
首先进入windows安全中心中关闭所有可关闭的服务
然后我们发现第一项服务没法关闭只能允许
于是我们按快捷键Win+R,打开运行窗口,输入“regedit”,这样就打开了注册表编辑器

在编辑器左侧依次找到“HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC”
双击右键的RestrictToPermittedSnapins,把它的值设置为0

现在轮家庭版win系统的家人们急了,找不到啊!
你先别急!!!共两个方法,我推荐使用第二个
找不到MMC,这时我们可以新建一个文本文件,然后打开把下面内容复制到记事本里
Windows Registry Editor Version 5.00[Hkey_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionGroup Policy
ObjectsLocalUserSoftwarePoliciesMicrosoftMMC][-Hkey_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionGroup Policy
ObjectsLocalUserSoftwarePoliciesMicrosoftMMC{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}]"Restrict_Run"=dword:00000000
[Hkey_CURRENT_USERSoftwarePoliciesMicrosoftMMC][-Hkey_CURRENT_USERSoftwarePoliciesMicrosoftMMC{8FC0B734-A0E1-11D1-A7D3
-0000F87571E3}]"Restrict_Run"=dword:00000000[Hkey_CURRENT_USERSoftwarePoliciesMicrosoftMMC]
"RestrictToPermittedSnapins"=dword:00000000
复制粘贴以后,把文件的后缀后改为“.reg”,塞到C盘能找到的位置,点击运行就可以找到了
再重启电脑以后再次输入gpedit.msc命令就可以打开组策略了
————————————
如果上述方法还不行,新建一个记事本,然后把下面的内容复制到记事本中
@echo off
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
命名gpedit,把后缀名改为.bat(即gpedit.bat),塞到C盘能找到的位置,右键以管理员身份运行,出现如下图的对话框

等待进度条100%后不用重启电脑,直接按WIN+R,打开运行窗口,输入“gpedit.msc”即可(不行再重启)
——————————————
折腾了这么久,别忘了我们是要关defencer服务的:
注意:在进行更改之前,必须去禁用 Windows 安全中心的篡改保护。
否则,Windows 安全中心可能会再次打开 Windows Defender 防病毒。


按WIN + R ,输入 gpedit.msc
找到计算机配置>管理模板>Windows 组件>Microsoft Defender 防病毒

双击关闭 Microsoft Defender 防病毒策略。
选择已启用,点确定
一般立即生效,少数时候需要重启
——————————
现在打开下载的Proxifier,使用setup程序安装,除了路径没啥要注意的
直到运行出来弹窗后
要你选择31天试用和购买激活码,选择购买激活码
进入填写页面,第一行公司名称随便,第二行要填写Crack文件夹内程序运行后的激活码(被涂掉部分),之后将这个程序点击右下角的exit退出(ui也太费眼睛 )

点击配置稳文件——代理服务器

服务器地址以之前的代理工具地址为例子,比如calsh主页显示你的端口是7890,那么地址address便写127.0.0.1,端口port便是7890,这样默认全局代理情况下任何需要网络连接的应用或者浏览器都是通过我们代理ip访问的。
————————————————————
回到正题(终于~)
继续使用npm install,成功
使用 npm start 或者 npm run server 命令启动服务(这是PandoraAI 的必要前置条件)
要在命令行中进行聊天,则可使用 chatgpt-cli 或者 npm run cli 命令。前者是全局,包在系统目录,后者是本地,包在当前项目的 node_modules 文件夹下,一般我们选择本地。(二者都可以正常运行)
注意:默认 cli 模式下的聊天对象是 chatgpt,如果你想通过 cli 模式和 new bing 聊天,你需要在setting.js 中改变第 101 行:
clientToUse: ‘bing’,
也就是把前面的//去掉。
同样可以自行按照网址readme.md 内容进行部署】
1、安装依赖项(记得把命令行路径切到开源文件哦)
依照命令工具的不同,有三种方式进行安装,我用的第二种:
①yarn 命令 yarn install
②npm 命令 npm install
③pnpm 命令 pnpm install
2、在根目录下找到 .env.example 文件并更名为 .env 文件,这时回到 node-chatgpt-api 的
setting.js 文件,找到第67 行最右边的那个数字(默认应该是3000),将其修改为其他数字,比如4000, 然后打开.env 文件,将里面的数字改成你刚刚修改的那个数字,这里是 4000。就可以啦。
(不改也行,但是3000容易被占用,那你没法把它加入收藏夹,使用会变端口)
3、启动服务
命令行输入 npm run dev
然后页面会出现 Local: http://…
复制这个网址进入浏览器即可,你就可以使用PandoraAI 咯

点击聊天框旁边的图标可以切换聊天对象,并可以进行相关设置(如正常模式还是越狱模式, 当然越狱模式有封号风险)
首先要特别特别特别感谢两位大佬(找不到他们csdn主页了):
@大道至简 @Shinohara Haruna酱
他们不仅是我生活中的伙伴,还是我学习道路上的导师,非常感激他们对我不止这一次的无偿指导。
没有他们我一个人可能要花费数倍甚至十倍的时间去处理这些简单但对我来说并不简单的问题QAQ
本人是个编程菜鸟,如果有关于这篇博客或者其他相关技术的问题,请随时留言给我一起交流。
如果你一直看到这里,请给我点个免费的赞吧,这对我一定很重要 (≧∇≦)ノ

类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案
Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答
我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是