2025-04-23 13:30:10 +08:00
2025-04-23 13:30:10 +08:00
2025-04-23 13:30:10 +08:00
2025-04-23 13:30:10 +08:00
2025-04-23 13:30:10 +08:00
2025-04-23 13:30:10 +08:00
2025-04-23 13:30:10 +08:00
2025-04-23 13:39:14 +08:00
2025-04-23 13:30:10 +08:00
2025-04-23 13:30:10 +08:00

Bubbles-WechatAI

我叫 泡泡Bubbles - 一个个人微信助手

版本 wcferry Python License

🔗 写在前面

我一直在尝试做一个全面的的生态助手(个人助理),能够连接我使用的任何工具、日程表、数据库、资料库。并基于数据资料,实时地和我交流,以及帮我安排日程、提醒、规划时间和出行,安排我的任务计划。

之前做了 LifeSync-AI基于Github Action、Notion、Zapier进行app互联帮我进行每天的任务规划。但定时任务是被动的而且缺少一个统一的数据处理中心能够通过与用户交流进行实时的任务调度。

这就是这个项目的初衷。

📝 项目简介

Bubbles 是一个功能丰富的微信机器人框架,基于 wcferryWechatRobot 开发支持接入多种大型语言模型LLM提供丰富的交互功能和定时任务。该项目旨在将微信客户端转变为一个智能的个人助手可以执行多种实用功能带来便捷的用户体验。

核心特性

🤖 灵活的模型配置

  • 支持为不同的群聊和私聊设置不同的 AI 模型和 system prompt
    • OpenAI (ChatGPT)
    • Google Gemini
    • 智谱 AI (ChatGLM)
    • 科大讯飞星火大模型
    • 阿里云通义千问
    • TigerBot
    • DeepSeek
    • Perplexity
    • Ollama (本地部署的模型)

🛠️ 丰富的命令系统

🎨 AI 图像生成

  • 支持调用多种 AI 绘图模型生成图片

定时任务与提醒功能

  • 每日天气预报推送
  • 每日新闻资讯推送
  • 工作日报/周报/月报提醒
  • 个人自定义提醒系统(通过自然语言设置定时提醒)

📊 对话管理

  • 智能消息总结功能
  • 处理各类微信消息(文本、图片、小程序、链接等)

🔧 实用工具

  • 自动接受好友请求并打招呼
  • 自动响应群聊和私聊消息

🛠️ 安装指南

系统要求

  • Python 3.8 或更高版本
  • Windows 操作系统wcferry 要求)
  • 微信 PC 版客户端
  • 云配置要求如需2vCPU 2GiB (经济型)

安装步骤

  1. 克隆仓库

    git clone https://github.com/zippland/Bubbles-WechatAI.git
    cd Bubbles-WechatAI
    
  2. 创建并激活虚拟环境(可选但推荐)

    python -m venv .venv
    .venv\Scripts\activate
    
  3. 安装依赖

    pip install -r requirements.txt
    
  4. 配置项目

    # 复制配置模板
    cp config.yaml.template config.yaml
    
    # 编辑配置文件,填入您的 API 密钥等信息
    notepad config.yaml
    

⚙️ 配置说明

配置文件 config.yaml 包含以下主要部分:

AI 模型配置

每个 AI 模型都有自己的配置部分,例如:

# ChatGPT 配置
CHATGPT:
  key: "your-openai-api-key"
  base_url: "https://api.openai.com/v1"
  model: "gpt-4o-mini"  # 可选gpt-4, gpt-3.5-turbo 等
  temperature: 0.7
  max_tokens: 2000
  system_prompt: "你是一个有用的助手。"
  proxy: "http://127.0.0.1:7890"  # 可选:如需代理请填写

群组/私聊模型映射

您可以为不同的群聊或私聊指定不同的 AI 模型:

# 群组模型配置
GROUP_MODELS:
  # 默认模型 ID
  default: 21  # 2 代表 CHATGPT
  
  # 群聊模型映射
  mapping:
    - room_id: "12345678@chatroom"  # 群聊 ID
      model: 2  # 2 代表 CHATGPT

  # 私聊模型映射
  private_mapping:
    - wxid: "wxid_abc123"  # 用户 wxid
      model: 8  # 8 代表 Deepseek

功能开关

您可以启用或禁用各种功能:

# 功能开关
  news_report # 每日新闻推送
  weather_report  # 每日天气推送
  report_reminder # 日报周报月报提醒
  image_generation  # AI生图
  goblin_gift # 古灵阁妖精的馈赠
  perplexity  # perplexity

