DesktopPetByAi

v2.1.7 发行版发布

DesktopPetByAi

这是一个智能桌面宠物,你可以与他对话,他也可以帮你处理打开软件等更多功能

AI智能对话
支持智谱AI、OpenAI及本地模型
插件系统
支持Skill技能和Py插件扩展
MCP支持
可配置SSE类型MCP服务器
开源免费
基于Apache2.0许可证

向下滚动了解更多

项目介绍

项目概述

由于人们对电脑的过度依赖,长时间的办公导致无聊和孤独,结合AI的快速发展,我们开发了DesktopPetByAi —— 一个集视觉陪伴与智能交互于一体的桌面宠物。

核心价值

DesktopPetByAi 不仅是一个可爱的桌面宠物,更是您的智能伙伴。您可以通过自然语言与它对话,它能够调用各种工具(如搜索、天气、票务),甚至可以打开软件、执行系统命令。它支持智谱AI、OpenAI API以及本地部署的大模型,保护您的隐私。

使用前须知

使用前需要在系统托盘设置中配置AI密钥(支持智谱AI免费模型)。项目目前可能存在一些问题,欢迎反馈。

主要特点

  • 智能对话交流,支持智谱AI、OpenAI及本地模型
  • 插件系统:Skill技能(提示词模板)和Py插件(可编程工具)
  • MCP服务器支持(SSE类型),扩展更多工具
  • 宠物互动:喂食、状态(饥饿/水分)、动态表情、右键菜单
  • 开源免费,支持二次开发(自定义食物、GIF动画)
项目结构

文件结构

清晰的项目目录结构,便于理解和使用

核心文件

main.py 入口文件
程序入口,负责初始化GUI与核心逻辑
settingwindow.py 界面模块
设置窗口界面及逻辑,支持配置AI Key、MCP服务器、GIF选择等
zhipu.py AI模块
智谱AI接口封装,实现AI对话功能
demo_setting.json 配置文件
全局配置文件,存储AI Key等设置
mcp_config.json MCP配置
MCP服务器配置文件(配置后生成)
prompt.txt 提示词
存放系统提示词
DesktopPetByAi.exe 可执行文件
编译后的Windows程序

主要目录

plugins/ 插件目录
存放Py插件(Python脚本,需实现register())
yyskills/ 技能目录
存放Skill技能文件(.md),以及skill_list.json
outfood/ 食物图片
自定义食物图片存放位置
ai_memory/ 记忆存储
AI对话历史记录(JSON文件)
gif/ 动画资源
宠物动画文件夹(如“猫/”),可自定义添加
ico/ 图标资源
应用图标文件
imgs/ 表情包
聊天时使用的表情图片
log/ 日志目录
运行时生成的日志文件
demo/ 工具示例
包含bingsearch_mcp.py等示例工具

重要注意事项

  • AI对话历史存储在ai_memory/目录下的JSON文件中,删除该文件可清除记忆
  • 不可删除demo_setting.jsonSKILL.md,否则可能导致程序异常
  • 保存AI Key时需确保程序对当前目录有写入权限,否则会提示保存失败
  • 插件开发必须包含register()函数,并返回可调用对象
核心功能

功能模块详解

深入了解DesktopPetByAi的各项核心功能模块

AI交互系统

智谱AI、OpenAI API及本地模型集成

