Pages

Saturday, 1 July 2023

用Pandora搭建ChatGPT环境


Pandora简介

Pandora不愧是这三个月以来最为突出的项目之一,它完美解决了ChatGPT使用中经常遇到的种种问题,而且部署是相当简单,方便。

项目地址:https://github.com/pengzhile/pandora

Pandora能做什么

一、本地部署ChatGPT,Pandora绕过 Cloudflare,可以把ChatGPT部署在自己的电脑上,使用127.0.0.1即可使用官方的GPT(仅需登陆一次,即可正常使用14天左右);

二、服务器部署ChatGPT,我们可以使用同样的方法,将Pandora程序安装在vps上,甚至可以使用自己的域名,无需科学上网即可使用,不必担心IP问题;

三、我们可以使用Pandora,用多种方式使用GPT,例如命令行模式,web模式,其中web页面使用方法与官网一致,还能保存记录,非常完美。
Pandora部署方法

一、部署在本地电脑上

无论是windows、macOS或者linux系统,都可以用三个步骤把Pandora部署到本地:

1、安装docker并启动,到https://www.docker.com/get-started下载docker;安装后启动;

2、命令行执行:

docker pull pengzhile/pandora
docker run  -e PANDORA_CLOUD=cloud -e PANDORA_SERVER=0.0.0.0:8899 -p 8899:8899 -d pengzhile/pandora

3、本地浏览器访问 127.0.0.1:8899 即可访问,直接登陆或者使用Access Token,然后就能够正常的使用GPT了。

截屏2023-05-28 11.22.28

4、作者给出的获得Access Token的地址:http://chat.openai.com/api/auth/session

二、部署在vps上

强调:在vps部署Pandora请使用国外主机,这样无论是电脑还是手机都可以使用GPT了,我推荐:https://bbs.csdn.net/topics/610404063

1、安装docker环境(ubuntu系统)

apt update && apt install docker.io -y

2、拉取镜像

docker pull pengzhile/pandora

3、启动容器

(1)命令行模式:

docker run -it --rm pengzhile/pandora

(2)web模式


docker run  -e PANDORA_CLOUD=cloud -e PANDORA_SERVER=0.0.0.0:8899 -p 8899:8899 -d pengzhile/pandora

三、绑定域名的方法

1、如果你使用的是nginx,编辑配置文件

vim /etc/nginx/nginx.conf

将其内容替换为:

events {}

http {
    server {
        listen 80;
        server_name fboth.pp.ua;

        location / {
            proxy_pass http://127.0.0.1:8899;
        }
    }
}

如果你想用caddy,编辑 /etc/caddy/Caddyfile

xx.com  #这里是你解析的域名
encode gzip
reverse_proxy 127.0.0.1:8899

总结

Pandora不愧是一个优秀的项目,除了docker安装,还可以pip,解决了GPT使用上的诸多问题,而且速度比官网还快,值得点赞!

-------------------------------------

目录