🚀 使用方法

启动机器人

python main.py

可用命令

机器人支持多种命令,按功能分类如下:

提醒功能
  • 提醒xxxxx - 用自然语言设置一个提醒
  • 查看提醒我的提醒提醒列表 - 查看您设置的所有提醒
  • 删除提醒 ID:xxxx取消提醒 all - 删除指定的(或所有)提醒
基础系统命令
  • info帮助指令 - 显示机器人的帮助信息
  • 骂一下 @用户名 - 让机器人骂指定用户(仅群聊)
  • reset重置 - 重置机器人缓存的上下文历史
Perplexity AI 命令
  • ask 问题内容 - 使用 Perplexity AI 进行深度查询(需@机器人)
消息管理命令
  • summary/总结 - 总结群聊最近的消息(仅群聊)
  • clearmessages/清除历史 - 从数据库中清除群聊的历史消息记录(仅群聊)
天气和新闻工具
  • 天气预报 城市名预报 城市名 - 查询指定城市未来几天的天气预报
  • 天气 城市名温度 城市名 - 查询指定城市的当前天气
  • 新闻 - 获取最新新闻
决斗系统命令
  • 决斗 @用户名 - 发起决斗(仅群聊)
  • 偷袭 @用户名偷分 @用户名 - 偷袭其他玩家(仅群聊)
  • 决斗排行决斗排名排行榜 - 查看决斗排行榜(仅群聊)
  • 决斗战绩我的战绩战绩查询 - 查看决斗战绩(仅群聊)
  • 我的装备查看装备 - 查看自己的装备(仅群聊)
  • 改名 旧名称 新名称 - 更改昵称(仅群聊)

🎮 游戏功能详解

决斗系统

Bubbles 内置了一个有趣的决斗游戏系统,用户可以在群聊中挑战其他成员:

  • 开始决斗:使用 决斗 @用户 开始一场决斗
  • 偷袭玩家:使用 偷袭 @用户 偷袭其他玩家
  • 查看排名:使用 决斗排行 查看全服决斗排行榜
  • 个人统计:使用 决斗战绩 查看个人决斗数据
  • 查看装备:使用 我的装备 查看自己当前的装备
  • 更改名称:使用 改名 旧名称 新名称 更改自己在决斗系统中的显示名称

古灵阁妖精馈赠

这是一个随机事件系统,机器人会在聊天中随机触发"古灵阁妖精馈赠"事件,为用户提供惊喜奖励。

📋 项目结构

Bubbles-WechatAI/
├── ai_providers/       # AI 模型接口实现
├── commands/           # 命令系统实现
├── data/               # 数据文件
├── function/           # 功能模块
│   ├── func_duel.py        # 决斗功能
│   ├── func_news.py        # 新闻功能
│   ├── func_weather.py     # 天气功能
│   └── ...
├── image/              # 图像生成相关
├── logs/               # 日志目录
├── config.yaml         # 配置文件
├── config.yaml.template # 配置模板
├── constants.py        # 常量定义
├── main.py             # 入口文件
├── robot.py            # 机器人核心实现
└── requirements.txt    # 项目依赖

🤝 贡献指南

欢迎对本项目做出贡献!您可以通过以下方式参与:

  1. 报告问题:提交 issue 报告 bug 或提出功能建议
  2. 提交代码:通过 Pull Request 提交您的改进
  3. 完善文档:帮助改进项目文档

📄 许可证

本项目采用 Apache 2.0 许可证,详情请参阅 LICENSE 文件。

🙏 致谢

  • wcferry - 提供微信机器人底层支持
  • 所有贡献者和用户

常见问题

Q: 如何获取群聊 ID A: 在群聊中发送一条消息,机器人日志会显示该消息的来源群聊 ID。

Q: 如何添加新的 AI 模型? A: 在 ai_providers 目录下创建新的模型接口实现,然后在 robot.py 中注册该模型。

Q: 出现 "AI 模型未响应" 错误怎么办? A: 检查相应 AI 模型的 API 密钥配置和网络连接,确保 API 可访问。

Q: 机器人不回复消息怎么办? A: 检查 wcferry 服务是否正常运行,查看日志文件了解详细错误信息。

📞 联系方式

如有任何问题或建议,请通过以下方式联系我们:


注意:本项目仅供学习和个人使用,请遵守微信使用条款,不要用于任何违反法律法规的活动。

Description
No description provided
Readme Apache-2.0 4.3 MiB
Languages
Python 100%