AI密钥管理

  • 通过设置窗口配置API Key和URL(如智谱AI:https://open.bigmodel.cn/api/paas/v4/)
  • 支持免费模型:glm-4.6v-flash, glm-4.7-flash, glm-4-Flash-250414等
  • 配置保存到demo_setting.json,重启生效

对话与记忆系统

  • 通过zhipu.py封装AI接口,支持自然语言交互
  • 对话历史存储在ai_memory/,实现上下文记忆
  • 重置记忆:删除ai_memory/下的JSON文件

插件系统

Skill技能与Py插件,无限扩展可能

Skill技能

  • .md文件存储的提示词模板,位于yyskills/目录
  • 技能列表skill_list.json动态加载,减少AI记忆占用
  • 当AI调用工具时,相关技能被临时注入记忆,用后即焚
  • 参考SKILL.md设计新技能(包含描述、格式、示例、注意事项)

Py插件

  • Python编写的可扩展工具,放置在plugins/目录
  • 必须实现register()函数,返回可调用对象
  • 通过GUI注册插件信息(名称、描述、参数等)
  • 注意:插件功能目前处于验证阶段,使用需谨慎

宠物交互

喂食、状态、动画,让宠物活起来

喂食系统

右键宠物可查看饥饿度和水分,鼠标悬停食谱显示可用食物。点击餐盘进入喂食文件夹,将食物图片拖到宠物身上即可喂食。

自定义食物:使用food_editor.py编辑,图片放入outfood/

GIF动画

宠物有丰富的动态表情,可在设置中切换不同动画组。自定义动画:在gif/下新建文件夹放入GIF图片即可。

随机语句

宠物有时会显示小语句,增加趣味性。

MCP服务器支持

通过SSE协议扩展外部工具

配置步骤

  1. 在设置界面找到“MCP服务器配置”区域
  2. 点击“添加服务器”,输入服务器名称和URL(类型选择sse)
  3. 保存后,可在列表中启用/禁用
  4. AI会根据名称自动调用对应的MCP工具

获取MCP

可前往魔塔社区注册并获取MCP服务器信息。

目前仅支持SSE类型的MCP服务器。

桌面工具集成

内置多种实用工具,并支持扩展

Bing搜索

调用Bing搜索接口获取实时信息

地理编码

经纬度转地址(格式: 经度,纬度)

12306票务

查询车票、初始化会话等

桌面工具集成

网络搜索工具:调用Bing搜索接口获取实时信息,支持指定返回结果数量
地理编码工具:提供逆地理编码(经纬度转地址)能力,需遵循"经度,纬度"格式
12306票务工具:集成12306客户端能力,支持初始化会话、查询车票等

GUI界面与设置

个性化:背景图片、透明度、亮度、字体设置
高级配置:AI角色设定、MCP服务器管理、GIF动画切换
帮助关于:显示软件版本、许可证等信息

扩展与二次开发

新增工具:参照demo/目录示例,实现Py插件并注册
界面定制:替换资源文件或修改settingwindow.py调整界面
AI模型切换:修改AI接口适配其他支持的AI模型
视觉展示

产品演示

通过图片和视频展示DesktopPetByAi的实际运行效果和核心界面

视频演示

观看DesktopPetByAi的实际操作演示视频

完整功能演示

展示AI对话、工具调用和宠物互动等核心功能

0:00 / 2:30

界面截图展示

DesktopPetByAi的核心用户界面

聊天界面

聊天界面

支持文本、图片、表情包,可开关音频回复

设置界面

设置界面

配置AI密钥、MCP服务器、GIF动画、角色设定等

系统集成

与操作系统的无缝集成体验

系统托盘

系统托盘集成

最小化到系统托盘,右键菜单快速访问聊天、设置、退出等

宠物动画

宠物动画效果

丰富的动画效果,支持自定义GIF组

快速开始

安装与使用指南

详细的使用流程与注意事项

下载安装

1

获取AI Key

注册智谱AI开放平台,创建应用获取API Key(免费模型可用)

2

下载安装包

访问 安装页面GitHub Releases 获取最新EXE安装包

3

配置与使用

启动程序后通过系统托盘打开设置窗口,配置AI Key和URL(如 https://open.bigmodel.cn/api/paas/v4/),保存重启生效

源码安装

1. 克隆仓库

$ git clone https://github.com/cjz-wr/DesktopPetByAi.git

2. 进入项目目录

$ cd DesktopPetByAi

3. 安装依赖包

$ pip install -r requirements.txt

4. 运行应用

$ python main.py

AI配置详细步骤(以智谱AI为例)

1

获取API Key

访问智谱AI开放平台,注册并登录,在控制台创建API Key,复制保存。

2

打开设置

在系统托盘找到DesktopPetByAi图标,右键 → 更多 → 设置。

3

填写配置

在“AI配置”标签页,粘贴API Key到对应输入框,URL填写 https://open.bigmodel.cn/api/paas/v4/,模型选择例如 glm-4-flash(免费模型)。

4

保存并重启

点击“保存接口配置”,然后重启程序使配置生效。

其他支持的免费模型:glm-4.6v-flash(图像识别)、glm-4.7-flash、glm-4-Flash-250414等。

技术栈与实现细节

GUI框架

Qt(PyQt6)

AI交互

智谱AI API
OpenAI API

插件系统

Skill + Py插件

数据存储

JSON本地存储

社区参与

贡献指南

欢迎任何形式的贡献!无论是报告bug、提出新功能建议,还是提交代码改进

提交贡献

  • 1

    Fork 本仓库

    GitHub仓库 点击Fork

  • 2

    创建特性分支

    git checkout -b feature/amazing-feature

  • 3

    提交修改

    git commit -m 'Add some feature'

  • 4

    推送到分支

    git push origin feature/amazing-feature

  • 5

    开启Pull Request

    在GitHub上提交PR,我们会尽快审核

报告问题

  • 提供详细的问题描述

    清晰描述遇到的问题

  • 说明复现步骤和预期行为

    详细说明如何复现问题

  • 提供相关的错误信息或截图

    包含错误日志或屏幕截图

  • 说明您使用的操作系统和版本

    如Windows 10, macOS 12等

  • 在GitHub Issues中提交报告

    访问 Issues页面 提交问题

感谢您的贡献!

您的每一次贡献,无论是代码、文档还是反馈,都让这个项目变得更好。我们欢迎所有形式的参与!

QQ交流群:1082360650