diff --git a/plugins/message_summary/main.py b/plugins/message_summary/main.py index 3b9cc18..bb93ed7 100644 --- a/plugins/message_summary/main.py +++ b/plugins/message_summary/main.py @@ -51,7 +51,6 @@ class MessageSummaryPlugin(MessagePluginInterface): self._api_key = api_config.get("api_key", "app-McGLzBhBjeBCSEi7n83MtuTo") self._api_url = api_config.get("api_url", "http://192.168.2.240/v1/chat-messages") self.message_storage = MessageStorage() - self.LOG.info(f"初始化 {self.name} 插件成功") return True except Exception as e: @@ -85,12 +84,11 @@ class MessageSummaryPlugin(MessagePluginInterface): command = content[len(self.command_prefix):].split()[0] if command not in self.commands: return False, None - + wcf = message.get("wcf") # 获取需要总结的内容 group_id = message.get("roomid") if not group_id: # 直接发送消息 - wcf = message.get("wcf") if wcf: wcf.send_text("只支持群聊消息总结", message.get("sender")) return True, None @@ -108,7 +106,8 @@ class MessageSummaryPlugin(MessagePluginInterface): # 获取群名并处理 group_name = all_contacts.get(group_id, group_id) group_name = self._sanitize_group_name(group_name) - + if wcf: + wcf.send_text("⏳群消息总结中… 😊", group_id) # 生成总结 summary, image_path = self._generate_summary(chat_content, group_name) diff --git a/产品需求说明书.md b/产品需求说明书.md index 34a8546..ccba142 100644 --- a/产品需求说明书.md +++ b/产品需求说明书.md @@ -1,853 +1,558 @@ -# WeChatRobot 项目需求规格说明书 +# WeChatRobot 用户操作手册 ## 文档信息 -| 文档名称 | WeChatRobot 项目需求规格说明书 | -| :------ | :--------------------------- | -| 版本号 | V1.0 | -| 状态 | 初稿 | -| 创建日期 | 2024年5月 | +| 文档名称 | WeChatRobot 用户操作手册 | +| :------ | :---------------------- | +| 版本号 | V1.0 | +| 状态 | 正式版 | +| 创建日期 | 2024年5月 | ## 目录 -1. [项目概述](#1-项目概述) - 1. [项目背景](#11-项目背景) - 2. [项目目标](#12-项目目标) - 3. [适用范围](#13-适用范围) +1. [系统简介](#1-系统简介) +2. [安装与配置](#2-安装与配置) +3. [基本功能](#3-基本功能) +4. [AI对话功能](#4-ai对话功能) +5. [群聊管理功能](#5-群聊管理功能) +6. [群聊总结功能](#6-群聊总结功能) +7. [游戏任务系统](#7-游戏任务系统) +8. [积分交易系统](#8-积分交易系统) +9. [签到系统](#9-签到系统) +10. [常见问题解答](#10-常见问题解答) -2. [系统架构](#2-系统架构) - 1. [总体架构](#21-总体架构) - 2. [核心组件](#22-核心组件) - 3. [技术栈](#23-技术栈) - 4. [系统依赖](#24-系统依赖) +## 1. 系统简介 -3. [功能需求](#3-功能需求) - 1. [基础功能](#31-基础功能) - 2. [特色功能](#32-特色功能) - 3. [管理功能](#33-管理功能) +WeChatRobot 是一款功能丰富的微信机器人系统,旨在提升您的微信使用体验。本系统基于 Python 开发,通过与微信客户端交互,实现消息的自动化处理、智能回复、群聊管理等多种功能。 -4. [命令系统](#4-命令系统) - 1. [通用命令](#41-通用命令) - 2. [游戏任务命令](#42-游戏任务命令) - 3. [积分交易命令](#43-积分交易命令) - 4. [管理命令](#44-管理命令) +### 1.1 主要功能 -5. [数据模型](#5-数据模型) - 1. [数据库设计](#51-数据库设计) - 2. [缓存设计](#52-缓存设计) +- **AI智能对话**:支持多种AI模型,提供智能对话能力 +- **群聊管理**:自动欢迎新成员,监控群成员变动 +- **群聊总结**:自动总结群聊内容,识别热门话题 +- **游戏任务系统**:提供百科问答游戏,增加群聊趣味性 +- **积分系统**:支持用户积分管理和交易 +- **签到系统**:提供每日签到功能,支持连续签到奖励 -6. [非功能需求](#6-非功能需求) - 1. [性能需求](#61-性能需求) - 2. [安全需求](#62-安全需求) - 3. [可扩展性](#63-可扩展性) - 4. [可靠性](#64-可靠性) +### 1.2 适用场景 -7. [部署要求](#7-部署要求) - 1. [环境依赖](#71-环境依赖) - 2. [第三方服务](#72-第三方服务) - 3. [部署流程](#73-部署流程) - -8. [未来扩展计划](#8-未来扩展计划) - -9. [附录](#9-附录) - 1. [术语表](#91-术语表) - 2. [参考文档](#92-参考文档) - -## 1. 项目概述 - -### 1.1 项目背景 - -随着微信在社交和工作场景中的广泛应用,用户对于微信自动化管理、智能回复、群聊管理等需求日益增长。WeChatRobot 项目旨在满足这些需求,提供一个功能丰富、易于扩展的微信机器人解决方案,帮助用户提高沟通效率、增强群聊体验、实现自动化管理。 - -### 1.2 项目目标 - -1. 开发一个基于 Python 的微信机器人系统,实现微信消息的自动化处理 -2. 提供丰富的功能模块,包括但不限于:AI 对话、群聊管理、游戏任务、积分系统等 -3. 支持多种 AI 模型接入,提供智能对话能力 -4. 实现群聊内容的自动化总结和分析 -5. 提供用户友好的管理界面,便于配置和监控 -6. 设计可扩展的架构,便于后续功能扩展 - -### 1.3 适用范围 - -本系统适用于以下场景: - 个人用户:提升微信使用体验,自动化处理日常消息 - 群组管理员:辅助管理微信群,提高群聊活跃度 - 企业用户:用于客户服务、内部沟通自动化等场景 -- 开发者:作为微信自动化的基础框架,进行二次开发 -## 2. 系统架构 +## 2. 安装与配置 -### 2.1 总体架构 +### 2.1 系统要求 -WeChatRobot 采用模块化设计,主要由以下几个部分组成: -- 核心引擎:负责与微信客户端交互,处理消息收发 -- 功能模块:提供各种具体功能的实现 -- 数据存储:管理系统数据和状态 -- 管理界面:提供配置和监控功能 +- **操作系统**:Windows 10/11(推荐) +- **微信客户端**:PC版微信客户端 +- **Python环境**:Python 3.8或更高版本 -系统架构图如下: +### 2.2 安装步骤 -``` -+------------------+ +------------------+ +------------------+ -| | | | | | -| 微信客户端 |<--->| WeChatRobot |<--->| 数据存储 | -| (wcferry) | | 核心引擎 | | (MySQL/Redis) | -| | | | | | -+------------------+ +--------+---------+ +------------------+ - | - | - +--------v---------+ - | | - | 功能模块 | - | | - +--------+---------+ - | - | - +--------v---------+ - | | - | Web管理界面 | - | (Flask) | - | | - +------------------+ -``` +1. **下载安装包** + - 从官方网站或GitHub仓库下载最新版本的WeChatRobot安装包 -### 2.2 核心组件 +2. **解压文件** + - 将下载的压缩包解压到您选择的目录,例如:`D:\WeChatRobot` -1. **主程序模块** - - 负责系统初始化和启动 - - 协调各功能模块的工作 - - 处理系统级事件 - -2. **机器人核心** - - 与微信客户端交互 - - 消息分发与处理 - - 命令解析与执行 - -3. **功能模块** - - AI 对话模块:集成多种 AI 模型 - - 群聊管理模块:处理群成员变动、自动欢迎等 - - 游戏任务模块:实现百科问答游戏 - - 积分系统模块:管理用户积分和交易 - - 签到模块:实现每日签到功能 - - 消息总结模块:自动总结群聊内容 - -4. **数据存储层** - - MySQL 数据库:存储持久化数据 - - Redis 缓存:存储临时数据和状态 - -5. **Web 界面** - - 基于 Flask 的管理界面 - - 提供配置和监控功能 - -### 2.3 技术栈 - -1. **编程语言** - - Python 3.x - -2. **框架与库** - - wcferry:微信客户端接口 - - Flask:Web 框架 - - MySQL Connector:数据库连接 - - Redis:缓存服务 - - Requests:HTTP 客户端 - - Schedule:定时任务 - - Pandas:数据处理 - - Jupyter Client:代码执行 - -3. **AI 接口** - - OpenAI API - - 豆包 API (Doubao) - - TigerBot API - - 智谱 API (ZhipuAI) - - Google Generative AI - -4. **前端技术** - - HTML/CSS/JavaScript - - Bootstrap(可选) - -### 2.4 系统依赖 - -详细的系统依赖列表(基于 requirements.txt): - -- chinese_calendar~=1.10.0:中国节假日判断 -- lxml~=5.3.0:XML 处理 -- openai>1.0.0:OpenAI API 接口 -- pandas~=2.2.3:数据处理 -- pyyaml~=6.0.2:YAML 配置文件处理 -- requests~=2.32.3:HTTP 请求 -- schedule~=1.2.2:定时任务 -- wcferry==39.2.*:微信客户端接口 -- redis~=5.2.1:Redis 缓存 -- PyMySQL~=1.1.1:MySQL 数据库连接 -- Flask~=3.1.0:Web 框架 -- mysql-connector-python~=9.2.0:MySQL 连接器 -- pytz~=2025.1:时区处理 -- 其他辅助库(详见 requirements.txt) - -## 3. 功能需求 - -### 3.1 基础功能 - -#### 3.1.1 消息处理 - -**功能描述**: -系统能够接收、处理和响应各类微信消息,包括个人消息和群聊消息。 - -**详细需求**: -1. **消息接收** - - 接收文本消息、图片消息、视频消息、语音消息等多种类型 - - 支持群聊和私聊消息的区分处理 - -2. **消息存储** - - 将消息存储到数据库中,包含以下信息: - - 消息ID - - 群ID(如适用) - - 发送者ID - - 消息内容 - - 消息类型 - - 时间戳 - - 附件URL(如适用) - - 消息XML(如适用) - - 缩略图(如适用) - -3. **消息过滤** - - 过滤无效或垃圾消息 - - 支持关键词过滤 - - 支持特定消息类型的过滤 - -4. **消息响应** - - 根据预设规则自动响应特定消息 - - 支持命令触发的响应 - - 支持AI模型生成的智能响应 - -#### 3.1.2 群聊管理 - -**功能描述**: -系统能够监控和管理微信群聊,包括成员变动、自动欢迎等功能。 - -**详细需求**: -1. **成员变动监控** - - 检测群成员加入和退出事件 - - 记录成员变动历史 - - 提供成员变动通知 - -2. **自动欢迎** - - 当新成员加入群聊时,自动发送欢迎消息 - - 支持自定义欢迎消息模板 - - 支持群组特定的欢迎设置 - -3. **群聊邀请管理** - - 支持通过命令添加群聊 - - 管理群聊邀请关系 - - 提供群聊列表查询功能 - -4. **群成员信息管理** - - 缓存群成员信息 - - 提供群成员信息查询功能 - - 支持群成员昵称与ID的映射 - -#### 3.1.3 AI 对话 - -**功能描述**: -系统集成多种AI模型,提供智能对话能力。 - -**详细需求**: -1. **多模型支持** - - 支持豆包(Doubao)模型 - - 支持TigerBot模型 - - 支持ChatGLM模型 - - 支持OpenAI模型 - - 支持其他可扩展的AI模型 - -2. **上下文对话** - - 维护对话历史 - - 支持上下文相关的回复 - - 限制对话历史长度,避免token过多 - -3. **自定义系统提示词** - - 支持为不同AI模型设置系统提示词 - - 支持根据不同场景切换提示词 - -4. **对话统计** - - 记录token使用情况 - - 提供对话性能统计 - - 支持对话质量评估 - -### 3.2 特色功能 - -#### 3.2.1 群聊总结 - -**功能描述**: -系统能够自动总结群聊内容,识别热门话题和活跃成员。 - -**详细需求**: -1. **内容总结** - - 定期(如每日)总结群聊内容 - - 提取关键话题和重要信息 - - 生成结构化的总结报告 - -2. **话题识别** - - 自动识别群聊中的热门话题 - - 对话题进行分类和评分 - - 提供话题参与度分析 - -3. **成员活跃度分析** - - 识别最活跃的群成员 - - 统计成员发言频率和质量 - - 生成"今日MVP"等趣味性内容 - -4. **总结展示** - - 以轻松幽默的风格展示总结 - - 融入网络流行语和Emoji - - 提供数据概览、话题概览、贡献者识别等内容 - -#### 3.2.2 游戏任务系统 - -**功能描述**: -系统提供百科问答游戏功能,支持任务分配、答案验证和积分奖励。 - -**详细需求**: -1. **任务管理** - - 支持随机分配任务 - - 维护任务状态(待完成、已完成) - - 提供任务查询功能 - -2. **答案验证** - - 验证用户提交的答案 - - 支持部分正确的评分 - - 提供答案反馈和提示 - -3. **积分系统** - - 根据答案正确性奖励积分 - - 支持积分扣除(如答错扣分) - - 维护用户积分余额 - -4. **排行榜** - - 提供群内用户积分排行 - - 支持定期(如每周)排行榜更新 - - 展示排行榜前N名用户 - -#### 3.2.3 积分交易系统 - -**功能描述**: -系统支持用户间的积分转账和交易功能。 - -**详细需求**: -1. **积分转账** - - 支持用户间积分转移 - - 验证转账合法性(如余额检查) - - 记录转账历史 - -2. **积分查询** - - 提供用户积分余额查询 - - 支持积分历史记录查询 - - 展示积分来源和去向 - -3. **积分奖惩** - - 支持管理员奖励或扣除用户积分 - - 提供积分奖惩理由记录 - - 支持批量积分操作 - -#### 3.2.4 签到系统 - -**功能描述**: -系统提供每日签到功能,支持签到统计和奖励机制。 - -**详细需求**: -1. **每日签到** - - 支持用户每日签到 - - 限制每日签到次数(每人每天一次) - - 自动重置每日签到计数 - -2. **签到奖励** - - 签到成功后给予积分奖励 - - 支持连续签到额外奖励 - - 支持特殊日期(如节假日)额外奖励 - -3. **签到统计** - - 记录用户签到历史 - - 统计连续签到天数 - - 提供签到排行榜 - -4. **时区支持** - - 根据配置的时区判断日期变更 - - 支持不同地区用户的签到需求 - -#### 3.2.5 定时提醒 - -**功能描述**: -系统能够根据预设规则发送定时提醒消息。 - -**详细需求**: -1. **工作报告提醒** - - 支持日报、周报、月报提醒 - - 自动识别工作日和非工作日 - - 在适当时间发送提醒消息 - -2. **自定义提醒** - - 支持用户设置自定义提醒 - - 提供提醒时间和内容的配置 - - 支持重复提醒设置 - -3. **节假日识别** - - 集成中国节假日日历 - - 在节假日发送特定消息 - - 支持节假日前的工作安排提醒 - -### 3.3 管理功能 - -#### 3.3.1 Web 管理界面 - -**功能描述**: -系统提供基于 Web 的管理界面,便于配置和监控。 - -**详细需求**: -1. **消息管理** - - 查看历史消息记录 - - 支持消息搜索和过滤 - - 提供消息统计和分析 - -2. **群组配置** - - 管理群组列表 - - 配置群组特定的功能设置 - - 监控群组活跃度 - -3. **功能开关** - - 提供全局功能开关 - - 支持群组级别的功能开关 - - 记录功能状态变更历史 - -4. **系统监控** - - 监控系统运行状态 - - 提供资源使用情况统计 - - 支持异常情况告警 - -#### 3.3.2 权限管理 - -**功能描述**: -系统提供多级权限管理,控制不同用户对功能的访问权限。 - -**详细需求**: -1. **权限级别** - - 系统管理员:拥有所有权限 - - 群组管理员:拥有特定群组的管理权限 - - 普通用户:拥有基本功能使用权限 - -2. **功能权限** - - 控制特定功能的使用权限 - - 支持按群组设置功能权限 - - 提供权限变更审计 - -3. **用户管理** - - 管理用户账号和权限 - - 支持用户封禁和解封 - - 记录用户操作日志 - -## 4. 命令系统 - -### 4.1 通用命令 - -**功能描述**: -系统提供一系列通用命令,用于基本功能的触发和控制。 - -**详细需求**: -1. **帮助命令** - - `/help`:显示帮助信息 - - `/menu`:显示功能菜单 - -2. **功能开关命令** - - 启用/禁用特定功能的命令 - - 查询功能状态的命令 - -3. **系统信息命令** - - 查询系统状态 - - 查询版本信息 - -### 4.2 游戏任务命令 - -**功能描述**: -系统提供一系列命令,用于游戏任务系统的操作。 - -**详细命令列表**: -1. `/s`:加入游戏(可选) - - 功能:显式加入游戏系统 - - 响应:确认加入的消息 - -2. `/ts`:查看活跃任务 - - 功能:显示当前活跃的任务列表 - - 响应:活跃任务的详细信息 - -3. `/l`:列出未完成任务 - - 功能:显示所有未完成的任务 - - 响应:未完成任务的列表 - -4. `/a [任务ID] [答案]`:提交答案 - - 功能:提交特定任务的答案 - - 参数:任务ID和答案内容 - - 响应:答案验证结果和积分变更 - -5. `/r`:查看排行榜 - - 功能:显示积分排行榜 - - 响应:排行榜信息 - -6. `/ag`:手动添加群聊(可选) - - 功能:将当前群聊添加到游戏系统 - - 响应:添加结果确认 - -7. `/t`:获取新任务 - - 功能:获取一个随机任务 - - 响应:新任务的详细信息 - - 限制:仅在特定时间段(9:00-22:59)可用 - -### 4.3 积分交易命令 - -**功能描述**: -系统提供积分交易相关的命令,支持用户间的积分转移。 - -**详细命令列表**: -1. `积分转账 积分数 @用户`:转账积分 - - 功能:将指定数量的积分转给目标用户 - - 参数:积分数量和目标用户 - - 响应:转账结果确认 - -2. 命令别名: - - `积分交易` - - `积分赠送` - - `积分转移` - - `转账积分` - - `赠送积分` - - `转移积分` - - `送积分` - - `积分送人` - - `送人积分` - - `积分赠予` - - `赠予` - -### 4.4 管理命令 - -**功能描述**: -系统提供一系列管理命令,用于系统配置和管理。 - -**详细命令列表**: -1. **群组管理命令** - - 添加/删除群组 - - 配置群组特定设置 - -2. **功能配置命令** - - 启用/禁用特定功能 - - 配置功能参数 - -3. **用户管理命令** - - 添加/删除用户 - - 设置用户权限 - -## 5. 数据模型 - -### 5.1 数据库设计 - -**功能描述**: -系统使用 MySQL 数据库存储持久化数据。 - -**主要数据表**: -1. **消息表(messages)** - - 字段: - - id:消息ID - - group_id:群ID - - timestamp:时间戳 - - sender:发送者ID - - content:消息内容 - - message_type:消息类型 - - attachment_url:附件URL - - message_id:微信消息ID - - message_xml:消息XML - - message_thumb:消息缩略图 - -2. **用户表(t_encyclopedia_players)** - - 字段: - - player_id:用户ID - - group_id:群ID - - player_name:用户名称 - - points:积分 - - join_time:加入时间 - -3. **任务表(t_encyclopedia_active_tasks)** - - 字段: - - active_task_id:任务ID - - group_id:群ID - - question:问题 - - answer:答案 - - score:分数 - - holder_id:持有者ID - - status:状态(pending/completed) - -4. **任务历史表(t_encyclopedia_task_history)** - - 字段: - - id:记录ID - - group_id:群ID - - active_task_id:任务ID - - player_id:用户ID - - answer:提交的答案 - - is_correct:是否正确 - - points_earned:获得的积分 - -5. **签到表** - - 字段: - - id:记录ID - - user_id:用户ID - - group_id:群ID - - sign_time:签到时间 - - continuous_days:连续签到天数 - -### 5.2 缓存设计 - -**功能描述**: -系统使用 Redis 缓存存储临时数据和状态。 - -**主要缓存数据**: -1. **群成员信息** - - 键格式:`group:group_members:{group_id}` - - 值类型:哈希表(wxid -> nickname) - - 用途:缓存群成员信息,避免频繁查询 - -2. **群成员数量** - - 键格式:`group:group_member_count:{group_id}` - - 值类型:字符串(数字) - - 用途:记录群成员数量 - -3. **签到记录** - - 键格式:`group:sign_in:{group_id}:{user_id}` - - 值类型:字符串(时间戳) - - 用途:记录用户签到状态 - -4. **最后总结时间** - - 键格式:`{group_id}:summary_time` - - 值类型:字符串(时间戳) - - 用途:记录群聊最后总结的时间 - -5. **对话历史** - - 内存缓存(非Redis) - - 结构:字典(wxid -> 消息列表) - - 用途:维护AI对话的上下文 - -## 6. 非功能需求 - -### 6.1 性能需求 - -**功能描述**: -系统需要满足一定的性能要求,确保良好的用户体验。 - -**详细需求**: -1. **响应时间** - - 普通命令响应时间不超过1秒 - - AI生成内容响应时间不超过10秒 - - 数据库查询响应时间不超过2秒 - -2. **并发处理** - - 支持多个群组同时活跃 - - 支持多用户并发请求 - - 避免资源竞争和死锁 - -3. **资源使用** - - CPU使用率平均不超过50% - - 内存使用合理,避免内存泄漏 - - 数据库连接池管理,避免连接耗尽 - -### 6.2 安全需求 - -**功能描述**: -系统需要确保数据安全和用户隐私保护。 - -**详细需求**: -1. **数据安全** - - 敏感配置信息加密存储 - - API密钥安全管理 - - 数据库访问权限控制 - -2. **用户隐私** - - 遵循最小权限原则收集用户信息 - - 不存储不必要的敏感信息 - - 提供隐私政策说明 - -3. **防滥用措施** - - 命令频率限制 - - 异常行为检测 - - 防止恶意使用系统资源 - -### 6.3 可扩展性 - -**功能描述**: -系统设计需要考虑未来的扩展需求。 - -**详细需求**: -1. **模块化设计** - - 功能模块之间低耦合 - - 提供清晰的接口定义 - - 支持插件式扩展 - -2. **配置灵活性** - - 支持通过配置文件调整系统行为 - - 避免硬编码配置项 - - 支持运行时配置更新 - -3. **AI模型扩展** - - 支持新AI模型的便捷接入 - - 统一的AI接口抽象 - - 模型切换不影响系统稳定性 - -### 6.4 可靠性 - -**功能描述**: -系统需要具备良好的可靠性和稳定性。 - -**详细需求**: -1. **错误处理** - - 全面的异常捕获和处理 - - 避免单点故障导致系统崩溃 - - 提供友好的错误提示 - -2. **日志系统** - - 详细的操作日志记录 - - 错误日志分级管理 - - 支持日志查询和分析 - -3. **自动恢复** - - 系统异常时自动重试 - - 关键服务自动重启 - - 数据一致性保障 - -## 7. 部署要求 - -### 7.1 环境依赖 - -**功能描述**: -系统运行需要特定的环境依赖。 - -**详细需求**: -1. **操作系统** - - Windows 10/11(推荐) - - 支持其他操作系统(可选) - -2. **Python环境** - - Python 3.8+ - - 虚拟环境管理(推荐) - -3. **数据库环境** - - MySQL 5.7+ - - Redis 5.0+ - -4. **网络环境** - - 稳定的互联网连接 - - 支持HTTPS请求 - -### 7.2 第三方服务 - -**功能描述**: -系统依赖一些第三方服务和API。 - -**详细需求**: -1. **AI服务** - - 豆包API访问权限 - - TigerBot API访问权限 - - OpenAI API访问权限(可选) - - 其他AI服务提供商的API - -2. **微信接口** - - wcferry库及其依赖 - - 微信PC客户端 - -3. **其他服务** - - 中国节假日数据服务 - - 时区服务 - -### 7.3 部署流程 - -**功能描述**: -系统部署需要遵循特定的流程。 - -**详细需求**: -1. **环境准备** - - 安装 Python 3.8+ - - 安装 MySQL 和 Redis - - 配置虚拟环境 - -2. **代码部署** - - 克隆或下载代码仓库 +3. **安装依赖** + - 打开命令提示符(CMD) + - 进入WeChatRobot目录:`cd D:\WeChatRobot` - 安装依赖包:`pip install -r requirements.txt` - - 配置系统参数 - -3. **数据库初始化** - - 创建 MySQL 数据库和表结构 - - 初始化 Redis 缓存 - - 导入基础数据(如有) 4. **配置文件设置** - - 复制 `config.yaml.template` 为 `config.yaml` - - 设置 AI 模型 API 密钥 - - 配置数据库连接参数 - - 设置其他系统参数 + - 复制`config.yaml.template`为`config.yaml` + - 使用文本编辑器打开`config.yaml` + - 按照注释说明配置AI模型API密钥、数据库连接等参数 -5. **启动系统** - - 启动微信客户端 - - 运行主程序:`python main.py` - - 验证系统功能 +### 2.3 启动系统 -## 8. 未来扩展计划 +1. **启动微信客户端** + - 确保您已登录PC版微信客户端 -**功能描述**: -系统计划在未来版本中实现的功能和改进。 +2. **启动WeChatRobot** + - 双击`bot_start.bat`文件 + - 或在命令提示符中运行:`python main.py` -**详细计划**: -1. **功能扩展** - - 更多游戏类型支持 - - 语音识别和处理 - - 图像识别和处理 - - 多语言支持 +3. **验证启动** + - 系统启动后,会在控制台显示启动信息 + - 可以在微信中发送`#帮助`命令测试系统是否正常运行 -2. **性能优化** - - 消息处理流程优化 - - 数据库查询优化 - - 缓存策略改进 +## 3. 基本功能 -3. **用户体验提升** - - 移动端管理界面 - - 更丰富的数据可视化 - - 个性化配置选项 +### 3.1 通用命令 -4. **AI能力增强** - - 更多AI模型集成 - - 多模态内容生成 - - 自定义模型训练 +| 命令 | 功能描述 | +| ---- | ------- | +| `#帮助` | 显示帮助信息 | +| `#菜单` | 显示功能菜单 | +| `#状态` | 查看机器人状态 | +| `#版本` | 查看系统版本信息 | -5. **生态系统建设** - - 插件系统 - - 开发者文档 - - 社区贡献机制 +### 3.2 功能开关命令 -## 9. 附录 +| 命令 | 功能描述 | +| ---- | ------- | +| `#菜单状态` | 查看各功能启用状态 | +| `[功能]-启用` | 启用特定功能(需管理员权限) | +| `[功能]-关闭` | 关闭特定功能(需管理员权限) | -### 9.1 术语表 +### 3.3 使用示例 -| 术语 | 描述 | -| ---- | ---- | -| wcferry | 微信客户端接口库,用于与微信进行交互 | -| AI模型 | 人工智能模型,如豆包、TigerBot等,用于生成智能回复 | -| 积分系统 | 用户在系统中获取和使用的虚拟货币系统 | -| 任务系统 | 百科问答游戏的核心功能模块 | -| Redis | 内存数据库,用于缓存临时数据 | -| MySQL | 关系型数据库,用于存储持久化数据 | -| Flask | Python Web框架,用于构建管理界面 | -| Token | AI模型处理文本的计量单位 | +``` +用户:#帮助 +机器人:WeChatRobot帮助信息 +可用命令: +#帮助 - 显示此帮助信息 +#菜单 - 显示功能菜单 +#状态 - 查看机器人状态 +...(更多命令) -### 9.2 参考文档 +用户:#菜单 +机器人:WeChatRobot功能菜单 +1. AI对话 - @机器人 进行对话 +2. 群聊总结 - #总结 生成群聊摘要 +3. 百科问答 - #出题 开始游戏 +...(更多功能) +``` -1. Python 官方文档:https://docs.python.org/ -2. Flask 文档:https://flask.palletsprojects.com/ -3. MySQL 文档:https://dev.mysql.com/doc/ -4. Redis 文档:https://redis.io/documentation -5. wcferry 文档:参考项目GitHub页面 -6. 各AI模型API文档:参考各服务提供商官方文档 +## 4. AI对话功能 + +### 4.1 基本使用 + +AI对话功能支持与多种AI模型进行智能对话,系统会记住对话上下文,提供连贯的交流体验。 + +#### 4.1.1 触发方式 + +- 在群聊中:`@机器人 [问题内容]` +- 在私聊中:直接发送问题 + +#### 4.1.2 模型切换 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#切换模型 [模型名称]` | 切换AI对话使用的模型 | +| `#模型列表` | 查看可用的AI模型列表 | + +### 4.2 使用示例 + +``` +用户:@机器人 请介绍一下Python语言的特点 +机器人:Python是一种高级编程语言,具有以下特点: +1. 简洁易读的语法 +2. 强大的第三方库支持 +3. 跨平台兼容性 +4. 解释型语言,无需编译 +5. 支持多种编程范式,包括面向对象、命令式和函数式编程 +... + +用户:#切换模型 豆包 +机器人:已切换到豆包模型,您可以继续对话。 +``` + +## 5. 群聊管理功能 + +### 5.1 自动欢迎 + +当新成员加入群聊时,系统会自动发送欢迎消息。 + +#### 5.1.1 配置欢迎消息 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#设置欢迎语 [欢迎内容]` | 设置群欢迎语(需管理员权限) | +| `#查看欢迎语` | 查看当前群欢迎语 | + +### 5.2 群成员管理 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#群成员` | 查看群成员列表 | +| `#群统计` | 查看群活跃度统计 | + +### 5.3 使用示例 + +``` +[新成员张三加入群聊] +机器人:欢迎张三加入本群!请简单介绍一下自己吧~ + +用户:#设置欢迎语 欢迎加入我们的大家庭,请阅读群公告了解群规则。 +机器人:欢迎语设置成功! + +用户:#群成员 +机器人:当前群成员(共25人): +张三、李四、王五... +``` + +## 6. 群聊总结功能 + +### 6.1 基本使用 + +群聊总结功能可以自动分析群聊内容,生成精华摘要,帮助用户快速了解群聊动态。 + +#### 6.1.1 触发方式 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#总结` 或 `#summary` | 生成群聊总结 | + +### 6.2 使用说明 + +- 总结功能需要群内有足够的历史消息(至少100条) +- 总结结果会以图片形式发送到群聊 +- 总结内容包括热门话题、活跃成员、关键信息等 + +### 6.3 使用示例 + +``` +用户:#总结 +机器人:[发送一张包含以下内容的图片] + +【群聊总结】2024-05-20 +今日热门话题: +1. Python编程技巧讨论(15条消息) +2. 周末聚会安排(12条消息) +3. 新项目进展汇报(8条消息) + +活跃成员: +🥇 张三:25条消息 +🥈 李四:18条消息 +🥉 王五:12条消息 + +重要信息: +1. 本周六下午3点在咖啡厅举行技术分享会 +2. 项目截止日期延期至下周五 +3. 新版本将于周四发布 + +【tokens】输入: 3245 生成: 512 总: 3757 +``` + +## 7. 游戏任务系统 + +### 7.1 百科问答游戏 + +百科问答游戏是一个基于积分的知识问答系统,用户可以通过回答问题获取积分。 + +#### 7.1.1 基本命令 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#出题` | 获取一个随机问题 | +| `#答案 [答案内容]` | 提交答案 | +| `#提示` | 获取当前问题的提示 | +| `#放弃` | 放弃当前问题 | + +#### 7.1.2 查询命令 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#积分` | 查看个人积分 | +| `#排行` | 查看积分排行榜 | +| `#任务` | 查看当前活跃的任务 | + +### 7.2 使用示例 + +``` +用户:#出题 +机器人:【百科问答】 +问题:被称为"计算机科学之父"的数学家是谁? +难度:★★☆☆☆ +积分:10分 +请使用 #答案 [您的答案] 回答 + +用户:#答案 阿兰·图灵 +机器人:恭喜您答对了! +正确答案:阿兰·图灵 +您获得了10积分,当前积分:85 + +用户:#排行 +机器人:【积分排行榜】 +🥇 张三:120分 +🥈 李四:85分 +🥉 王五:65分 +... +``` + +## 8. 积分交易系统 + +### 8.1 基本使用 + +积分交易系统允许用户之间转移积分,支持多种命令格式。 + +#### 8.1.1 转账命令 + +以下命令均可用于积分转账: +- `积分转账 [积分数] @[用户]` +- `积分交易 [积分数] @[用户]` +- `积分赠送 [积分数] @[用户]` +- `转账积分 [积分数] @[用户]` +- `送积分 [积分数] @[用户]` + +#### 8.1.2 查询命令 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#积分` | 查看个人积分余额 | +| `#积分记录` | 查看积分交易历史 | + +### 8.2 使用示例 + +``` +用户:积分转账 20 @李四 +机器人:转账成功! +您已向李四转账20积分 +您的当前积分:65 +李四的当前积分:105 + +用户:#积分 +机器人:您的当前积分:65 +积分来源: +- 答题获得:+85 +- 转账支出:-20 +``` + +## 9. 签到系统 + +### 9.1 基本使用 + +签到系统允许用户每日签到获取积分,支持连续签到奖励。 + +#### 9.1.1 签到命令 + +| 命令 | 功能描述 | +| ---- | ------- | +| `#签到` | 执行每日签到 | +| `#我的签到` | 查看签到记录 | +| `#签到排行` | 查看签到排行榜 | + +### 9.2 签到规则 + +- 每人每天只能签到一次 +- 连续签到有额外奖励: + - 连续3天:基础积分×1.2 + - 连续7天:基础积分×1.5 + - 连续30天:基础积分×2.0 +- 节假日签到有额外奖励 + +### 9.3 使用示例 + +``` +用户:#签到 +机器人:签到成功! +今日获得5积分 +您已连续签到3天,获得额外奖励1积分 +当前总积分:71 + +用户:#我的签到 +机器人:【签到记录】 +连续签到:3天 +本月签到:15天 +总计签到:45天 +下次额外奖励:连续签到7天 +``` + +## 10. 常见问题解答 + +### 10.1 系统问题 + +**Q: 系统启动失败,显示"无法连接到微信客户端"怎么办?** + +A: 请检查以下几点: +- 确保PC版微信客户端已启动并登录 +- 确保wcferry服务正常运行 +- 尝试重启微信客户端和WeChatRobot + +**Q: 命令发送后没有响应怎么办?** + +A: 可能的原因: +- 命令格式错误,请检查命令格式 +- 该功能在当前群组已被禁用 +- 系统正在处理其他请求,请稍后再试 +- 网络连接不稳定,影响消息传输 + +**Q: 如何解决AI回复速度慢的问题?** + +A: 可以尝试以下方法: +- 切换到响应更快的AI模型(如`#切换模型 豆包`) +- 减少提问内容的复杂度 +- 检查网络连接质量 +- 在系统配置中调整超时设置 + +### 10.2 功能问题 + +**Q: 为什么群聊总结功能无法使用?** + +A: 群聊总结功能需要满足以下条件: +- 群聊中至少有100条历史消息 +- 该功能在群组中已启用 +- AI服务正常运行 +- 您有使用该功能的权限 + +**Q: 积分转账失败的原因有哪些?** + +A: 积分转账可能失败的原因: +- 您的积分余额不足 +- 转账格式不正确 +- 接收方不在系统中 +- 转账金额超出限制 + +**Q: 如何恢复被删除的数据?** + +A: 系统会定期备份数据,如需恢复数据,请联系系统管理员。普通用户无法直接恢复已删除的数据。 + +## 11. 高级功能使用 + +### 11.1 自定义AI提示词 + +高级用户可以通过特定命令自定义AI模型的系统提示词,使AI回复更符合特定场景需求。 + +**使用方法**: +``` +#设置提示词 [提示词内容] +``` + +**示例**: +``` +#设置提示词 你是一位幽默风趣的助手,喜欢用emoji表情,回答简洁明了。 +``` + +### 11.2 定时任务设置 + +您可以设置定时执行的任务,如定时提醒、定时发送消息等。 + +**使用方法**: +``` +#定时 [时间] [内容] +``` + +**示例**: +``` +#定时 每天9:00 请大家记得打卡 +``` + +### 11.3 数据导出 + +系统支持导出个人数据,包括积分记录、签到历史等。 + +**使用方法**: +``` +#导出数据 [数据类型] +``` + +**支持的数据类型**: +- 积分记录 +- 签到历史 +- 游戏记录 + +## 12. 管理员功能 + +### 12.1 群组管理 + +群组管理员可以使用以下命令管理群聊功能: + +| 命令 | 功能描述 | +| ---- | ------- | +| `#功能列表` | 查看所有可用功能 | +| `#启用 [功能名]` | 启用特定功能 | +| `#禁用 [功能名]` | 禁用特定功能 | +| `#设置权限 @用户 [权限级别]` | 设置用户权限 | + +### 12.2 积分管理 + +管理员可以管理用户积分: + +| 命令 | 功能描述 | +| ---- | ------- | +| `#奖励积分 @用户 [数量] [原因]` | 奖励用户积分 | +| `#扣除积分 @用户 [数量] [原因]` | 扣除用户积分 | +| `#积分重置 @用户` | 重置用户积分(谨慎使用) | + +### 12.3 系统监控 + +管理员可以监控系统状态: + +| 命令 | 功能描述 | +| ---- | ------- | +| `#系统状态` | 查看系统运行状态 | +| `#资源使用` | 查看资源使用情况 | +| `#错误日志` | 查看最近的错误日志 | + +## 13. 使用技巧 + +### 13.1 AI对话技巧 + +1. **提问清晰明确**:明确表达您的需求,避免模糊不清的问题 +2. **分步骤提问**:复杂问题可以分成多个简单问题依次提问 +3. **利用上下文**:AI会记住对话上下文,可以基于之前的回答继续提问 +4. **指定回答格式**:可以要求AI以特定格式回答,如"请用表格列出" + +### 13.2 群聊管理技巧 + +1. **定期总结**:使用`#总结`命令定期总结群聊内容,帮助新成员快速了解讨论主题 +2. **合理设置权限**:根据群聊性质设置适当的功能权限 +3. **活跃气氛**:定期使用游戏功能增加群聊活跃度 +4. **及时清理**:定期清理无用消息,保持群聊环境整洁 + +### 13.3 积分获取技巧 + +1. **每日签到**:坚持每日签到,连续签到有额外奖励 +2. **积极参与游戏**:参与百科问答游戏获取积分 +3. **节假日签到**:节假日签到通常有额外奖励 +4. **帮助他人**:回答他人问题可能获得管理员奖励的积分 + +## 14. 隐私与安全 + +### 14.1 数据隐私 + +WeChatRobot 重视用户隐私保护,我们的隐私政策包括: + +1. **数据收集**:仅收集必要的用户数据,如微信ID、昵称等 +2. **数据使用**:收集的数据仅用于提供服务,不会用于其他商业目的 +3. **数据存储**:用户数据存储在安全的数据库中,采取加密措施保护 +4. **数据访问**:仅授权人员可以访问用户数据,严格控制访问权限 + +### 14.2 安全建议 + +为保障您的账号安全,建议: + +1. **不要分享敏感信息**:避免在群聊中分享敏感个人信息 +2. **定期检查权限**:定期检查群聊功能权限设置 +3. **谨慎使用第三方功能**:使用第三方功能时注意保护个人信息 +4. **及时报告问题**:发现安全问题及时向管理员报告 + +## 15. 联系与支持 + +如果您在使用过程中遇到任何问题,或有任何建议和反馈,请通过以下方式联系我们: + +- **问题反馈**:在群聊中发送`#反馈 [内容]` +- **邮件支持**:support@wechatrobot.example.com +- **用户社区**:加入我们的用户交流群(请发送`#加群`获取邀请) + +我们的技术支持团队将在工作时间内(周一至周五 9:00-18:00)回复您的问题。 + +## 16. 版本更新 + +### 16.1 更新方式 + +当有新版本发布时,您可以通过以下方式更新: + +1. **自动更新**:系统会在启动时检查更新,发现新版本会提示更新 +2. **手动更新**: + - 从官方网站下载最新版本 + - 备份您的配置文件(config.yaml) + - 解压新版本文件,替换旧文件 + - 恢复您的配置文件 + - 重启系统 + +### 16.2 更新内容 + +每次更新的具体内容会在发布说明中详细列出,通常包括: +- 新增功能 +- 功能改进 +- 问题修复 +- 性能优化 --- -本文档详细描述了 WeChatRobot 项目的需求规格,为开发团队提供了明确的开发指导。随着项目的进展,本文档可能会进行更新和补充。 \ No newline at end of file +感谢您选择使用WeChatRobot!我们致力于为您提供更好的微信自动化体验。如有任何问题或建议,欢迎随时联系我们。 \ No newline at end of file