MBE 终端接入概览
MBE 支持多种终端设备接入,为不同场景提供 AI 能力。
终端生态
┌─────────────────┐
│ MBE │
│ 行为引擎核心 │
│ 专家知识系统 │
└────────┬────────┘
│
┌───────────┬───────────┼───────────┬───────────┬───────────┐
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ 智能音箱 │ │ 车载终端 │ │ 智能手表 │ │ HA │ │ 智能家电 │ │ ESP32 │
│ 小爱/小度│ │ Android │ │ WearOS │ │ Assist │ │ 冰箱/洗衣│ │ DIY │
│ 天猫精灵 │ │ CarPlay │ │ WatchOS │ │ 自动化 │ │ 烤箱/空调│ │ IoT │
└─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘
终端列表
| 终端 | API | 超时 | 文档 | 状态 |
|---|---|---|---|---|
| 小爱同学 | /api/xiaoai/ |
3s | 内置 | ✅ 已上线 |
| 小度 | /api/xiaodu/ |
3s | 内置 | ✅ 已上线 |
| 天猫精灵 | /api/aligenie/ |
3s | 内置 | ✅ 已上线 |
| 智能手表 | /api/watch/ |
2s | WATCH_SETUP_GUIDE.md | ✅ 已上线 |
| 车载终端 | /api/vehicle/ |
2-4s | VEHICLE_SETUP_GUIDE.md | ✅ 已上线 |
| Home Assistant | /api/ha/ |
8s | HOME_ASSISTANT_SETUP.md | ✅ 已上线 |
| 智能家电 | /api/appliance/ |
5s | 本文档 | ✅ 已上线 |
| ESP32 IoT | /api/esp32/ |
5s | ESP32_SETUP_GUIDE.md | ✅ 已上线 |
| H5 网页 | /api/h5/ |
10s | 内置 | ✅ 已上线 |
| MCP 协议 | /mcp/ |
30s | 内置 | ✅ 已上线 |
响应时间设计
不同终端有不同的响应时间要求:
┌────────────────────────────────────────────────────────────────┐
│ 响应时间设计 │
├────────────────────────────────────────────────────────────────┤
│ │
│ ⚡ 极速 (≤2s) 智能音箱、智能手表、车载(驾驶模式) │
│ └─ 用户期望:即时响应,语音交互 │
│ └─ 策略:ultra_fast 模式,跳过 LLM 推理 │
│ │
│ 🚀 快速 (2-5s) 车载(停车)、智能家电、ESP32 │
│ └─ 用户期望:快速响应,可接受短暂等待 │
│ └─ 策略:fast_mode,简化处理流程 │
│ │
│ 📊 标准 (5-10s) H5 网页、Home Assistant │
│ └─ 用户期望:完整回答,可接受等待 │
│ └─ 策略:标准流程,完整 RAG 检索 │
│ │
│ 📚 深度 (10-30s) MCP 协议、API 直连 │
│ └─ 用户期望:深度分析,详细回答 │
│ └─ 策略:完整行为分析,多轮对话支持 │
│ │
└────────────────────────────────────────────────────────────────┘
专家模型性能指标
各终端实测数据
| 终端 | 测试问题 | 匹配专家 | 响应时间 | 超时限制 | 状态 |
|---|---|---|---|---|---|
| 小爱同学 | "深蹲正确姿势" | 运动教练 | 0.28s | 3s | ✅ |
| 小爱同学 | "离婚手续" | 民事律师 | 0.35s | 3s | ✅ |
| 智能手表 | "定时5分钟" | 本地处理 | 0.02s | 2s | ✅ |
| 智能手表 | "糖尿病饮食" | 营养师 | 0.32s | 2s | ✅ |
| 车载(驾驶) | "导航回家" | 本地处理 | 0.03s | 2s | ✅ |
| 车载(停车) | "附近美食" | 生活助手 | 1.8s | 4s | ✅ |
| 智能冰箱 | "鸡蛋保存" | 营养师 | 1.5s | 5s | ✅ |
| Home Assistant | "天气预报" | 生活助手 | 2.1s | 8s | ✅ |
| H5 网页 | "合同纠纷咨询" | 民事律师 | 3.2s | 10s | ✅ |
各专家基准性能
测试环境:RTX 3080, 32GB RAM
| 专家 | 知识库规模 | RAG 检索 | LLM 生成 | 总响应 | ultra_fast |
|---|---|---|---|---|---|
| 中国民事律师 | 350K案例 | 180ms | 2.5s | 2.7s | 0.3s |
| 运动教练专家 | 500文档 | 120ms | 1.8s | 2.0s | 0.2s |
| 营养治疗师专家 | 800文档 | 150ms | 2.0s | 2.2s | 0.25s |
| 手工面包专家 | 300文档 | 100ms | 1.5s | 1.6s | 0.15s |
| 心理健康顾问 | 200文档 | 80ms | 1.8s | 1.9s | 0.2s |
| 系统设计专家 | 400文档 | 130ms | 2.2s | 2.3s | 0.25s |
| 通用生活助手 | 100文档 | 60ms | 1.2s | 1.3s | 0.1s |
响应模式对比
| 模式 | 响应时间 | 专家匹配 | 知识检索 | 生成方式 | 适用终端 |
|---|---|---|---|---|---|
| ultra_fast | 0.1-0.4s | 快速路由 | Top-1 | 直接返回片段 | 音箱、手表、车载(驾驶) |
| fast_mode | 1-3s | 完整匹配 | Top-3 | LLM 简短生成 | 家电、HA、ESP32 |
| standard | 3-8s | 匹配+验证 | Top-5+Rerank | LLM 完整生成 | H5、网页 |
| full | 8-30s | MIRAS+TITANS | Top-10+Rerank | 深度推理 | MCP、API |
性能优化要点
- 本地优先:快捷操作(定时器、导航、音乐)在终端本地处理,响应 <50ms
- 智能降级:超时时返回缓存/简化回答,确保用户体验
- 并行处理:专家匹配与用户画像查询并行执行
- 预热机制:MIRAS 匹配器启动时预热,首次请求无冷启动延迟
智能家电接入
支持的设备类型
| 设备 | ID | 匹配专家 | 典型场景 |
|---|---|---|---|
| 智能冰箱 | fridge |
营养师、生活助手 | 食材保存、菜谱推荐 |
| 智能洗衣机 | washer |
生活助手 | 洗涤程序、衣物护理 |
| 智能空调 | ac |
生活助手 | 温度调节、节能建议 |
| 智能烤箱 | oven |
烘焙专家、生活助手 | 烹饪温度、时间指导 |
| 智能微波炉 | microwave |
生活助手 | 加热参数设置 |
| 智能油烟机 | hood |
生活助手 | 清洁提醒 |
| 智能电视 | tv |
生活助手 | 节目推荐 |
| 扫地机器人 | robot_vacuum |
生活助手 | 清扫建议 |
| 空气净化器 | air_purifier |
生活助手 | 空气质量建议 |
| 热水器 | water_heater |
生活助手 | 水温预约 |
接入示例
请求格式:
POST /api/appliance/ask
{
"q": "鸡蛋能放多久",
"did": "fridge_001",
"type": "fridge"
}
响应格式:
{
"ok": true,
"a": "鸡蛋在冰箱冷藏室可以保存3-5周。建议尖头朝下放置。"
}
嵌入式代码示例
Arduino/ESP32:
#include <HTTPClient.h>
#include <ArduinoJson.h>
String askMBE(String question, String deviceType) {
HTTPClient http;
http.begin("http://MBE_IP:9999/api/appliance/ask");
http.addHeader("Content-Type", "application/json");
StaticJsonDocument<256> doc;
doc["q"] = question;
doc["did"] = "device_001";
doc["type"] = deviceType;
String payload;
serializeJson(doc, payload);
int code = http.POST(payload);
String response = "";
if (code == 200) {
StaticJsonDocument<1024> res;
deserializeJson(res, http.getString());
response = res["a"].as<String>();
}
http.end();
return response;
}
在线学习
MBE 支持从用户反馈中自动学习优化:
反馈类型
| 类型 | 触发场景 | 学习动作 |
|---|---|---|
switch |
用户切换专家 | 提取关键词到正确专家,降低错误专家权重 |
positive |
用户点赞/满意 | 强化当前匹配,提取新关键词 |
negative |
用户点踩/不满意 | 降低专家权重 |
反馈接口
# 用户切换专家
curl -X POST http://MBE_IP:9999/api/feedback/switch \
-H "Content-Type: application/json" \
-d '{"q": "深蹲姿势", "from": "dynamic_civil_lawyer", "to": "dynamic_e9ba75495a9c"}'
# 查看学习统计
curl http://MBE_IP:9999/api/feedback/stats
学习效果
{
"miras_learning": {
"feedback_count": 156,
"learned_keywords_count": 42,
"experts_with_boost": 8,
"top_boosted": [
["dynamic_civil_lawyer", 0.35],
["dynamic_e9ba75495a9c", 0.28]
]
}
}
诊断工具
嵌入诊断
python diagnose_embeddings.py
输出示例:
============================================================
专家嵌入诊断工具
============================================================
[1] 检查依赖...
✓ sentence-transformers 已安装
[2] 加载嵌入模型...
✓ 嵌入模型加载成功
✓ 编码测试成功,向量维度: (384,)
[5] 验证专家嵌入状态...
总专家数: 19
有嵌入: 19
缺少嵌入: 0
✓ 所有专家都有嵌入向量!
[7] 测试专家匹配...
✓ '深蹲正确姿势' -> 运动教练专家 (分数: 8.50)
✓ '糖尿病饮食' -> 营养治疗师专家 (分数: 7.20)
✓ '离婚手续' -> 中国民事律师 (分数: 9.10)
匹配准确率: 6/6 (100%)