60b72874b5d1f0690575cf8fba2448a864ff5b27
本次提交围绕成员画像插件进行了较大升级,核心目标是把原来偏单次、偏近期的成员交互摘要,升级为可随时间沉淀的分层画像能力。 主要功能变更如下: 1. 新增成员分层摘要存储表 t_member_digest,并提供对应的数据库操作层,支持按成员、按群、按摘要类型(daily/weekly/monthly)持久化周期性摘要结果。 2. 在 member_context 插件内新增 MemberDigestService,把画像生成拆分为日摘要、周摘要、月摘要三级处理流程,再由最终画像服务消费这些分层摘要,减少直接反复处理大量原始消息带来的成本和失真。 3. 新增提示词构建模块,分别为日级观察、周级归纳、月级归纳以及最终画像整理提供独立提示词,强调中性、克制、避免敏感推断,并将长期特征与近期状态明确分层。 4. 重写成员最终画像生成逻辑,优先基于日/周/月摘要融合出长期特征、习惯模式、长期回复偏好、近期状态等信息,再用 AI 对分层摘要做最终整理,避免仅依赖近 30 天消息得出偏短期结论。 5. 保留并增强长期画像融合逻辑,通过打分、衰减和重复证据累积,使长期特征随着时间逐步稳定,而不会被单次刷新完全覆盖。 6. 在消息存储层补充成员按时间增量获取、按活跃日期统计、按天取消息等查询方法,为后续分层摘要生成提供数据支撑。 7. 扩展 member_context 插件配置,增加日级摘要消息上限、日摘要最小消息数、单次回填的日摘要数量上限、最终画像使用的日/周/月摘要数量等参数,便于在准确性和系统负载之间做平衡。 8. 后台成员摘要详情页新增长期沟通倾向、长期特征、习惯模式、长期回复偏好、近期状态、历史样本数、分层摘要数量等展示字段,方便观察画像沉淀程度。 9. 优化后台查看成员摘要接口逻辑:首次打开如果还没有摘要,不再同步阻塞生成,而是返回未就绪状态,配合后台手动异步刷新,降低页面卡顿和接口阻塞风险。 10. 增强刷新日志,单成员和群级刷新会输出当前刷新模式以及日/周/月摘要数量,便于排查画像构建进度。 11. 调整当前日、当前周、当前月摘要的重算逻辑,确保新增日摘要写入后,本周和本月摘要不会长期停留在旧版本。 本次提交后,成员画像能力从“基于近期样本的单层摘要”升级为“基于时间沉淀的分层画像管线”,为后续把画像稳定接入 AI 自动回复上下文打下基础,同时尽量保持现有群权限控制和后台异步刷新方式不变。
A-BOT 智能助手
A-BOT是一个功能丰富的微信机器人助手,集成了多种实用功能,包括AI聊天、群智闯关、积分系统、新闻推送等。支持多种AI模型集成,提供消息自动回复、群管理等功能。
📋 功能清单
1. 群智闯关
- 答题游戏系统
- 积分排行榜
- 任务管理
- 实时答题反馈
2. 积分交易系统
- 积分转账
- 积分查询
- 积分排行榜
- 打劫系统
- 保释功能
3. 全球快讯
- 国际政经新闻推送
- 实时新闻更新
4. AI聊天
- 智能对话
- 多模型支持(Claude、DeepSeek、豆包等)
- 自定义提示词模板
5. 媒体内容
- 秀人图片
- 猛男视频
- 美腿图片
- 音乐点播
- 抖音视频解析
6. 群管理功能
- 群自动邀请
- 插件管理系统
- 消息智能总结
- 数据库消息存档
7. 系统功能
- 每日签到系统
- 系统更新
- 视频分享
- 邮件通知系统
- 系统监控集成
🚀 安装说明
环境要求
- Python 3.10+
- MySQL 数据库
- Redis 服务
- Git(用于系统更新)
- 支持的操作系统:Windows/Linux/MacOS
server安装
- 复制wechat_ipad/server/下面的所有内容到你的服务器
- 修改conf下的文件app.conf
- 将redis链接改成自己的redis配置
redislink = 192.168.2.40:6379
redispass = ""
redisdbnum = 7
- 配置完成之后,运行server
sudo nohup ./ipad859go > /tmp/logger.log 2>&1 &
依赖安装
# 克隆项目
git clone https://github.com/your-username/abot.git
cd abot
# 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate # Linux/Mac
# 或
.venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
# 特别安装,pip 版本依赖不准确,需要单独安装
pip install pysilk-mod
- 字体包安装,用来支持图片合成时字体,emoji等显示
sudo apt-get install -y fonts-noto-cjk fonts-noto-cjk-extra
sudo apt-get install -y fonts-noto-color-emoji fonts-noto-cjk fonts-wqy-microhei
主要依赖包
- lxml~=5.3.0
- openai>1.0.0
- pandas~=2.2.3
- pyyaml~=6.0.2
- requests~=2.32.3
- schedule~=1.2.2
- sparkdesk-api==1.3.0
- pillow~=11.0.0
- Flask~=3.1.0
- fastapi~=0.115.12
- uvicorn~=0.34.2
- 更多依赖请查看 requirements.txt
⚙️ 配置说明
1. 配置文件
配置文件位于 config.yaml,包含以下主要配置项:
数据库配置
db_config:
pool_name: "wechat_boot_pool"
pool_size: 10
host: "your-db-host"
user: "your-db-user"
password: "your-db-password"
database: "message_archive"
charset: "utf8mb4"
Redis配置
redis_config:
host: "your-redis-host"
port: 6379
db: 0
decode_responses: true
ipad 客户端配置
- 修改 wechat_ipad 下的配置config.toml,用于启动client
- 设备ID和name 可以为空,系统会自己生成一个,需要保持一个号一个ID+NAME
server_url = "http://192.168.2.170:8059/" #server的访问地址
wxid = ""
device_id = ""
device_name = ""
server_ip = "192.168.2.170"
server_port = "8059"
login_time = ""
2. 插件配置
AI聊天插件 (dify)
Dify:
enable: true
commands: [ "ai", "dify", "聊天", "AI" ]
command-tip: "聊天 请求内容"
api-key: "your-dify-api-key"
base-url: "your-dify-base-url"
音乐插件 (music)
Music:
enable: true
command: [ "点歌", "音乐" ]
command-format: "点歌 歌曲名"
群智闯关插件 (game_task)
GameTask:
enable: true
command: [ "/s", "/t", "/a", "/r", "/l", "/h" ]
command-format: "游戏命令格式说明"
📖 使用说明
基础命令
-
群智闯关
/s- 加入答题游戏/t- 获取新问题/a 任务ID 答案- 回答问题/r- 查看排行榜/l- 查看活跃问题/h- 查看未解决问题
-
积分系统
积分转账 积分数 @用户- 转账积分我的积分- 查询积分积分排行- 查看排行榜打劫 @用户- 打劫积分保释 @用户- 保释用户
-
新闻功能
全球新闻- 获取国际新闻- 支持:
国际新闻、环球新闻、政经新闻
-
AI聊天
聊天 问题- 与AI对话- 支持:
ai、dify、AI开头
-
插件管理
插件 列表- 查看插件插件 启用 [插件名]- 启用插件插件 禁用 [插件名]- 禁用插件插件 信息 [插件名]- 查看插件信息
媒体功能
图来/秀人- 获取图片猛男- 获取视频美腿/腿来- 获取美腿图片点歌 歌曲名- 点播音乐- 直接发送抖音链接可自动解析
系统功能
签到- 每日签到更新系统- 系统更新(管理员)#总结- 消息总结
📁 项目结构
abot/
├── admin/ # 管理后台相关代码
├── base/ # 基础功能模块
├── db/ # 数据库相关代码
├── plugins/ # 插件目录
├── resource/ # 资源文件
├── static/ # 静态文件
├── utils/ # 工具函数
├── wechat_ipad/ # 微信相关核心代码
├── config.yaml # 配置文件
├── main.py # 主程序入口
├── requirements.txt # 依赖列表
└── restart.sh # 重启脚本
🔧 开发说明
插件开发
- 在
plugins目录下创建新的插件目录 - 实现
MessagePluginInterface接口 - 在
config.toml中添加插件配置 - 在插件管理器中注册插件
开发规范
- 遵循PEP 8编码规范
- 添加适当的注释
- 编写单元测试
- 更新文档
⚠️ 注意事项
- 确保所有API密钥配置正确
- 数据库和Redis服务必须正常运行
- 建议使用虚拟环境运行项目
- 定期检查日志文件(wx_debug.log, wx_info.log, wx_error.log)
- 部分功能需要消耗积分
- 部分功能需要管理员权限
- 建议定期备份数据库
- 请遵守相关法律法规使用
- 注意API调用频率限制
❓ 常见问题
- 依赖安装问题
python -m pip install --upgrade pip
- 数据库连接问题
- 检查数据库服务是否运行
- 验证配置信息是否正确
- 确认数据库用户权限是否足够
- Redis连接问题
- 检查Redis服务是否运行
- 验证配置信息是否正确
- 检查Redis服务器防火墙设置
- API调用问题
- 确认API密钥是否正确
- 检查API服务是否可用
- 验证网络连接是否正常
🔄 更新日志
v1.0.0
- 初始版本发布
- 基础功能实现
- 插件系统支持
🤝 贡献指南
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
📄 许可证
本项目采用 MIT 许可证,详见 LICENSE 文件。
📞 联系方式
- 项目维护者:水牛
- 邮箱:bovine.liu@gmail.com
- 项目地址:待发布
🙏 致谢
感谢所有为本项目做出贡献的开发者。
Description
Languages
Python
57%
JavaScript
28.8%
HTML
14.1%
Shell
0.1%