## **插件触发机制**
插件触发分为:语音触发、微信小程序触发、视频解码触发
### **一、语音触发**
*****
在编写插件时需要创建一个与插件名相同的`.conf`配置文件,如你的插件名:`light.py`,那么你需要创建一个`light.conf`的插件配置文件,在插件配置文件中可以定义此插件的语音触发词,如以下格式:
```
{
'type':'temp',
'name':'Light',
'trigger':[
'打开{1}灯','关闭{1}灯','开灯','关灯'
]
}
```
其中 name:'Light' 的意思是:你的类名,本系统必须遵循**国际统一规范:首字母大写**的原则。
其中`trigger`键值中配置的`'打开{1}灯','关闭{1}灯','开灯','关灯'
`就是触发词,一个插件中可以定义多个触发词
* 触发词定义规则
触发词可分为:模糊匹配和完全匹配;模糊匹配是指无论触发词的位置怎样,只要出现该词即可;完全匹配是指只有整个字段与触发词相同才匹配,完全匹配是指将输入的触发词当固定词组进行查找,而模糊匹配则会自动拆分触发词为单元概念,并进行逻辑与运算。
以下分别是对:`打开灯`、`打开{xx}灯`、`|打开灯|`、`打开灯|`指令设定不同的触发词,用户发出指令后是否被触发可见下表 (图中`√`表示会被触发,`×` 表示不被触发)
| 用户指令 | `打开灯` | `打开{xx}灯` | `|打开灯|` | `打开灯|`|
| --- | --- | --- |--- | --- |
| 打开灯 | √ | √ | √ | √ |
| 帮我打开灯 | √ | √ | × | √ |
| 帮我打开灯可以吗? | √ | √ | × | × |
| 帮我打开客厅灯| × | √ | × | × |
指令中`{xx}`和 `|`为修饰符,`{xx}` 一般放在触发词的中间,可以填写客厅、阳台等等具体的地方,这样可以更好的匹配多种情况,具体摆放位置可根据插件的需求来定, `|`修饰符为定界修饰符,放在触发词的两边或一边。可举例为:
1. 若是放在最前面,那么只能匹配以触发词开始的语句,如:
触发词是:`|打开灯`
用户说: 打开灯可以吗?---能匹配 但是用户说:帮我打开灯--- 不能匹配
2. 若是放在后边,那么只能匹配以触发词结束的语句,如:
触发词是:`打开灯|`
用户说: 打开灯可以吗?---不能匹配 但是用户说:帮我打开灯--- 能匹配
3. 若是放在两边,那么只能匹配以触发词开始和结束的语句,如:
触发词是:`|打开灯|`
用户说: 打开灯可以吗?---不能匹配 帮我打开灯--- 不能匹配 但是用户说:打开灯--- 能匹配
### **二、在数据库添加触发词**
* 后期版本支持一键安装插件 和一键卸载插件
* 现阶段需要你将定义的触发词手动写入/keyicx/python/data/lstm.db数据库trigger表和dz_option表内
### **三、微信小程序触发**
*****
微信小程序触发插件是由MQTT协议定义,具体协议定义规则将在下一个版本中实现,到时该文档会同步更新。
- 关于自美智能系统
- 系统安装
- 方式一:镜像安装
- 方式二:源码安装
- 系统使用
- 配置设备上网
- 微信控制自美智能系统
- 系统内置功能的触发词
- 系统升级
- 手动在线升级
- 硬件设备
- 自美系统驱动板使用说明
- 自美智能系统魔镜配件附图
- LED灯控制
- 风扇接口
- 人体感应模块
- 开发者入口
- 如何启用开发者模式
- 基类(MsgProcess)介绍
- 插件开发
- 基础知识
- config.json配置文件
- 前端开发
- 移动端(微信小程序)开发
- 通讯协议(MQTT)
- 用户管理
- 插件控制按钮定义
- 无线网络设备(万能开关)
- 视频演示
- 功能使用演示视频集
- 功能开发教程视频集
- 树莓派相关知识
- 安装树莓派官方操作系统
- 无键盘、显示器配网和SSH
- 启用树莓派SSH和root用户登录
- 启用树莓派VNC远程桌面
- 自定义树莓派屏幕分辨率
- 扩展阅读技术文章
- 电子相册功能
- 调用系统opencv人脸识别标准库
- 语音触发式系统插件demo示例
- 插件触发机制
- 实现交互
- 实现视觉处理
- 霍尔磁力模块
- 无源蜂鸣器
- 火焰检测模块
- ky-028数字温度模块
- 光遮断器模块
- DS18B20温度模块
- 2021常见问题和人工帮助
- 更新日志