Ejemplo n.º 1
0
    def doResponse(self, query, UUID='', onSay=None):
        statistic.report(1)
        self.interrupt()
        self.appendHistory(0, query, UUID)

        if config.get('/LED/enable', False):
            LED.think()

        if onSay:
            self.onSay = onSay

        if query.strip() == '':
            self.pardon()
            return

        lastImmersiveMode = self.immersiveMode

        if not self.brain.query(query):
            # 没命中技能,使用机器人回复
            msg = self.ai.chat(query)
            self.say(msg, True, onCompleted=self.checkRestore)
        else:
            if lastImmersiveMode is not None and lastImmersiveMode != self.matchPlugin:
                time.sleep(1)
                if self.player is not None and self.player.is_playing():
                    logger.debug('等说完再checkRestore')
                    self.player.appendOnCompleted(lambda: self.checkRestore())
                else:
                    logger.debug('checkRestore')
                    self.checkRestore()

        if config.get('/LED/enable', False):
            LED.off()
Ejemplo n.º 2
0
 def doResponse(self, query, UUID=''):
     statistic.report(1)
     self.interrupt()
     self.appendHistory(0, query, UUID)
     if not self.brain.query(query):
         # 没命中技能,使用机器人回复
         msg = self.ai.chat(query)
         self.say(msg, True, onCompleted=self.checkRestore)
Ejemplo n.º 3
0
 def doResponse(self, query, UUID=''):
     statistic.report(1)
     self.interrupt()
     self.appendHistory(0, query, UUID)
     if not self.brain.query(query, self.immersiveMode):
         # 没命中技能,使用机器人回复
         msg = self.ai.chat(query)
         self.say(msg, True)
         if self.immersiveMode:
             self.brain.restore(self.immersiveMode)
Ejemplo n.º 4
0
    def run(self):
        self.init()

        # capture SIGINT signal, e.g., Ctrl+C
        signal.signal(signal.SIGINT, self._signal_handler)

        # site
        server.run(self._conversation, self)

        statistic.report(0)

        self.initDetector()
Ejemplo n.º 5
0
    def doResponse(self, query, UUID=''):
        statistic.report(1)
        self.interrupt()
        self.appendHistory(0, query, UUID)

        if query.strip() == '':
            self.say("抱歉,刚刚没听清,能再说一遍吗?", cache=True, onCompleted=self.checkRestore)
            return
        
        if not self.brain.query(query):
            # 没命中技能,使用机器人回复
            msg = self.ai.chat(query)
            self.say(msg, True, onCompleted=self.checkRestore)
Ejemplo n.º 6
0
    def run(self):
        self.init()

        # capture SIGINT signal, e.g., Ctrl+C
        signal.signal(signal.SIGINT, self._signal_handler)

        # site
        server.run(self._conversation, self)

        statistic.report(0)

        try:
            self.initDetector()
        except AttributeError:
            logger.error('初始化离线唤醒功能失败')
            pass