标签:实时 world 简单 插件 ext active 支持 def 依次
plugins 目录、$HOME/.wukong/contrib 目录和 $HOME/.wukong/custom 目录下的可用插件。可用插件的判定标准为:AbstractPlugin 基类的 Plugin 类;enable 设为 false。PRIORITY 属性,则对其优先级进行重排。默认都为 0,PRIORITY 值设得越大,则优先级越高。isValid() 方法,如果值为 True,则调用该插件的 handle() 方法进入处理wukong-robot 支持两类技能插件:
self.activeListen() 方法进入主动聆听,从而实现多轮对话。继承关系:
只需继承同一个基类 robot.sdk.AbstractPlugin ,并实现相应相关接口即可。其中:
isValid() 和 handle() 两个接口,分别用来判断用户指令是否适合交给该技能插件处理,以及如何处理;IS_IMMERSIVE 成员属性为 True ,此外还可以根据需求实现 isValidImmersive() 、 restore() 和 pause() 几个方法,分别用来支持沉浸模式下更多指令的响应以及恢复技能。写之前思考:
简单版本:
# -*- coding: utf-8-*-
from robot.sdk.AbstractPlugin import AbstractPlugin
class Plugin(AbstractPlugin):
def handle(self, text, parsed):
self.say(‘hello world!‘, cache=True)
def isValid(self, text, parsed):
return "打个招呼" in text
robot.sdk.AbstractPlugin 引入;AbstractPlugin 基类;AbstractPlugin 的两个接口 handle() 和 isValid() 。其中,isValid() 用于判断用户的指令是否适合交给这个插件处理;handle() 用于执行处理;AbstractPlugin 基类中提供的 say() 方法来实现这个目的。而 cache 参数为 True 则告诉 wukong-robot 应该将这句话缓存下来,以后要说这句话就无需再请求 TTS 合成,而是直接播放缓存语音。一些相对固定的回复话术适合加上缓存功能,而一些实时变化的话术(例如当前时间)就不应该加上缓存,因为很可能再也不会有播放的机会。常见问题:插件没有触发
原因:
插件加载成功:
ASR没有识别到:
标签:实时 world 简单 插件 ext active 支持 def 依次
原文地址:https://www.cnblogs.com/chenfengyijiu/p/14826727.html