更新README
This commit is contained in:
357
README.MD
357
README.MD
@@ -1,152 +1,263 @@
|
|||||||
# WeChatRobot
|
# A-BOT 智能助手
|
||||||
一个基于 [WeChatFerry](https://github.com/lich0821/WeChatFerry) 的微信机器人示例。
|
|
||||||
|
|
||||||
|[📖 文档](https://wechatferry.readthedocs.io/)|[📺 视频教程](https://mp.weixin.qq.com/s/APdjGyZ2hllXxyG_sNCfXQ)|[🙋 FAQ](https://mp.weixin.qq.com/s/Y2Q37VYV730Iu9TrgiCmCw)|[🚨【微信机器人】沙雕行为合集](https://mp.weixin.qq.com/s/mc8O5iuhy46X4Bgqs80E8g)|
|
A-BOT是一个功能丰富的微信机器人助手,集成了多种实用功能,包括AI聊天、群智闯关、积分系统、新闻推送等。
|
||||||
|:-:|:-:|:-:|:-:|
|
|
||||||
|
|
||||||
|||
|
## 📋 功能清单
|
||||||
|:-:|:-:|
|
|
||||||
|后台回复 `WCF` 加群交流|如果你觉得有用|
|
|
||||||
|
|
||||||
## Quick Start
|
### 1. 群智闯关
|
||||||
0. 遇到问题先看看上面的**文档、教程和 FAQ。**
|
- 答题游戏系统
|
||||||
- 按照步骤来,版本保持一致,少走弯路。
|
- 积分排行榜
|
||||||
- 按照步骤来,版本保持一致,少走弯路。
|
- 任务管理
|
||||||
- 按照步骤来,版本保持一致,少走弯路。
|
- 实时答题反馈
|
||||||
1. 安装 Python>=3.9(Python 12 需要自己编译依赖,慎选),例如 [3.10.11](https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe)
|
|
||||||
2. 安装微信 `3.9.10.27`,下载地址在 [这里](https://github.com/lich0821/WeChatRobot/releases/latest) 找到。
|
|
||||||
3. 克隆项目
|
|
||||||
```sh
|
|
||||||
git clone https://github.com/lich0821/WeChatRobot.git
|
|
||||||
|
|
||||||
# 如果网络原因打不开,可以科学上网,或者使用gitee
|
### 2. 积分交易系统
|
||||||
git clone https://gitee.com/lch0821/WeChatRobot.git
|
- 积分转账
|
||||||
```
|
- 积分查询
|
||||||
|
- 积分排行榜
|
||||||
|
- 打劫系统
|
||||||
|
- 保释功能
|
||||||
|
|
||||||
如果觉得克隆复杂,也可以直接下载 [最新版](https://github.com/lich0821/WeChatRobot/releases/latest) 到本地解压。
|
### 3. 全球快讯
|
||||||
|
- 国际政经新闻推送
|
||||||
|
- 实时新闻更新
|
||||||
|
|
||||||
4. 安装依赖
|
### 4. AI聊天
|
||||||
```sh
|
- 智能对话
|
||||||
# 升级 pip
|
- 多模型支持(支持多种AI模型)
|
||||||
python -m pip install -U pip
|
|
||||||
# 安装必要依赖
|
### 5. 媒体内容
|
||||||
|
- 秀人图片
|
||||||
|
- 猛男视频
|
||||||
|
- 美腿图片
|
||||||
|
- 音乐点播
|
||||||
|
- 抖音视频解析
|
||||||
|
|
||||||
|
### 6. 群管理功能
|
||||||
|
- 群自动邀请
|
||||||
|
- 插件管理系统
|
||||||
|
- 消息智能总结
|
||||||
|
|
||||||
|
### 7. 其他功能
|
||||||
|
- 每日签到系统
|
||||||
|
- 系统更新
|
||||||
|
- 视频分享
|
||||||
|
|
||||||
|
## 🚀 安装说明
|
||||||
|
|
||||||
|
### 环境要求
|
||||||
|
- Python 3.8+
|
||||||
|
- MySQL 数据库
|
||||||
|
- Redis 服务
|
||||||
|
- Git(用于系统更新)
|
||||||
|
|
||||||
|
### 依赖安装
|
||||||
|
```bash
|
||||||
|
# 克隆项目
|
||||||
|
git clone https://github.com/your-username/WeChatRobot.git
|
||||||
|
cd WeChatRobot
|
||||||
|
|
||||||
|
# 创建虚拟环境
|
||||||
|
python -m venv .venv
|
||||||
|
source .venv/bin/activate # Linux/Mac
|
||||||
|
# 或
|
||||||
|
.venv\Scripts\activate # Windows
|
||||||
|
|
||||||
|
# 安装依赖
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
# ChatGLM 还需要安装一个 kernel
|
|
||||||
ipython kernel install --name chatglm3 --user
|
|
||||||
```
|
```
|
||||||
|
|
||||||
5. 运行
|
### 主要依赖包
|
||||||
|
- 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
|
||||||
|
|
||||||
我们需要运行两次 `main.py` 第一次是生成配置文件 `config.yaml`, 第二次是真正跑你的机器人。
|
## 🔌 插件依赖说明
|
||||||
直接运行程序会自动拉起微信,如果微信未打开,会自动打开微信;如果版本不对,也会有提示;其他报错,请进群交流。
|
|
||||||
|
|
||||||
下面代码为第一次运行:第一次运行 `main.py` 会在 WeChatRobot 目录下生成一个 `config.yaml` 文件,参照修改配置进行修改。
|
### 核心服务依赖
|
||||||
|
- MySQL数据库:用于存储用户数据、积分记录、群组信息等
|
||||||
|
- Redis服务:用于缓存和会话管理
|
||||||
|
- Dify服务:用于AI聊天功能([Dify开源地址](https://docs.dify.ai/zh-hans/introduction))
|
||||||
|
|
||||||
其中 chatgpt、tigerbot、chatglm 和 xinghuo_web 是四种模型的配置信息,你需要配置它们的参数,不知道的可以加群交流。
|
### 外部API依赖
|
||||||
|
- 天气API:用于天气查询功能
|
||||||
|
- 新闻API:用于全球快讯功能
|
||||||
|
- 音乐API:用于音乐点播功能
|
||||||
|
- 抖音解析服务:用于视频解析功能
|
||||||
|
|
||||||
```sh
|
### 系统依赖
|
||||||
python main.py
|
- Python 3.8+
|
||||||
|
- Git:用于系统更新
|
||||||
|
- 文件系统存储空间:用于存储媒体文件
|
||||||
|
- 网络代理支持(可选):用于访问特定服务
|
||||||
|
|
||||||
# 需要停止按 Ctrl+C
|
### 插件特定依赖
|
||||||
|
|
||||||
|
1. **Dify插件**
|
||||||
|
- Dify服务(自部署或云服务)
|
||||||
|
- API密钥配置
|
||||||
|
- 代理设置(可选)
|
||||||
|
|
||||||
|
2. **抖音解析插件**
|
||||||
|
- 网络请求库
|
||||||
|
- 文件系统存储
|
||||||
|
- 代理支持(可选)
|
||||||
|
|
||||||
|
3. **群智闯关插件**
|
||||||
|
- MySQL数据库
|
||||||
|
- 积分系统集成
|
||||||
|
|
||||||
|
4. **积分交易插件**
|
||||||
|
- MySQL数据库
|
||||||
|
- 用户系统集成
|
||||||
|
|
||||||
|
5. **全球快讯插件**
|
||||||
|
- 新闻API服务
|
||||||
|
- 网络请求库
|
||||||
|
|
||||||
|
6. **音乐插件**
|
||||||
|
- 音乐API服务
|
||||||
|
- 音频处理库
|
||||||
|
|
||||||
|
7. **视频插件**
|
||||||
|
- 视频处理库
|
||||||
|
- 存储系统
|
||||||
|
|
||||||
|
8. **群管理插件**
|
||||||
|
- 数据库支持
|
||||||
|
- 群管理API
|
||||||
|
|
||||||
|
## 📖 使用说明
|
||||||
|
|
||||||
|
### 基础命令
|
||||||
|
1. 群智闯关
|
||||||
|
- `/s` - 加入答题游戏
|
||||||
|
- `/t` - 获取新问题
|
||||||
|
- `/a 任务ID 答案` - 回答问题
|
||||||
|
- `/r` - 查看排行榜
|
||||||
|
- `/l` - 查看活跃问题
|
||||||
|
- `/h` - 查看未解决问题
|
||||||
|
|
||||||
|
2. 积分系统
|
||||||
|
- `积分转账 积分数 @用户` - 转账积分
|
||||||
|
- `我的积分` - 查询积分
|
||||||
|
- `积分排行` - 查看排行榜
|
||||||
|
- `打劫 @用户` - 打劫积分
|
||||||
|
- `保释 @用户` - 保释用户
|
||||||
|
|
||||||
|
3. 新闻功能
|
||||||
|
- `全球新闻` - 获取国际新闻
|
||||||
|
- 支持:`国际新闻`、`环球新闻`、`政经新闻`
|
||||||
|
|
||||||
|
4. AI聊天
|
||||||
|
- `聊天 问题` - 与AI对话
|
||||||
|
- 支持:`ai`、`dify`、`AI` 开头
|
||||||
|
|
||||||
|
5. 插件管理
|
||||||
|
- `插件 列表` - 查看插件
|
||||||
|
- `插件 启用 [插件名]` - 启用插件
|
||||||
|
- `插件 禁用 [插件名]` - 禁用插件
|
||||||
|
- `插件 信息 [插件名]` - 查看插件信息
|
||||||
|
|
||||||
|
### 媒体功能
|
||||||
|
- `图来`/`秀人` - 获取图片
|
||||||
|
- `猛男` - 获取视频
|
||||||
|
- `美腿`/`腿来` - 获取美腿图片
|
||||||
|
- `点歌 歌曲名` - 点播音乐
|
||||||
|
- 直接发送抖音链接可自动解析
|
||||||
|
|
||||||
|
### 系统功能
|
||||||
|
- `签到` - 每日签到
|
||||||
|
- `更新系统` - 系统更新(管理员)
|
||||||
|
- `#总结` - 消息总结
|
||||||
|
|
||||||
|
## ⚙️ 配置说明
|
||||||
|
|
||||||
|
1. 配置文件位于 `config.yaml`
|
||||||
|
- 数据库配置
|
||||||
|
- API密钥配置
|
||||||
|
- 插件开关设置
|
||||||
|
- 代理设置
|
||||||
|
|
||||||
|
2. 数据库配置在 `configuration.py`
|
||||||
|
- MySQL连接信息
|
||||||
|
- Redis连接信息
|
||||||
|
- 其他数据库设置
|
||||||
|
|
||||||
|
3. 日志文件:
|
||||||
|
- wx_debug.log:调试日志
|
||||||
|
- wx_info.log:信息日志
|
||||||
|
- wx_error.log:错误日志
|
||||||
|
|
||||||
|
## 🔧 开发说明
|
||||||
|
|
||||||
|
项目结构:
|
||||||
|
```
|
||||||
|
├── admin/ # 管理后台
|
||||||
|
├── base/ # 基础功能
|
||||||
|
├── event_system/ # 事件系统
|
||||||
|
├── plugins/ # 插件目录
|
||||||
|
├── utils/ # 工具函数
|
||||||
|
├── wechat_ipad/ # 微信接口
|
||||||
|
├── main.py # 主程序
|
||||||
|
└── robot.py # 机器人核心
|
||||||
```
|
```
|
||||||
|
|
||||||
启动之后,可以正常接收消息但不会响应群消息。参考下方 [修改配置](#config) 进行配置,以便响应特定群聊。
|
### 插件开发
|
||||||
|
1. 在 `plugins` 目录下创建新的插件目录
|
||||||
|
2. 实现 `MessagePluginInterface` 接口
|
||||||
|
3. 在 `config.yaml` 中添加插件配置
|
||||||
|
4. 在插件管理器中注册插件
|
||||||
|
|
||||||
下面代码为第二次运行:你可以通过命令行参数选择模型,默认是不选择,这样你配置了什么参数就跑什么模型。正因如此你需要配置前面所说四种模型中的至少一种(当然也可以都配置,想跑那个模型就选什么参数), 然后就可以开始使用你的机器人了。
|
## 📝 注意事项
|
||||||
```sh
|
|
||||||
python main.py
|
|
||||||
|
|
||||||
# 需要停止按 Ctrl+C
|
1. 首次使用需要配置相关API密钥
|
||||||
```
|
2. 部分功能需要管理员权限
|
||||||
|
3. 建议定期备份数据库
|
||||||
|
4. 请遵守相关法律法规使用
|
||||||
|
5. 注意API调用频率限制
|
||||||
|
6. 定期检查日志文件
|
||||||
|
7. 保持系统更新
|
||||||
|
|
||||||
如果你配置了多个模型(不需要将其他配置注释或者移除),下面的内容才对你有帮助否则略过,通过 `python main.py -h` 通过参数可以选择要跑的模型。
|
## 🔄 更新日志
|
||||||
```sh
|
|
||||||
# 查看帮助
|
|
||||||
python main.py -h
|
|
||||||
#optional arguments:
|
|
||||||
# -h, --help show this help message and exit
|
|
||||||
# -c C, --chat_model C 选择要使用的AI模型,默认不选择,可选参数:1. tigerbot 模型 2. chatgpt 模型 3. 讯飞星火模型 4. chatglm 模型
|
|
||||||
```
|
|
||||||
|
|
||||||
```sh
|
### v1.0.0
|
||||||
# 例: 我想运行选择chatgpt的机器人
|
- 初始版本发布
|
||||||
python main.py -c 2
|
- 基础功能实现
|
||||||
|
- 插件系统支持
|
||||||
|
|
||||||
# 需要停止按 Ctrl+C
|
## 🤝 贡献指南
|
||||||
```
|
|
||||||
|
|
||||||
> python main.py -c C 其中参数 C 可选择如下所示
|
1. Fork 项目
|
||||||
>> 1. tigerbot 模型
|
2. 创建特性分支
|
||||||
>> 2. chatgpt 模型
|
3. 提交更改
|
||||||
>> 3. 讯飞星火模型
|
4. 推送到分支
|
||||||
>> 4. chatglm 模型
|
5. 创建 Pull Request
|
||||||
|
|
||||||
6. 停止
|
### 开发规范
|
||||||
|
- 遵循PEP 8编码规范
|
||||||
|
- 添加适当的注释
|
||||||
|
- 编写单元测试
|
||||||
|
- 更新文档
|
||||||
|
|
||||||
不要那么粗暴,温柔点儿;
|
## 📄 许可证
|
||||||
|
|
||||||
不要直接关闭窗口,温柔点儿。
|
本项目采用 MIT 许可证,详见 LICENSE 文件。
|
||||||
|
|
||||||
输入:`Ctrl+C`。否则,会出现各种奇怪问题。
|
## 📞 联系方式
|
||||||
|
|
||||||
### <a name="config"></a>修改配置
|
- 项目维护者:[维护者名称]
|
||||||
ℹ️ *修改配置后,需要重新启动,以便让配置生效。*
|
- 邮箱:[邮箱地址]
|
||||||
|
- 项目地址:[GitHub地址]
|
||||||
|
|
||||||
配置文件 `config.yaml` 是运行程序后自动从模板复制过来的,功能默认关闭。
|
## 🙏 致谢
|
||||||
|
|
||||||
#### 响应被 @ 消息
|
感谢所有为本项目做出贡献的开发者。
|
||||||
为了响应群聊消息,需要添加相应的 `roomId`。
|
|
||||||
|
|
||||||
第一次运行的时候,可以在手机上往需要响应的群里发消息,打印的消息中方括号里的就是;多个群用 `,` 分隔。
|
|
||||||
```yaml
|
|
||||||
groups:
|
|
||||||
enable: [] # 允许响应的群 roomId,大概长这样:2xxxxxxxxx3@chatroom, 多个群用 `,` 分隔
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 配置 AI 模型
|
|
||||||
为了使用 AI 模型,需要对相应模型并进行配置。
|
|
||||||
|
|
||||||
使用 ChatGLM 见注意事项 [README.MD](base/chatglm/README.MD)
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
chatgpt: # -----chatgpt配置这行不填-----
|
|
||||||
key: # 填写你 ChatGPT 的 key
|
|
||||||
api: https://api.openai.com/v1 # 如果你不知道这是干嘛的,就不要改
|
|
||||||
proxy: # 如果你在国内,你可能需要魔法,大概长这样:http://域名或者IP地址:端口号
|
|
||||||
prompt: 你是智能聊天机器人,你叫 wcferry # 根据需要对角色进行设定
|
|
||||||
|
|
||||||
chatglm: # -----chatglm配置这行不填-----
|
|
||||||
key: sk-012345678901234567890123456789012345678901234567 # 这个应该不用动
|
|
||||||
api: http://localhost:8000/v1 # 根据自己的chatglm地址修改
|
|
||||||
proxy: # 如果你在国内,你可能需要魔法,大概长这样:http://域名或者IP地址:端口号
|
|
||||||
prompt: 你是智能聊天机器人,你叫小薇 # 根据需要对角色进行设定
|
|
||||||
file_path: C:/Pictures/temp #设定生成图片和代码使用的文件夹路径
|
|
||||||
|
|
||||||
tigerbot: # -----tigerbot配置这行不填-----
|
|
||||||
key: # key
|
|
||||||
model: # tigerbot-7b-sft
|
|
||||||
|
|
||||||
# 抓取方式详见文档:https://www.bilibili.com/read/cv27066577
|
|
||||||
xinghuo_web: # -----讯飞星火web模式api配置这行不填-----
|
|
||||||
cookie: # cookie
|
|
||||||
fd: # fd
|
|
||||||
GtToken: # GtToken
|
|
||||||
prompt: 你是智能聊天机器人,你叫 wcferry。请用这个角色回答我的问题 # 根据需要对角色进行设定
|
|
||||||
|
|
||||||
bard: # -----bard配置这行不填-----
|
|
||||||
api_key: # api-key 创建地址:https://ai.google.dev/pricing,创建后复制过来即可
|
|
||||||
model_name: gemini-pro # 新模型上线后可以选择模型
|
|
||||||
proxy: http://127.0.0.1:7890 # 如果你在国内,你可能需要魔法,大概长这样:http://域名或者IP地址:端口号
|
|
||||||
# 提示词尽可能用英文,bard对中文提示词的效果不是很理想,下方提示词为英语老师的示例,请按实际需要修改,默认设置的提示词为谷歌创造的AI大语言模型
|
|
||||||
# I want you to act as a spoken English teacher and improver. I will speak to you in English and you will reply to me in English to practice my spoken English. I want you to keep your reply neat, limiting the reply to 100 words. I want you to strictly correct my grammar mistakes, typos, and factual errors. I want you to ask me a question in your reply. Now let's start practicing, you could ask me a question first. Remember, I want you to strictly correct my grammar mistakes, typos, and factual errors.
|
|
||||||
prompt: You am a large language model, trained by Google.
|
|
||||||
```
|
|
||||||
|
|
||||||
## HTTP
|
|
||||||
如需要使用 HTTP 接口,请参考:
|
|
||||||
* [wcfrust](https://github.com/lich0821/wcf-client-rust)(基于 Rust),开箱即用:[快速开始](https://github.com/lich0821/wcf-client-rust?tab=readme-ov-file#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)。
|
|
||||||
|
|
||||||
* GoHttp(基于 Go),参考 [GoHttp README.MD](https://github.com/lich0821/WeChatFerry/blob/master/clients/gohttp/README.md)
|
|
||||||
|
|
||||||
## 更多客户端
|
|
||||||
见 [WeChatFerry](https://github.com/lich0821/WeChatFerry?tab=readme-ov-file#python)。
|
|
||||||
|
|||||||
Reference in New Issue
Block a user