From 0037a8ddc68b58d38807005773e6638af6fe700b Mon Sep 17 00:00:00 2001 From: liuwei Date: Tue, 20 May 2025 16:32:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.MD | 357 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 234 insertions(+), 123 deletions(-) diff --git a/README.MD b/README.MD index 972acad..536c5d3 100644 --- a/README.MD +++ b/README.MD @@ -1,152 +1,263 @@ -# WeChatRobot -一个基于 [WeChatFerry](https://github.com/lich0821/WeChatFerry) 的微信机器人示例。 +# A-BOT 智能助手 -|[📖 文档](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聊天、群智闯关、积分系统、新闻推送等。 -|![碲矿](https://s2.loli.net/2023/09/25/fub5VAPSa8srwyM.jpg)|![赞赏](https://s2.loli.net/2023/09/25/gkh9uWZVOxzNPAX.jpg)| -|:-:|:-:| -|后台回复 `WCF` 加群交流|如果你觉得有用| +## 📋 功能清单 -## Quick Start -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 +### 1. 群智闯关 +- 答题游戏系统 +- 积分排行榜 +- 任务管理 +- 实时答题反馈 -# 如果网络原因打不开,可以科学上网,或者使用gitee -git clone https://gitee.com/lch0821/WeChatRobot.git -``` +### 2. 积分交易系统 +- 积分转账 +- 积分查询 +- 积分排行榜 +- 打劫系统 +- 保释功能 -如果觉得克隆复杂,也可以直接下载 [最新版](https://github.com/lich0821/WeChatRobot/releases/latest) 到本地解压。 +### 3. 全球快讯 +- 国际政经新闻推送 +- 实时新闻更新 -4. 安装依赖 -```sh -# 升级 pip -python -m pip install -U pip -# 安装必要依赖 +### 4. AI聊天 +- 智能对话 +- 多模型支持(支持多种AI模型) + +### 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 -# 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 -# 例: 我想运行选择chatgpt的机器人 -python main.py -c 2 +### v1.0.0 +- 初始版本发布 +- 基础功能实现 +- 插件系统支持 -# 需要停止按 Ctrl+C -``` +## 🤝 贡献指南 -> python main.py -c C 其中参数 C 可选择如下所示 ->> 1. tigerbot 模型 ->> 2. chatgpt 模型 ->> 3. 讯飞星火模型 ->> 4. chatglm 模型 +1. Fork 项目 +2. 创建特性分支 +3. 提交更改 +4. 推送到分支 +5. 创建 Pull Request -6. 停止 +### 开发规范 +- 遵循PEP 8编码规范 +- 添加适当的注释 +- 编写单元测试 +- 更新文档 -不要那么粗暴,温柔点儿; +## 📄 许可证 -不要直接关闭窗口,温柔点儿。 +本项目采用 MIT 许可证,详见 LICENSE 文件。 -输入:`Ctrl+C`。否则,会出现各种奇怪问题。 +## 📞 联系方式 -### 修改配置 -ℹ️ *修改配置后,需要重新启动,以便让配置生效。* +- 项目维护者:[维护者名称] +- 邮箱:[邮箱地址] +- 项目地址:[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)。 +感谢所有为本项目做出贡献的开发者。