# wechat-manager-project **Repository Path**: nacker/wechat-manager-project ## Basic Information - **Project Name**: wechat-manager-project - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-19 - **Last Updated**: 2025-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微信公众号管理系统 基于Flask和WeChatPy的微信公众号管理系统,支持消息收发、用户管理和智能化交互。 ## 🚀 主要功能 ### 📱 消息收发功能 - **自动消息处理**: 自动接收和处理微信公众号消息 - **多消息类型支持**: 支持文本消息、图片消息、语音消息等 - **事件消息处理**: 自动处理关注、取消关注等事件 - **消息回复**: 智能回复用户消息,支持AI和规则回复 - **消息推送**: 支持主动向用户发送消息 ### 👥 用户管理功能 - **用户信息管理**: 自动获取和存储用户基本信息 - **关注状态跟踪**: 实时跟踪用户关注和取消关注状态 - **用户活跃度统计**: 统计用户消息数量和活跃时间 - **用户画像分析**: 基于用户行为分析用户偏好 - **用户分组管理**: 支持用户分组和标签管理 ### 🤖 智能交互功能 - **AI智能回复**: 集成OpenAI GPT模型,提供智能对话服务 - **上下文对话**: 支持多轮对话,保持对话上下文 - **情感分析**: 分析用户消息情感倾向 - **个性化推荐**: 基于用户偏好提供个性化内容 - **规则回复**: 提供备用的规则回复机制 ### 📊 数据统计功能 - **实时数据统计**: 实时统计用户数量、消息数量等关键指标 - **数据可视化**: 通过图表展示数据趋势 - **消息分析**: 分析消息类型、频率等数据 - **用户行为分析**: 分析用户活跃度和交互模式 - **报表导出**: 支持数据报表导出功能 ### 🎨 管理后台功能 - **现代化界面**: 基于Bootstrap 5的响应式管理界面 - **实时数据展示**: 实时显示系统运行状态和数据 - **用户管理界面**: 直观的用户信息查看和管理 - **消息记录查看**: 查看所有用户的消息历史 - **系统配置管理**: 管理系统配置和参数设置 ## 🛠️ 技术栈 - **后端框架**: Flask 2.3.3 - **微信SDK**: WeChatPy 1.8.18 - **数据库**: Redis 5.0.1 (缓存和会话存储) - **AI服务**: OpenAI API (智能回复) - **前端框架**: Bootstrap 5 + JavaScript - **消息处理**: 微信公众号API - **部署工具**: Docker + Docker Compose ## ❤️页面展示 ![项目](./image/1.png) ![项目](./image/2.png) ## ⚡ 快速开始 ### 1. 环境准备 确保你的系统已安装以下软件: - Python 3.7+ - Redis 5.0+ - Git ### 2. 克隆项目 ```bash git clone cd wechat-manager-project ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 配置环境变量 创建`.env`文件并配置以下变量: ```env # 微信公众号配置(必需) WECHAT_APP_ID=your_app_id_here WECHAT_APP_SECRET=your_app_secret_here WECHAT_TOKEN=your_token_here WECHAT_ENCODING_AES_KEY=your_encoding_aes_key_here # OpenAI配置(可选,用于智能回复) OPENAI_API_KEY=your_openai_api_key_here # Redis配置 REDIS_URL=redis://localhost:6379/0 # Flask配置 FLASK_SECRET_KEY=your_secret_key_here FLASK_ENV=development FLASK_HOST=0.0.0.0 FLASK_PORT=5000 ``` ### 5. 启动Redis服务 ```bash # Linux/macOS redis-server # Windows redis-server.exe ``` ### 6. 运行应用 ```bash # 使用启动脚本(推荐) python run.py # 或直接运行 python app.py ``` ### 7. 访问管理后台 打开浏览器访问:`http://localhost:5000` ## 📋 微信公众号配置 ### 1. 获取微信公众号信息 1. 登录微信公众平台 () 2. 进入"开发" -> "基本配置" 3. 获取AppID和AppSecret 4. 设置服务器配置: - URL: `http://your-domain.com/wechat` - Token: 自定义Token - EncodingAESKey: 自动生成或自定义 ### 2. 配置服务器 确保你的服务器可以通过HTTPS访问,微信要求服务器必须使用HTTPS。 ## 🚀 部署方式 ### 方式一:直接部署(推荐) 使用提供的部署脚本: ```bash # 给脚本执行权限 chmod +x deploy.sh # 部署应用 ./deploy.sh # 查看帮助 ./deploy.sh --help # 仅运行测试 ./deploy.sh --test # 清理部署 ./deploy.sh --cleanup ``` ### 方式二:Docker部署 ```bash # 使用Docker Compose docker-compose up -d # 查看服务状态 docker-compose ps # 查看日志 docker-compose logs -f app # 停止服务 docker-compose down ``` ### 方式三:手动部署 ```bash # 1. 安装依赖 pip install -r requirements.txt # 2. 启动Redis redis-server --daemonize yes # 3. 运行应用 python run.py # 4. 使用Gunicorn(生产环境) pip install gunicorn gunicorn -w 4 -b 0.0.0.0:5000 app:app ``` ### 方式四:云服务器部署 ```bash # 1. 上传代码到服务器 scp -r . user@your-server:/path/to/project # 2. 安装系统依赖 sudo apt-get update sudo apt-get install python3 python3-pip redis-server # 3. 配置环境变量 nano .env # 4. 使用systemd管理服务 sudo nano /etc/systemd/system/wechat-manager.service ``` ## 🎛️ 管理后台功能详解 ### 📊 仪表盘功能 - **实时统计卡片**: 显示总用户数、活跃用户、今日消息、总消息数 - **数据趋势图**: 展示用户增长和消息量趋势 - **最近活跃用户**: 显示最近活跃的用户列表 - **快速操作按钮**: 发送消息、刷新数据、查看用户等快捷操作 - **系统状态监控**: 显示系统运行状态和健康检查 ### 👥 用户管理功能 - **用户列表展示**: 显示所有用户的详细信息 - **用户信息查看**: 昵称、地区、关注时间、消息数量等 - **用户状态管理**: 关注状态、活跃状态等 - **用户搜索筛选**: 支持按昵称、地区等条件搜索 - **用户操作**: 查看消息记录、发送消息等操作 ### 💬 消息记录功能 - **全局消息记录**: 查看所有用户的消息历史 - **消息类型分类**: 用户消息、AI回复、系统消息 - **消息时间线**: 按时间顺序显示消息 - **消息搜索**: 支持按用户、时间、内容搜索 - **消息统计**: 消息类型、频率等统计分析 ### ⚙️ 系统设置功能 - **配置信息展示**: 显示当前系统配置状态 - **微信公众号配置**: AppID、AppSecret、Token等配置 - **AI服务配置**: OpenAI API配置状态 - **Redis连接状态**: 数据库连接状态检查 - **系统日志查看**: 查看系统运行日志 ### 📤 消息推送功能 - **用户选择**: 支持选择单个或多个用户 - **消息编辑**: 富文本消息编辑器 - **消息预览**: 发送前预览消息内容 - **发送状态**: 实时显示消息发送状态 - **发送历史**: 查看历史发送记录 ## 🤖 智能功能详解 ### AI智能回复 - **OpenAI集成**: 集成GPT-3.5-turbo模型 - **上下文对话**: 保持多轮对话上下文 - **个性化回复**: 基于用户信息个性化回复 - **多语言支持**: 支持中英文等多种语言 - **回复质量优化**: 控制回复长度和质量 ### 情感分析 - **文本情感识别**: 分析用户消息的情感倾向 - **情感词汇库**: 内置中文情感词汇库 - **情感统计**: 统计用户情感变化趋势 - **情感响应**: 根据情感调整回复策略 - **情感报告**: 生成用户情感分析报告 ### 用户偏好学习 - **话题识别**: 自动识别用户感兴趣的话题 - **交互频率分析**: 分析用户交互频率模式 - **偏好建模**: 构建用户偏好模型 - **个性化推荐**: 基于偏好推荐相关内容 - **偏好更新**: 动态更新用户偏好 ### 规则回复系统 - **关键词匹配**: 基于关键词的规则匹配 - **问候语识别**: 自动识别和处理问候语 - **帮助信息**: 提供功能帮助信息 - **时间查询**: 提供时间查询功能 - **天气查询**: 提供天气信息查询 ### 智能路由 - **消息分类**: 自动分类用户消息类型 - **路由策略**: 根据消息类型选择处理策略 - **优先级管理**: 设置消息处理优先级 - **负载均衡**: 智能分配处理负载 - **异常处理**: 智能处理异常情况 ## 📡 API接口文档 ### 统计数据接口 ```http GET /api/stats ``` 返回系统统计数据,包括用户数、消息数等。 ### 用户管理接口 ```http GET /api/users ``` 获取所有用户列表。 ```http GET /api/users//messages ``` 获取指定用户的消息历史。 ### 消息发送接口 ```http POST /api/send_message Content-Type: application/json { "user_id": "user_openid", "content": "消息内容" } ``` ### 微信接口 ```http GET/POST /wechat ``` 微信公众号消息接收和处理接口。 ## 🔧 项目结构 ``` wechat-manager-project/ ├── app.py # 主应用文件 ├── config.py # 配置文件 ├── run.py # 启动脚本 ├── test_app.py # 测试脚本 ├── deploy.sh # 部署脚本 ├── requirements.txt # 依赖包 ├── README.md # 项目说明 ├── Dockerfile # Docker配置 ├── docker-compose.yml # Docker Compose配置 ├── services/ # 服务层 │ ├── __init__.py │ ├── user_service.py # 用户服务 │ ├── message_service.py # 消息服务 │ └── ai_service.py # AI服务 └── templates/ # 模板文件 └── index.html # 管理后台页面 ``` ## 🧪 测试和验证 ### 运行系统测试 ```bash python test_app.py ``` ### 测试功能包括 - ✅ 应用健康状态检查 - ✅ 统计API功能测试 - ✅ 用户API功能测试 - ✅ 消息API功能测试 - ✅ 微信接口可访问性测试 ## ⚠️ 注意事项 1. **HTTPS要求**: 微信公众号要求服务器必须使用HTTPS 2. **Token安全**: 请妥善保管微信公众号的Token和AppSecret 3. **API限制**: 注意微信公众号API的调用频率限制 4. **数据备份**: 定期备份Redis数据 5. **监控告警**: 建议配置应用监控和错误告警 6. **日志管理**: 定期清理和归档日志文件 7. **安全防护**: 配置防火墙和安全策略 ## 🔍 常见问题 ### Q: 微信服务器验证失败 A: 检查Token配置是否正确,确保服务器可以正常访问 ### Q: 消息发送失败 A: 检查用户是否已关注公众号,以及API调用权限 ### Q: AI回复不工作 A: 检查OpenAI API Key配置,或使用规则回复模式 ### Q: Redis连接失败 A: 检查Redis服务是否启动,连接配置是否正确 ### Q: 管理后台无法访问 A: 检查Flask应用是否正常启动,端口是否被占用 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进这个项目。 ### 贡献方式 1. Fork 项目 2. 创建功能分支 3. 提交代码 4. 创建 Pull Request ### 代码规范 - 遵循PEP 8 Python代码规范 - 添加适当的注释和文档 - 编写单元测试 - 确保代码通过所有测试 ## 📄 许可证 MIT License ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交Issue - 发送邮件 - 微信联系 --- **感谢使用微信公众号管理系统!** 🎉