mirror of
https://github.com/Zippland/Bubbles.git
synced 2026-02-25 08:58:26 +08:00
更新 README 文件,增加 AI 智能路由系统的介绍和使用说明,同时优化命令路由系统的描述,提升文档的清晰度和可读性。修改 robot.py 文件以支持 AI 路由器的初始化和消息处理逻辑。
This commit is contained in:
64
README.MD
64
README.MD
@@ -33,7 +33,12 @@
|
||||
|
||||
Bubbles 是一个功能丰富的微信机器人框架,基于 [wcferry](https://github.com/lich0821/wcferry) 和 [WechatRobot](https://github.com/lich0821/wechatrobot) 开发,支持接入多种LLM,提供丰富的交互功能和定时任务。该项目旨在将微信客户端转变为一个智能的个人助手,可以执行多种实用功能,带来便捷的用户体验。
|
||||
|
||||
和一般机器人框架不同的是,Bubbles 设计了一套简单的 [**命令路由系统**](https://github.com/Zippland/Bubbles/blob/main/commands/registry.py) ,让添加新功能变得容易,且不用改动任何原有的代码 —— 相当于给一个主线 Hub 添加一个插件,只用通过简单正则逻辑,即可将外部服务进行注册,将海量的、不同种类的工具集成到 AI 里。具体操作详见 **如何添加新功能(命令路由系统)** 章节。
|
||||
和一般机器人框架不同的是,Bubbles 设计了两套灵活的路由系统:
|
||||
|
||||
1. **命令路由系统** - 基于正则表达式的精确命令匹配,适合有明确触发词的功能
|
||||
2. **AI智能路由系统** - 基于AI的自然语言理解,自动识别用户意图并调用相应功能
|
||||
|
||||
通过这两套路由系统,添加新功能变得极其简单,且不需要改动原有代码。相当于给一个主线 Hub 添加插件,让海量的、不同种类的工具都能集成到 AI 里。具体操作详见 **如何添加新功能** 章节。
|
||||
|
||||
|
||||
#### 案例演示其一:使用自然语言设置提醒
|
||||
@@ -54,8 +59,9 @@ Bubbles 是一个功能丰富的微信机器人框架,基于 [wcferry](https:/
|
||||
- DeepSeek
|
||||
- Perplexity
|
||||
|
||||
#### 🛠️ 丰富的命令系统
|
||||
- 强大的命令路由系统,让功能新增无比简单
|
||||
#### 🛠️ 双重路由系统
|
||||
- **命令路由系统**:基于正则表达式的精确匹配,高效处理特定命令
|
||||
- **AI智能路由**:自然语言理解,无需记住特定命令格式
|
||||
- 支持自定义命令及参数
|
||||
- 预设 [多种实用和娱乐命令](#可用命令)
|
||||
|
||||
@@ -213,8 +219,10 @@ Bubbles-WechatAI/
|
||||
│ ├── ai_name.py # AI 模型接口实现
|
||||
│ └── ...
|
||||
├── commands/ # 命令系统
|
||||
│ ├── registry.py # 命令注册
|
||||
│ ├── handlers.py # 实现功能调用的函数
|
||||
│ ├── registry.py # 正则命令注册
|
||||
│ ├── handlers.py # 命令处理函数
|
||||
│ ├── ai_router.py # AI智能路由器
|
||||
│ ├── ai_functions.py # AI路由功能注册
|
||||
│ └── ...
|
||||
├── data/ # 数据文件
|
||||
│
|
||||
@@ -225,9 +233,11 @@ Bubbles-WechatAI/
|
||||
└── ...
|
||||
```
|
||||
|
||||
### ✨ 如何添加新功能(命令路由系统)
|
||||
### ✨ 如何添加新功能
|
||||
|
||||
本项目设计了一套简单的命令路由系统,让添加新功能变得容易。主要流程如下:
|
||||
本项目提供两种方式添加新功能:
|
||||
|
||||
#### 方式一:使用命令路由系统(适合有明确触发词的功能)
|
||||
|
||||
1. **定义功能逻辑 (可选但推荐)**:
|
||||
* 如果你的功能逻辑比较复杂,建议在 `function/` 目录下创建一个新的 Python 文件 (例如 `func_your_feature.py`)。
|
||||
@@ -260,6 +270,46 @@ Bubbles-WechatAI/
|
||||
4. **更新帮助信息 (可选)**:
|
||||
* 如果希望用户能在 `帮助` 命令中看到你的新功能,可以更新 `commands/handlers.py` 中的 `handle_help` 函数,将新命令的用法添加到帮助文本中。
|
||||
|
||||
#### 方式二:使用AI智能路由(适合自然语言交互的功能)
|
||||
|
||||
AI路由系统让用户可以用自然语言触发功能,无需记住特定命令格式:
|
||||
|
||||
1. **实现功能逻辑**:
|
||||
* 在 `function/` 目录下创建功能模块(如已有则跳过)
|
||||
|
||||
2. **注册AI路由功能**:
|
||||
* 打开 `commands/ai_functions.py`
|
||||
* 使用装饰器注册你的功能:
|
||||
```python
|
||||
@ai_router.register(
|
||||
name="your_function_name",
|
||||
description="功能描述(AI会根据这个判断用户意图)",
|
||||
examples=[
|
||||
"示例用法1",
|
||||
"示例用法2",
|
||||
"示例用法3"
|
||||
],
|
||||
params_description="参数说明"
|
||||
)
|
||||
def ai_handle_your_function(ctx: MessageContext, params: str) -> bool:
|
||||
# params 是AI从用户输入中提取的参数
|
||||
# 调用你的功能逻辑
|
||||
# 使用 ctx.send_text() 发送回复
|
||||
return True
|
||||
```
|
||||
|
||||
3. **工作原理**:
|
||||
* 用户发送消息时,如果正则路由未匹配,AI会分析用户意图
|
||||
* AI根据功能描述和示例,判断应该调用哪个功能
|
||||
* AI会自动提取参数并传递给功能处理函数
|
||||
|
||||
例如,注册了天气查询功能后,用户可以说:
|
||||
- "北京天气怎么样"
|
||||
- "查一下上海的天气"
|
||||
- "明天深圳会下雨吗"
|
||||
|
||||
AI都能理解并调用天气查询功能。
|
||||
|
||||
完成以上步骤后,重启机器人即可测试你的新功能!
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
Reference in New Issue
Block a user