chatGPT真香,本地免费支持GPTs无需充值不用API

chatGPT真香,本地免费支持GPTs无需充值不用API

xuliyaoPro 过期程序员

Pandora 作者的 GitHub仓库,项目不再维护,然而又推出了新项目,我们打开书本学习下;

本篇文章给大家介绍一个新项目:PandoraNext,继承了 Pandora 项目的所有功能。

一、简单介绍

  • 支持GPTs,最新UI。

  • 支持多种登录方式:(相当于Pandora Cloud)

    • 账号/密码

    • Access Token

    • Session Token

    • Refresh Token

    • Share Token

  • 可内置tokens(可使用上述所有Token),支持设置密码。(相当于Pandora Server)

  • 可配置共享的tokens,会有一个功能等同chat-shared3.zhile.io的共享站

  • 为全代理模式,你的用户只需要跟你的部署网络能通即可。

  • 可启动为BackendAPI Proxy模式,直接使用Access Token调用/backend-api/的接口。

二、准备工作

1.已有chatGPT账号

2.已安装Docker

3.已有GitHub账号(获取授权用)

你的GitHub账号至少得注册一年以上才能获取License,每多一年则增加1000条对话次数

在浏览器中打开网站进行授权,登录成功,点击Authorize pandora-next,获取License Id:https://dash.pandoranext.com

三、部署方式

3.1、手动部署

从官网拉取项目,可能需要魔法才能下载,这边我推荐Docker部署,尽量减少障碍步骤。

3.2、Docker部署

在cmd中用以下命令拉取项目:

1
docker pull pengzhile/pandora-next

打开Docker,运行PandoraNext,输入参数,点击Run

Logs TAB中会报错:license_id is required in config.json
Files TAB中配置license_id:/data/Config.json 右键 Edit File,将之前获取到的授权ID copy 进去,点击右侧保存。

四、顺畅使用

Docker运行项目成功后,用配置的域名打开你的网站如下(教程用的本地地址)localhost:8181
然后使用:账号/密码 、Access Token 等方式登陆。

Access Token 过期使用下面链接获取最新值
点击链接:https://chat.openai.com/api/auth/session

登录成功,同步官方大聪明对话内容。

Explore中可以看到GPTs各类插件了

五、辅助扩展

config 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"bind": "127.0.0.1:8181",
"tls": {
"enabled": false,
"cert_file": "",
"key_file": ""
},
"timeout": 600,
"proxy_url": "",
"license_id": "",
"public_share": false,
"site_password": "",
"setup_password": "",
"server_tokens": true,
"server_mode": "web",
"proxy_api_prefix": "",
"isolated_conv_title": "*",
"captcha": {
"provider": "",
"site_key": "",
"site_secret": "",
"site_login": false,
"setup_login": false,
"oai_username": false,
"oai_password": false
},
"whitelist": null
}
  • bind指定绑定IP和端口,在docker内,IP只能用0.0.0.0,否则映射不出来。

  • 如果你不打算套nginx等反代,bind参数的IP请使用0.0.0.0!!!

  • tls配置PandoraNext直接以https启动。

    • enabled 是否启用,truefalse。启用时必须配置证书和密钥文件路径。

    • cert_file 证书文件路径。

    • key_file 密钥文件路径。

  • timeout是请求的超时时间,单位为

  • proxy_url指定部署服务流量走代理,如:http://127.0.0.1:8888socks5://127.0.0.1:7980

  • license_id指定你的License Id,可以在这里获取

  • public_share对于GPT中创建的对话分享,是否需要登录才能查看。为true则无需登录即可查看。

  • site_password设置整站密码,需要先输入这个密码,正确才能进行后续步骤。充分保障私密性。

  • setup_password定义一个设置密码,用于调用/setup/开头的设置接口,为空则不可调用。

  • server_tokens设置是否在响应头中显示版本号,true显示,false则不显示。

  • server_mode默认为web模式,新增proxy模式,可以将你部署的服务当作一个ChatGPT接口反代使用。会话额度消耗为4倍,无并发限制。

  • proxy_api_prefix可以给你的proxy模式接口地址添加前缀,让人意想不到。注意设置的字符应该是url中允许的字符。

  • isolated_conv_title现在隔离会话可以设置标题了,而不再是千篇一律的*号。

  • captcha配置一些关键页面的验证码。

    • provider验证码提供商,支持:recaptcha_v2recaptcha_ent``erpr``isehcaptchat``urnstilefriendly_captcha

    • site_key验证码供应商后台获取的网站参数,是可以公布的信息。

    • site_secret验证码供应商后台获取的秘密参数,不要公布出来。有些供应商也称作API Key

    • site_login是否在全站密码登录界面显示验证码,truefalse

    • setup_login是否在设置入口登录界面显示验证码,truefalse

    • oai_username是否输入用户名界面显示验证码,truefalse

    • oai_password是否在输入登录密码界面显示验证码,truefalse

  • whitelist邮箱数组指定哪些用户可以登录使用,用户名/密码登录受限制,各种Token登录受限。内置tokens不受限。

  • whitelistnull则不限制,为空数组[]则限制所有账号,内置tokens不受限。

  • 一个whitelist的例子:"whitelist": ["[email protected]", "[email protected]"]

