Pet-GPT 是一个使用 PyQt 编写的桌面宠物程序,支持调用 OpenAI 的 GPT 进行上下文对话,然后主动找你聊天!
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) |
…… | …… |
-
在 OpenAI 上注册账号,并获取 API 密钥。
在浏览器中打开 https://beta.openai.com/signup/,填写相关信息注册 OpenAI 账号,并获取 API 密钥。
-
克隆或下载本项目。
- 点击绿色的“Code”按钮,选择“Download ZIP”
- 使用git命令
git clone https://github.com/Hanzoe/petgpt.git
下载。
-
将
config.ini
修改为config_private.ini
,并且修改参数"OPENAI_API_KEY"、"LLM_MODEL"。- 有代理的话,一定要修改自己的代理地址
-
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管控,可以让您的隐私信息更加安全。) -
安装依赖包
conda create --name petgpt python=3.9 conda activate petgpt pip install -r requirements.txt
-
运行
main.py
。python main.py
-
也可以修改本地的PetGPT.bat脚本,之后直接双击运行
@echo off call conda activate petgpt(这个改成自己的虚拟环境名字) python main.py pause
-
无互动状态下,宠物自由移动、对话
-
右键支持跳转学术优化 项目地址:https://github.com/binary-husky/chatgpt_academic
- 在chatdialog.py文件找到初始化函数 image.png
- 按照模板添加槽
- 定义函数 image.png
- 在chatdialog.py文件找到初始化函数
- self.custom_dropdown image.png
- 去self.full_slot中定义该选项
To do
- 优化界面
- 增加一些互动效果
- 聊天界面的语音输入输出
- 聊天界面的图片生成
- 不定时的请求对话:要先请求到gpt,再请求到本地(重要)
- 喂食?
- 好感度?
- 跨设备平台?(重要)
- 扮演角色类使用专门的命令调用,节省页面空间
- 快捷键调用对话框
- 代码显示
- 公式显示
- 实现宠物的互动
- 热插件-论文阅读
- 滑动条改变图像大小
- live2D展示
- 移动动态图
- 增加其他项目接口(学术优化),转移开发重心
Done
- 左侧加入插件栏
- 数据过大时的分批请求
- 请求太频繁,需要做限制
- 热插件-python编译器
- 聊天界面的角色扮演
- 解决输入框不能回车的问题
- 解决解析文本框的代码
- 支持gif
- 支持改大小
- 修改读取方式,支持中文
- 按下esc时,程序崩溃
- random_chat开启时,会阻碍打字
- 打开聊天框时,宠物隐藏;关闭时,宠物出现
- 保存对话记录,实现联系上下文进行对话
- 上下文对话
- 通过设置修改宠物的移动、和主动发问
- 完成无记忆的一次性对话
- 完成整个框架(展示,基本聊天)
一个人也许走的很快,但是一群人可以走得更远!
- https://github.com/f/awesome-chatgpt-prompts(获取prompts命令)
- https://github.com/tommyli3318/desktop-pet(想做桌面宠物版的)
- https://github.com/binary-husky/chatgpt_academic(曾经在这上面做插件奉献,从而得到灵感)
- https://gitee.com/fg_slash/yuanshen-desktoppet#https://gitee.com/link?target=https%3A%2F%2Fpan.baidu.com%2Fs%2F1AuUjMnYgNScTla7yQA19Og(参考了gif图)
此项目仅供个人学习,禁止商用或者其他非法用途