让LLMs读懂你的桌面活动,时不时发个有趣的桌面消息!
Let LLMs understand your desktop activities and send you interesting desktop messages from time to time!
AIveryday是一个基于LLMs的项目,它可以让LLMs读懂你的桌面活动,时不时发个有趣的桌面消息,让你的电脑体验变得更有趣。
本项目的主要特点有:
- 个性化:AIveryday可以调用开源项目ActivityWatch所收集的数据,获取你的浏览应用、窗口标题和活动类别等信息,读懂你的桌面活动,然后给你发送有趣的通知。
- 性格定制:AIveryday的性格可以通过prompt定制,你可以自由选择AIveryday的性格和角色,比如选择一个可爱的小猫咪,或者选择一位幽默的虚拟女友作为AIveryday的形象。
- 消息推送:AIveryday可以通过桌面通知的方式向你推送消息,时间间隔随机,就像你真实的朋友一样,给你发消息或者分享一些有趣的事情。
- 多平台支持:AIveryday支持Windows、MacOS和Linux等多个平台,你可以在不同的操作系统上使用AIveryday。
- 隐私保护:AIveryday不会收集你的任何隐私数据,所有的数据都可以在本地进行处理的。同时,在本地内存不足时,也能自动调用远程LLMs处理。
- LLMs支持:AIveryday是基于LLMs的项目,你可以使用任何一款支持openAI格式的LLMs来运行AIveryday。
pip install requests pyyaml pytz psutil openai
对于Windows/MacOS用户,还需要安装plyer
库:
pip install plyer
对于显卡推理用户,确保能够使用nvidia-smi
命令。
另外,你还需要安装ActivityWatch,具体安装方法请参考ActivityWatch。注意以下几点:
- 如果你是Linux Wayland用户,需要使用awatcher
- 如果你想用ActivityWatch跟踪网页记录并据此分类活动,官方文档会建议使用aw-watcher-web,但实测有些问题,建议使用浏览器拓展URL in title以在浏览器窗口标题上添加网页地址
- 尽可能完善你的ActivityWatch设置,特别是类别规则的设置
- 请尽可能确保ActivityWatch的类别和你所使用的LLMs的语言一致,以便AIveryday能够更好地读懂你的桌面活动
创建属于自己的config.yaml
文件:
cp example.config.yaml config.yaml
然后参照注释填写config.yaml
文件中的必要信息:
-
首先填写
openai
,包括api_key
和model
等信息。min_memory
是使用本地LLMs的内存占用阈值,当检测到本地内存不足时,会调用远程LLMs处理。此外,这里还有几种常见的配置方式:- 如果你只想使用远程LLMs,可以将
min_memory
设置为很大的值,比如1.e+12
。 - 如果你只想使用本地LLMs,可以将
min_memory
设置为很小的值,比如0
。 - 如果你只想使用本地LLMs,但是在本地内存不足时,也不想调用远程LLMs,只是跳过这次处理,可以将
remote-base_url
设置为None
。
- 如果你只想使用远程LLMs,可以将
-
然后填写
ActivityWatch
,特别注意bucket的名称,确保与你所使用的ActivityWatch中的名称一致。 -
之后设定你专属的
prompts
,发挥你的想象力,定制AIveryday的性格和角色。目前支持以下数据的引用:scope_hour
:该prompt所查询的过去事件的时间范围,单位为小时duration_min
:在scope_hour
时间范围内,你在线的时间,单位为分钟datetime
:当前日期时间top_app
:你最常用的几个应用名称,由ActivityWatch提供top_title
:你最常浏览的几个窗口标题,由ActivityWatch提供top_cat
:你最常活动的类别,由ActivityWatch提供
-
最后填写
notify
,其中platform
是你所使用的操作系统,支持windows
、macos
和linux
。并注意设置icon_path
为你想使用的通知图标路径。
其他配置项可以根据自己的需求进行调整。
在确保ActivityWatch服务正常运行的情况下,运行startAD.py
,AIveryday将会每隔一段时间运行1次:
python startAD.py
或者,你也可以暂时先尝试1次AIveryday的运行效果:
python startAD.py --test
注:为了让弹窗消息消失后能够保存在通知历史中,某些Linux用户可能需要单独设置。例如KDE用户需要在设置-通知-应用程序设置-其他应用
中勾选“在通知历史中显示”。
Linux
linux用户可以将AIveryday添加到开机启动项中,具体操作如下:
- 将
timer/AIveryday.service
拷贝到~/.config/systemd/user/
目录下。 - 运行
systemctl --user enable AIveryday.service
以开机自启AIveryday服务。 - 运行
systemctl --user start AIveryday.service
以启动AIveryday服务。
Windows
对于Windows用户,可以将AIveryday添加到开机启动项中,具体操作如下:
- 按下
Win + R
,输入shell:start
,打开启动文件夹。 - 将
timer/AIveryday.bat
拷贝到启动文件夹中。 - 重启电脑,AIveryday将会自动启动。
MacOS
MacOS用户可以将AIveryday添加到开机启动项中,具体操作如下:
- 打开
系统偏好设置
,选择用户与群组
。 - 选择
登录项
,点击+
,选择AIveryday.app
。 - 重启电脑,AIveryday将会自动启动。
- 对通知中的消息继续聊天
- 保存通知记录
- 多种输出方式,如生成日记等