tokens 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"test-1": {
"token": "access token / session token / refresh token",
"shared": true,
"show_user_info": false
},
"test-2": {
"token": "access token / session token / refresh token",
"shared": true,
"show_user_info": true,
"plus": true
},
"test2": {
"token": "access token / session token / refresh token / share token",
"password": "12345"
}
}
  • token支持示例文件中所写的所有类型。session tokenrefresh token可自动刷新。

  • 每个key被称为token key,可在登录框作用户名输入。如上:test-1test-2等,随意更改。

  • 如果设置了password则输入完token key进入输入密码页面输入匹配。

  • 如果设置sharedtrue,则这个账号会出现在/shared.html中,登录页面会出现它的链接。

  • 如果设置sharedtrue,则这个账号不能再在用户名登录框进行登录。

  • /shared.html中的账号和共享站功能相同,可以自行设置隔离密码进行会话隔离。

  • plus用来标识/shared.html上账号是否有金光,没有其他作用。

  • show_user_info表示/shared.html共享时是否显示账号邮箱信息,GPTs建议开启。

设置界面

  • 必须先在config.json中设置setup_password为非空!

  • 浏览器打开:<Base URL>/setup,其中<Base URL>是你部署服务的地址。

其他

1
2
3
Docker 部署命令
docker pull pengzhile/pandora-next
docker run -d --restart always --name PandoraNext --net=bridge -p 8181:8181 -e PANDORA_NEXT_LICENSE="JWT Token" pengzhile/pandora-next
1
2
3
4
5
6
License Id: Vn3PiGDNtXBRzAmBqY9KHXgiFV7DOmnr1o2n1Rk7w6I

在需要授权的服务器上,执行以下命令手动获取授权(已不推荐):
curl -fLO "https://dash.pandoranext.com/data/Vn3PiGDNtXBRzAmBqYgKHXgiFV7DOmnr1o2n1Rk7w6I/license.jwt"
或者
curl -fL "https://dash.pandoranext.com/data/Vn3PiGDNtXBRzAmBqYgKHXgiFV7DOmnr1o2n1Rk7w6I/license.jwt" > license.jwt

PandoraNext GitHub地址:https://github.com/pandora-next/deploy
PandoraNext 文档:https://fakeopen.org
PandoraNext的一个Token管理工具:https://github.com/Yanyutin753/PandoraNext-TokensTool

  • 标题: chatGPT真香,本地免费支持GPTs无需充值不用API
  • 作者: xuliyaoPro
  • 创建于 : 2023-11-30 00:00:00
  • 更新于 : 2023-11-30 00:00:00
  • 链接: https://chinapmcc.com/2023/11/30/AI人工智能/chatGPT真香,本地免费支持GPTs无需充值不用API/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论