标签:实时 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