如何运行

  • Python版本目测起码要3.7

  • pip安装运行

    pip install pandora-chatgpt
    pandora
  • 如果你想支持gpt-3.5-turbo模式:

    pip install 'pandora-chatgpt[api]'
    // 或者
    pip install pandora-chatgpt[api]
    pandora
  • 如果你想启用cloud模式:

    pip install 'pandora-chatgpt[cloud]'
    // 或者
    pip install pandora-chatgpt[cloud]
    pandora-cloud

    编译运行

    pip install .
    pandora
  • 如果你想支持gpt-3.5-turbo模式:

    pip install '.[api]'
    // 或者
    pip install .[api]
    pandora
  • 如果你想启用cloud模式:

    pip install '.[cloud]'
    // 或者
    pip install .[cloud]
    pandora-cloud

    Docker Hub运行

    docker pull pengzhile/pandora
    docker run -it --rm pengzhile/pandora

    Docker编译运行

    docker build -t pandora .
    docker run -it --rm pandora
    • Serverless部署见项目:pandora-cloud-serverless

    • 输入用户名密码登录即可,登录密码理论上不显示出来,莫慌。

    • 简单而粗暴,不失优雅。

    程序参数

    • 可通过 pandora --help 查看。
    • -p--proxy 指定代理,格式:protocol://user:pass@ip:port
    • -t--token_file 指定一个存放Access Token的文件,使用Access Token登录。
    • -s--serverhttp服务方式启动,格式:ip:port
    • -a--api 使用gpt-3.5-turboAPI请求,你可能需要向OpenAI支付费用
    • --tokens_file 指定一个存放多Access Token的文件,内容为{"key": "token"}的形式。
    • --threads 指定服务启动的线程数,默认为 8,Cloud模式为 4
    • --sentry 启用sentry框架来发送错误报告供作者查错,敏感信息不会被发送
    • -v--verbose 显示调试信息,且出错时打印异常堆栈信息,供查错使用。

    Docker环境变量

    • PANDORA_ACCESS_TOKEN 指定Access Token字符串。
    • PANDORA_TOKENS_FILE 指定一个存放多Access Token的文件路径。
    • PANDORA_PROXY 指定代理,格式:protocol://user:pass@ip:port
    • PANDORA_SERVERhttp服务方式启动,格式:ip:port
    • PANDORA_API 使用gpt-3.5-turboAPI请求,你可能需要向OpenAI支付费用
    • PANDORA_SENTRY 启用sentry框架来发送错误报告供作者查错,敏感信息不会被发送
    • PANDORA_VERBOSE 显示调试信息,且出错时打印异常堆栈信息,供查错使用。
    • PANDORA_THREADS 指定服务启动的线程数,默认为 8,Cloud模式为 4
    • 使用Docker方式,设置环境变量即可,无视上述程序参数

    关于 Access Token

    • 使用Access Token方式登录,可以无代理直连。
    • 这个服务 可以帮你安全有效拿到Access Token,无论是否第三方登录。
    • 其中accessToken字段的那一长串内容即是Access Token
    • Access Token可以复制保存,其有效期目前为14天
    • 不要泄露你的Access Token,使用它可以操纵你的账号。

    HTTP服务文档

    • 如果你以http服务方式启动,现在你可以打开一个极简版的ChatGPT了。通过你指定的http://ip:port来访问。
    • 通过http://ip:port/?token=xxx,传递一个Token的名字,可以切换到对应的Access Token
    • API文档见:doc/HTTP-API.md

    操作命令

    • 对话界面连敲两次Enter发送你的输入给ChatGPT
    • 对话界面使用/?可以打印支持的操作命令。
    • /title 重新设置当前对话的标题。
    • /select 回到选择会话界面。
    • /reload 重新加载当前会话所有内容,F5你能懂吧。
    • /regen 如果对ChatGPT当前回答不满意,可以让它重新回答。
    • /continueChatGPT继续输出回复的剩余部分。
    • /edit 编辑你之前的一个提问。
    • /new 直接开启一个新会话。
    • /del 删除当前会话,回到会话选择界面。
    • /token 打印当前的Access Token,也许你用得上,但不要泄露。
    • /copy 复制ChatGPT上一次回复的内容到剪贴板。
    • /copy_code 复制ChatGPT上一次回复的代码到剪贴板
    • /clear 清屏,应该不用解释。
    • /version 打印Pandora的版本信息。
    • /exit 退出潘多拉

    高阶设置

    • 本部分内容不理解的朋友,请勿擅动!
    • 环境变量 OPENAI_API_PREFIX 可以替换OpenAI Api的前缀https://api.openai.com
    • 环境变量 CHATGPT_API_PREFIX 可以替换ChatGPT Api的前缀https://ai.fakeopen.com
    • 如果你想持久存储DockerPandora产生的数据,你可以挂载宿主机目录至/data
    • 如果你在国内使用pip安装缓慢,可以考虑切换至腾讯的源:pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
    • 镜像同步版本可能不及时,如果出现这种情况建议切换至官方源:pip config set global.index-url https://pypi.org/simple
    • 默认使用sqlite3存储会话数据,如果你希望更换至mysql,可以这么做:
      • 执行pip install PyMySQL安装驱动。
      • 设置环境变量:DATABASE_URI为类似mysql+pymysql://user:pass@localhost/dbname的连接字符串。
    • 环境变量指定OPENAI_EMAIL可以替代登录输入用户名,OPENAI_PASSWORD则可以替代输入密码, OPENAI_MFA_CODE则可以替代输入二次验证。
    • 环境变量API_SYSTEM_PROMPT可以替换api模式下的系统prompt

    Cloud模式

    • 搭建一个跟官方很像的ChatGPT服务,不能说很像,只能说一样。
    • 该模式使用pandora-cloud启动,前提是你如前面所说安装好了。
    • Docker环境变量:PANDORA_CLOUD 启动cloud模式。
    • 该模式参数含义与普通模式相同,可--help查看。

    使用Cloudflare Workers代理

    • 如果你感觉默认的https://ai.fakeopen.com在你那里可能被墙了,可以使用如下方法自行代理。

    • 你需要一个Cloudflare账号,如果没有,可以注册一个。

    • 登录后,点击Workers,然后点击Create a Worker,填入服务名称后点击创建服务

    • 点开你刚才创建的服务,点击快速编辑按钮,贴入下面的代码,然后点击保存并部署

      export default {
        async fetch(request, env) {
          const url = new URL(request.url);
          url.host = 'ai.fakeopen.com';
          return fetch(new Request(url, request))
        }
      }
    • 点击触发器选项卡,可以添加自定义访问域名。

    • 参考高阶设置中的环境变量使用你的服务地址进行替换。

    日抛版代理地址

    • 每日凌晨1点,将会同时生成一个当日子域名,如 ai-20230625.fakeopen.com
    • 子域名使用效果完全等同于 ai.fakeopen.com。至于作用,湖北的你肯定能懂。
    • 可将环境变量替换成子域,如 CHATGPT_API_PREFIX=https://ai-20230625.fakeopen.com

    from https://github.com/pengzhile/pandora/blob/master/doc/wiki.md 

    ---------------------------------------------------------

    (Pandora | FakeGPT (chatGPT加速,用户名与密码登录使用)
    https://chat.zhile.io/

    食用:直接输入chatGPT的用户名与密码登录即可!
    https://github.com/pandora-next/deploy
    https://zhile.io/2023/12/09/pandoranext-introduction.html )

    潘多拉,一个让你呼吸顺畅的ChatGPT。Pandora, a ChatGPT that helps you breathe smoothly.  

    Pandora

    潘多拉实现了网页版 ChatGPT 的主要操作。后端优化,绕过 Cloudflare,速度喜人。

    Python version Issues Commits PyPi Downloads PyPi workflow Docker workflow Discord

    体验地址

    • 点击 https://chat.zhile.io
    • 最新拿 Access Token 的技术原理,我记录在这里了。
    • 可以访问 这里Access Token
    • 也可以官方登录,然后访问 这里Access Token
    • Access Token 有效期 14 天,期间访问不需要梯子。这意味着你在手机上也可随意使用。
    • 这个页面上还包含一个共享账号的链接,没有账号的可以点进去体验一下。

    ChatGPT使用时可能会遇到:

    1. Please stand by, while we are checking your browser...

       动不动来一下,有时候还不动或者出人机验证。痛!

    t0

    2. Access denied. Sorry, you have been blocked

       经典问题,只能到处找可用VPN,费时费力,更费钱。移动端访问更难。痛!

    t1.1

    3. ChatGPT is at capacity right now

       系统负载高,白嫖用户不给用。痛!

    t2

    4. This content may violate our content policy.

       道德审查,多触发几次可能就封号了。痛!!!

    t3

    5. Something went wrong.

       吃着火锅唱着歌,突然就出故障了。痛!

    t4

    6. 手机和电脑的模型不通用,顾这个就顾不到那个,痛!

    t7

    7. 蹦字慢吞吞,卡顿不流畅,不知道的甚至想换电脑。痛!

    8. 想把 ChatGPT 接到其他系统,结果只能接个差强人意的 gpt-3.5-turbo。痛!

    一次看完上面的噩梦,血压上来了,拳头硬了!太痛了!!!以上痛点,Pandora 一次全部解决。

    如何搭建运行

    其他说明

    • 开源项目可以魔改,但请保留原作者信息。确需去除,请联系作者,以免失去技术支持。
    • 项目是站在其他巨人的肩膀上,感谢!
    • 报错、BUG之类的提出Issue,我会修复。
    • 因为之后ChatGPT的API变动,我可能不会跟进修复。
    • 喜欢的可以给颗星,都是老朋友了。
    • 不影响PHP是世界上最好的编程语言!

    from https://github.com/cloud804d/mirrors-pengzhile-pandora

    (https://github.com/Yanyutin753/PandoraNext-TokensTool )

    --------------------------------------------------------------------------

    解锁ChatGPT

    ChatGPT目前封锁了绝大多数的数据中心IP,倘若你现在正好在使用vps作为主力代理,那么应该会在ChatGPT首页看到无法使用的封锁消息!

    如何解决

    方法一:
    使用vps+ChatGPT-web自己搭建GPT网页版,参考GitHub:https://github.com/Chanzhaoyu/chatgpt-web ,
    更容易使用的有:https://github.com/Niek/chatgpt-web 等等!

    方法二:
    就是用warp解锁GPT,说到warp我们并不陌生,早期大家都用它来解锁流媒体服务,现在它又有了新的使命:
    warp是什么
    这里我引用作者的主页内容:https://github.com/fscarmen/warp

    支持 chatGPT,解锁奈飞流媒体
    避免 Google 验证码或是使用 Google 学术搜索
    可调用 IPv4 接口,使青龙和V2P等项目能正常运行
    由于可以双向转输数据,能做对方VPS的跳板和探针,替代 HE tunnelbroker
    能让 IPv6 only VPS 上做的节点支持 Telegram
    IPv6 建的节点能在只支持 IPv4 的 PassWall、ShadowSocksR Plus+ 上使用。

    没看明白?
    你可以理解为给你的服务器添加了原生ipv4或者IPv6,这就简单多了!
    如何使用warp
    网上流行的warp的几个版本包括:
    https://github.com/fscarmen/warp
    https://github.com/P3TERX/warp.sh
    https://gitlab.com/ProjectWARP/warp-go/-/tree/master/
    https://github.com/yonggekkk/warp-yg
    https://gitlab.com/Misaka-blog/warp-script

    这些脚本都可以轻松实现上面的功能,本次我们以 https://github.com/fscarmen/warp 为例进行演示。
    1、首次运行
    wget -N https://raw.githubusercontent.com/fscarmen/warp/main/menu.sh && bash menu.sh [option] [lisence]

    2、再次运行
    warp [option] [lisence]

    3、参数参考github主页,我这里来一个极简演示:
    wget -N https://raw.githubusercontent.com/fscarmen/warp/main/menu.sh && bash menu.sh 4

    写在最后
    OpenAI-检查器项目:https://github.com/missuo/OpenAI-Checker

    一件脚本检查:
    bash <(curl -Ls https://cpp.li/openai)

     

     

    No comments:

    Post a Comment