270 lines
5.5 KiB
Markdown
270 lines
5.5 KiB
Markdown
# WeChatRobot
|
||
|
||
一个基于Python的微信机器人项目,支持多种AI模型集成,提供消息自动回复、群管理等功能。
|
||
|
||
## 功能特点
|
||
|
||
- 支持多种AI模型集成(Claude、DeepSeek、豆包等)
|
||
- 自动消息回复和处理
|
||
- 群管理功能
|
||
- 数据库消息存档
|
||
- 邮件通知系统
|
||
- 系统监控集成
|
||
|
||
## 系统要求
|
||
|
||
- Python 3.8+
|
||
- MySQL 数据库
|
||
- Redis 服务器
|
||
- 支持的操作系统:Windows/Linux/MacOS
|
||
|
||
## 环境配置
|
||
|
||
1. 克隆项目到本地:
|
||
```bash
|
||
git clone [项目地址]
|
||
cd WeChatRobot
|
||
```
|
||
|
||
2. 创建并激活虚拟环境:
|
||
```bash
|
||
python -m venv .venv
|
||
# Windows
|
||
.venv\Scripts\activate
|
||
# Linux/MacOS
|
||
source .venv/bin/activate
|
||
```
|
||
|
||
3. 安装依赖:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
4. 配置数据库:
|
||
- 确保MySQL服务已启动
|
||
- 创建数据库:message_archive
|
||
- 配置数据库连接信息(config.yaml)
|
||
|
||
5. 配置Redis:
|
||
- 确保Redis服务已启动
|
||
- 配置Redis连接信息(config.yaml)
|
||
|
||
## 配置文件说明
|
||
|
||
在 `config.yaml` 中配置以下内容:
|
||
|
||
### 1. AI模型配置
|
||
|
||
#### Claude AI
|
||
```yaml
|
||
claude:
|
||
key: "your-api-key"
|
||
api: "http://127.0.0.1:8080/v1/chat/completions"
|
||
model: "windsurf/gpt4o"
|
||
prompt: "your-prompt-template"
|
||
```
|
||
|
||
#### DeepSeek AI
|
||
```yaml
|
||
deepseek:
|
||
key: "your-api-key"
|
||
api: "https://api.deepseek.com/chat/completions"
|
||
model: "deepseek-chat"
|
||
prompt: "your-prompt-template"
|
||
```
|
||
|
||
#### 豆包AI
|
||
```yaml
|
||
doubao:
|
||
key: "your-api-key"
|
||
api: "https://ark.cn-beijing.volces.com/api/v3/chat/completions"
|
||
model: "doubao-1-5-lite-32k-250115"
|
||
prompt: "your-prompt-template"
|
||
```
|
||
|
||
### 2. 数据库配置
|
||
```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"
|
||
use_unicode: true
|
||
get_warnings: true
|
||
pool_reset_session: true
|
||
```
|
||
|
||
### 3. Redis配置
|
||
```yaml
|
||
redis_config:
|
||
host: "your-redis-host"
|
||
port: 6379
|
||
db: 0
|
||
decode_responses: true
|
||
```
|
||
|
||
### 4. 邮件配置
|
||
```yaml
|
||
email_config:
|
||
smtp_server: "smtp.163.com"
|
||
smtp_port: 465
|
||
sender_email: "your-email@163.com"
|
||
sender_password: "your-email-password"
|
||
alert_recipient: "alert-recipient@example.com"
|
||
```
|
||
|
||
### 5. 系统监控配置
|
||
```yaml
|
||
glances:
|
||
host: "your-glances-host"
|
||
port: 61208
|
||
```
|
||
|
||
## 插件配置说明
|
||
|
||
### 1. AI聊天插件 (dify)
|
||
```yaml
|
||
Dify:
|
||
enable: true
|
||
commands: ["ai", "dify", "聊天", "AI"]
|
||
command-tip: "聊天 请求内容"
|
||
api-key: "your-dify-api-key"
|
||
base-url: "your-dify-base-url"
|
||
price: 0
|
||
admin_ignore: false
|
||
whitelist_ignore: false
|
||
http-proxy: ""
|
||
```
|
||
|
||
### 2. 音乐插件 (music)
|
||
```yaml
|
||
Music:
|
||
enable: true
|
||
command: ["点歌", "音乐"]
|
||
command-format: "点歌 歌曲名"
|
||
```
|
||
|
||
### 3. 视频插件 (video_man)
|
||
```yaml
|
||
VideoMan:
|
||
enable: true
|
||
command: ["猛男", "肌肉", "帅哥"]
|
||
command-format: "猛男"
|
||
```
|
||
|
||
### 4. 群智闯关插件 (game_task)
|
||
```yaml
|
||
GameTask:
|
||
enable: true
|
||
command: ["/s", "/t", "/a", "/r", "/l", "/h"]
|
||
command-format: "游戏命令格式说明"
|
||
```
|
||
|
||
### 5. 积分交易插件 (point_trade)
|
||
```yaml
|
||
PointTrade:
|
||
enable: true
|
||
command: ["积分转账", "我的积分", "积分排行", "打劫", "保释"]
|
||
command-format: "积分相关命令格式"
|
||
```
|
||
|
||
### 6. 全球新闻插件 (global_news)
|
||
```yaml
|
||
GlobalNews:
|
||
enable: true
|
||
command: ["全球新闻", "国际新闻", "环球新闻", "政经新闻"]
|
||
command-format: "全球新闻 - 获取最新的全球政治经济新闻"
|
||
```
|
||
|
||
### 7. 自动加群插件 (group_auto_invite)
|
||
```yaml
|
||
GroupAutoInvite:
|
||
enable: true
|
||
command: ["#加群配置|", "#加群"]
|
||
command-format: "加群命令格式说明"
|
||
```
|
||
|
||
### 8. 系统更新插件 (system_updater)
|
||
```yaml
|
||
SystemUpdater:
|
||
enable: true
|
||
commands: ["更新系统", "系统更新"]
|
||
wait_time: 5
|
||
admin_wxids: ["admin-wxid1", "admin-wxid2"]
|
||
```
|
||
|
||
### 9. 插件管理器 (plugin_manager)
|
||
```yaml
|
||
PluginManager:
|
||
enable: true
|
||
command: ["插件", "plugin", "插件管理"]
|
||
command-format: "插件管理命令格式说明"
|
||
```
|
||
|
||
## 启动服务
|
||
|
||
1. 启动主程序:
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
2. 使用重启脚本(Linux/MacOS):
|
||
```bash
|
||
./restart.sh
|
||
```
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
WeChatRobot/
|
||
├── admin/ # 管理后台相关代码
|
||
├── base/ # 基础功能模块
|
||
├── db/ # 数据库相关代码
|
||
├── plugins/ # 插件目录
|
||
├── resource/ # 资源文件
|
||
├── static/ # 静态文件
|
||
├── utils/ # 工具函数
|
||
├── wechat_ipad/ # 微信相关核心代码
|
||
├── config.yaml # 配置文件
|
||
├── main.py # 主程序入口
|
||
├── requirements.txt # 依赖列表
|
||
└── restart.sh # 重启脚本
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. 确保所有API密钥配置正确
|
||
2. 数据库和Redis服务必须正常运行
|
||
3. 建议使用虚拟环境运行项目
|
||
4. 定期检查日志文件(wx_debug.log, wx_info.log, wx_error.log)
|
||
5. 部分功能需要消耗积分
|
||
6. 部分功能需要管理员权限
|
||
|
||
## 常见问题
|
||
|
||
1. 如果遇到依赖安装问题,请确保pip版本最新:
|
||
```bash
|
||
python -m pip install --upgrade pip
|
||
```
|
||
|
||
2. 如果遇到数据库连接问题,检查:
|
||
- 数据库服务是否运行
|
||
- 配置信息是否正确
|
||
- 数据库用户权限是否足够
|
||
|
||
3. 如果遇到Redis连接问题,检查:
|
||
- Redis服务是否运行
|
||
- 配置信息是否正确
|
||
- Redis服务器防火墙设置
|
||
|
||
4. 如果遇到API调用问题,检查:
|
||
- API密钥是否正确
|
||
- API服务是否可用
|
||
- 网络连接是否正常
|
||
|
||
## 许可证
|
||
|
||
本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。 |