/Pet-GPT

Pet-GPT 是一个使用 PyQt 编写的桌面宠物程序,支持调用 OpenAI 的 GPT 进行上下文对话,然后主动找你聊天!

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Pet-GPT

Language

Pet-GPT 是一个使用 PyQt 编写的桌面宠物程序,支持调用 OpenAI 的 GPT 进行上下文对话,然后主动找你聊天!

dog cat basheng

bilibili连接 https://www.bilibili.com/video/BV1xM4y1y7e7/?vd_source=0256cdccbe38c132828c06c0c3d6dd4f

特点

  • 一个简单的桌面小宠物,支持自定义图像和昵称
  • 支持自由移动和随机主动发问(通过gpt)等多种设置
  • 使用 OpenAI GPT 进行上下文的单词对话
  • 支持聊天界面的自定义插件热更新
  • 能延续QQ宠物的梦

目前的功能

功能 描述
主动对话v1 使用模板随机发起对话,不再被动聊天(下一版本,先向gpt获取对话内容,再主动对话,更生动)
英文润色 修改源语言为专业的英语
python解释器 模拟python,直接执行命令
自定义插件 支持开发设计自己的插件
配置代理服务器 支持配置代理服务器
模块化设计 支持自定义高阶的实验性功能与相关代码
更换宠物图像 选择自己喜欢的图像作为展示(虚拟人物、动物都OK)
自定义快捷键 通过自定义快捷键,直接调出对话框
右键学术优化 通过右键直接调用学术优化(https://github.com/binary-husky/chatgpt_academic)
…… ……

安装与运行

  1. 在 OpenAI 上注册账号,并获取 API 密钥。

    在浏览器中打开 https://beta.openai.com/signup/,填写相关信息注册 OpenAI 账号,并获取 API 密钥。

  2. 克隆或下载本项目。

    • 点击绿色的“Code”按钮,选择“Download ZIP”
    • 使用git命令git clone https://github.com/Hanzoe/petgpt.git下载。
  3. config.ini修改为config_private.ini ,并且修改参数"OPENAI_API_KEY"、"LLM_MODEL"。

    • 有代理的话,一定要修改自己的代理地址
  4. chatgpt-学术优化相关的配置

    • 配置API_KEY和代理设置
    • config.py中,配置 海外Proxy 和 OpenAI API KEY,说明如下
    1. 如果你在国内,需要设置海外代理才能够顺利使用 OpenAI API,设置方法请仔细阅读config.py(1.修改其中的USE_PROXY为True; 2.按照说明修改其中的proxies)。
    2. 配置 OpenAI API KEY。你需要在 OpenAI 官网上注册并获取 API KEY。一旦你拿到了 API KEY,在 config.py 文件里配置好即可。
    3. 与代理网络有关的issue(网络超时、代理不起作用)汇总到 https://github.com/binary-husky/chatgpt_academic/issues/1
    

    (P.S. 程序运行时会优先检查是否存在名为config_private.py的私密配置文件,并用其中的配置覆盖config.py的同名配置。因此,如果您能理解我们的配置读取逻辑,我们强烈建议您在config.py旁边创建一个名为config_private.py的新配置文件,并把config.py中的配置转移(复制)到config_private.py中。config_private.py不受git管控,可以让您的隐私信息更加安全。)

  5. 安装依赖包

    conda create --name petgpt python=3.9
    conda activate petgpt
    pip install -r requirements.txt
    
  6. 运行 main.py

    python main.py
    
  7. 也可以修改本地的PetGPT.bat脚本,之后直接双击运行

    @echo off
    call conda activate petgpt(这个改成自己的虚拟环境名字)
    python main.py
    pause
    

使用说明

  • 无互动状态下,宠物自由移动、对话

    image image

  • 右键支持功能:打开聊天框、修改昵称、修改图像、设置移动、对话以及自定义快捷键打开聊天框 image image

  • 互动状态下,可实现基于GPT的聊天以及其他功能 image image

  • 右键支持跳转学术优化 项目地址:https://github.com/binary-husky/chatgpt_academic

    image

自定义插件说明

常规按钮格式

  1. 在chatdialog.py文件找到初始化函数 image.png
  2. 按照模板添加槽
  3. 定义函数 image.png

下拉列表插件格式

  1. 在chatdialog.py文件找到初始化函数
    • self.custom_dropdown image.png
  2. 去self.full_slot中定义该选项

开发日志

To do

  • 优化界面
  • 增加一些互动效果
  • 聊天界面的语音输入输出
  • 聊天界面的图片生成
  • 不定时的请求对话:要先请求到gpt,再请求到本地(重要)
  • 喂食?
  • 好感度?
  • 跨设备平台?(重要)
  • 扮演角色类使用专门的命令调用,节省页面空间
  • 快捷键调用对话框
  • 代码显示
  • 公式显示
  • 实现宠物的互动
  • 热插件-论文阅读
  • 滑动条改变图像大小
  • live2D展示
  • 移动动态图
  • 增加其他项目接口(学术优化),转移开发重心

Done

  • 左侧加入插件栏
  • 数据过大时的分批请求
  • 请求太频繁,需要做限制
  • 热插件-python编译器
  • 聊天界面的角色扮演
  • 解决输入框不能回车的问题
  • 解决解析文本框的代码
  • 支持gif
  • 支持改大小
  • 修改读取方式,支持中文
  • 按下esc时,程序崩溃
  • random_chat开启时,会阻碍打字
  • 打开聊天框时,宠物隐藏;关闭时,宠物出现
  • 保存对话记录,实现联系上下文进行对话
  • 上下文对话
  • 通过设置修改宠物的移动、和主动发问
  • 完成无记忆的一次性对话
  • 完成整个框架(展示,基本聊天)

贡献者

参考

  1. https://github.com/f/awesome-chatgpt-prompts(获取prompts命令)
  2. https://github.com/tommyli3318/desktop-pet(想做桌面宠物版的)
  3. https://github.com/binary-husky/chatgpt_academic(曾经在这上面做插件奉献,从而得到灵感)
  4. https://gitee.com/fg_slash/yuanshen-desktoppet#https://gitee.com/link?target=https%3A%2F%2Fpan.baidu.com%2Fs%2F1AuUjMnYgNScTla7yQA19Og(参考了gif图)

Star History

Star History Chart

免责申明

此项目仅供个人学习,禁止商用或者其他非法用途