Skip to main content

A command-line interface to ChatGPT

Project description

Pandora

潘多拉 (Pandora),一个不只是命令行的 ChatGPT。

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

Python version Issues Commits PyPi Downloads PyPi workflow Docker workflow Discord


潘多拉 Pandora

一个不只是命令行的 "ChatGPT"
README in English »

查看Demo · 报告Bug · 提出新特性

目录

为什么要用

  1. 高峰期能绕过官方限制,继续使用。
  2. 应答速度直逼PLUS,白嫖用户的福音。
  3. 官方故障的时候,它可能还是能跑。
  4. 多模式:网页/命令行/API,私有化部署。
  5. 不会像官方那样无故断线、报错。

界面截图

alt Screenshot5 alt Screenshot10

alt Screenshot1 alt Screenshot2 alt Screenshot3 alt Screenshot4 alt Screenshot6 alt Screenshot11

如何运行

  • Python版本目测起码要3.7

  • pip安装运行

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

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

      pip install 'pandora-chatgpt[cloud]'
      pandora-cloud
      
  • 编译运行

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

      pip install '.[api]'
      pandora
      
    • 如果你想启用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
    
  • 输入用户名密码登录即可,登录密码理论上不显示出来,莫慌。

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

程序参数

  • 可通过 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"}的形式。
  • --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 显示调试信息,且出错时打印异常堆栈信息,供查错使用。
  • 使用Docker方式,设置环境变量即可,无视上述程序参数

关于 Access Token

  • 使用Access Token方式登录,可以无代理直连。
  • 这个服务 可以帮你安全有效拿到Access Token,无论是否第三方登录。
  • 其中accessToken字段的那一长串内容即是Access Token
  • Access Token可以复制保存,其有效期目前为1个月
  • 不要泄露你的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则可以替代输入密码。
  • 环境变量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))
      }
    }
    
  • 点击触发器选项卡,可以添加自定义访问域名。

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

其他说明

  • 项目是站在其他巨人的肩膀上,感谢!
  • 报错、BUG之类的提出Issue,我会修复。
  • 因为之后ChatGPT的API变动,我可能不会跟进修复。
  • 喜欢的可以给颗星,都是老朋友了。
  • 不影响PHP是世界上最好的编程语言!

贡献者们

感谢所有让这个项目变得更好的贡献者们!

Star History Chart

Star历史

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Pandora-ChatGPT-1.0.6.tar.gz (1.3 MB view hashes)

Uploaded Source

Built Distribution

Pandora_ChatGPT-1.0.6-py3-none-any.whl (1.4 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page