mm_os
Version:
MM_OS服务端架构,用于快速构建应用程序,支持网站建设、小程序后台、AI应用、物联网(IOT/AIOT)、游戏服务端等多种场景。
122 lines • 5.83 kB
JSON
{
// 指令(意图)名称, 用于动态增删改配置
"name": "{name || 'demo'}",
// 标题, 用于查询指令时
"title": "{title || '指令标题'}",
// 描述, 用于介绍该指令的作用
"description": "{description || '暂无描述'}",
// 示例(训练样本), 用于提示AI该指令的格式,多个样本用分号隔开
"example": "{example || '播放一首周杰伦的歌;听音乐,邓紫棋的喜欢你;听歌邓紫棋的《喜欢你》;我想听邓紫棋的《光年之外》'}",
// 指令分组, 可以将特有的指令分一个组, 方便用户查询
"group": "{group || 'default'}",
// 指令分类, 例如: 查询服务类query、执行类execute、管理类admin、控制类control、播放类play、游戏类game
"type": "{type || 'control'}",
// 时态, 分before之前、check验证、main主要、render渲染、after之后五个时态
"tense": "{tense || 'main'}",
// 文件名, 用于驱动脚本, 实现业务
"main": "{main || './index.js'}",
// 指令状态, 1为启用, 0为禁用
"state": 1,
// 执行顺序, 数值越小的指令越优先执行
"sort": 100,
// 匹配关键词组, 当聊天中出现其中一个关键词则会执行该指令
"match": ["播放", "听", "听歌"],
// 结束会话 当值为1时,指令触发并返回了内容后不再执行其他指令。为0时,指令触发仍继续执行其他指令
"end": 1,
// 不包含关键词, 如果匹配后, 出现不应该包含的关键词, 则不会执行指令
"not": [],
// 移除关键词, 如果聊天中含这些词, 将会被剔除在执行指令
"remove": [],
// 提取特定词, 如果聊天中含有特定词, 会被提取出来再执行指令
"extract": [],
// 阶段(1-9),可用于补全参数fill、过滤参数filter、校验参数check、更新参数update
"stage": [
// 第一阶段
{
// 方式 fill为补全,会将本次消息加入到msg.form[name]中
"mode": "fill",
/* 参数, 用于执行指令行为前抽取关键词进行验证, 然后再执行指令 */
"param": [
{
// 参数名称, 用于提交数据时
"name": "music_name",
// 参数标题, 用于提示用户什么参数错误
"title": "音乐名称",
// 是否必填, 1为必填, 0为选填
"required": 1,
// 参数描述, 用于提示AI该参数的作用
"desc": "要播放的音乐名称",
// 示例, 用于提示该参数的格式,多个示例用分号隔开,别名用竖线隔开
"example": "画;喜欢你;告白气球;来自天堂的魔鬼;",
// 抽验顺序, 越小的越优先验证, 并且抽取后排列在前
"sort": 10,
// 抽取/校验格式, 如果格式不符合, 则表示验证未通过,提示用户
"format": "/[a-zA-Z0-9_\u4e00-\u9fa5]+/g",
// 缺少参数提示, 如果不包含该参数, 则做出的提示
"not_tip": "音乐名称是?",
// 错误提示, 提示用户补充参数时, 补充参数错误时做出的提示
"error_tip": "音乐名称不正确",
// 校验/抽取的函数名, 通过函数的方式抽取/校验参数
"func_name": "",
// 同义词, 用于训练NLP, 多个同义词用分号隔开
"aliases": "音乐;歌曲"
},
{
// 参数名称, 用于提交数据时
"name": "author",
// 参数标题, 用于提示用户什么参数错误
"title": "音乐作者",
// 是否必填, 1为必填, 0为选填
"required": 0,
// 参数描述, 用于提示AI该参数的作用
"desc": "写这首歌的人",
// 示例, 用于提示该参数的格式,多个示例用分号隔开,别名用竖线隔开
"example": "周杰伦|杰伦;邓紫棋|GEM",
// 抽验顺序, 越小的越优先验证, 并且抽取后排列在前
"sort": 10,
// 抽取/校验格式, 如果格式不符合, 则表示验证未通过,提示用户
"format": "/[a-zA-Z0-9_\u4e00-\u9fa5]+/g",
// 缺少参数提示, 如果不包含该参数, 则做出的提示
"not_tip": "音乐作者是?",
// 错误提示, 提示用户补充参数时, 补充参数错误时做出的提示
"error_tip": "音乐作者不正确",
// 校验/抽取的函数名, 通过函数的方式抽取/校验参数
"func_name": "",
// 同义词, 用于训练NLP, 多个同义词用分号隔开
"aliases": "作者;作词人"
},
{
// 参数名称, 用于提交数据时
"name": "singer",
// 参数标题, 用于提示用户什么参数错误
"title": "歌手",
// 是否必填, 1为必填, 0为选填
"required": 1,
// 参数描述, 用于提示AI该参数的作用
"desc": "唱歌的人",
// 示例, 用于提示该参数的格式,多个示例用分号隔开,别名用竖线隔开
"example": "周杰伦|杰伦;邓紫棋|GEM|G.E.M.",
// 抽验顺序, 越小的越优先验证, 并且抽取后排列在前
"sort": 10,
// 抽取/校验格式, 如果格式不符合, 则表示验证未通过,提示用户
"format": "/[a-zA-Z0-9_\u4e00-\u9fa5]+/g",
// 缺少参数提示, 如果不包含该参数, 则做出的提示
"not_tip": "歌手是?",
// 错误提示, 提示用户补充参数时, 补充参数错误时做出的提示
"error_tip": "歌手不正确",
// 校验/抽取的函数名, 通过函数的方式抽取/校验参数
"func_name": "",
// 同义词, 用于训练NLP, 多个同义词用分号隔开
"aliases": "歌手;唱作者"
}
]
},
// 第二阶段
{
// 方式 update为更新,会将本次消息替换掉msg.form[name]的值
"mode": "update",
// 验证参数集
"param": []
}
]
}