コード例 #1
0
    async def train_parsers(self, skills):
        """Train the parsers.

        Args:
            skills (list): A list of all the loaded skills.

        """
        if "parsers" in self.modules:
            parsers = self.modules.get("parsers", {})
            rasanlu = get_parser_config("rasanlu", parsers)
            if rasanlu and rasanlu["enabled"] and rasanlu.get("train", True):
                await train_rasanlu(rasanlu, skills)
コード例 #2
0
    async def get_ranked_skills(self, skills, message):
        """Take a message and return a ranked list of matching skills.

        Args:
            skills (list): List of all available skills.
            message (string): Context message to base the ranking of skills on.

        Returns:
            ranked_skills (list): List of all available skills sorted and ranked based on the score they muster when matched against the message parsed.

        """
        ranked_skills = []
        if isinstance(message, events.Message):
            ranked_skills += await parse_regex(self, skills, message)
            ranked_skills += await parse_format(self, skills, message)

        if "parsers" in self.modules:
            _LOGGER.debug(_("Processing parsers..."))
            parsers = self.modules.get("parsers", {})

            dialogflow = get_parser_config("dialogflow", parsers)
            if dialogflow and dialogflow["enabled"]:
                _LOGGER.debug(_("Checking dialogflow..."))
                ranked_skills += await parse_dialogflow(
                    self, skills, message, dialogflow)

            luisai = get_parser_config("luisai", parsers)
            if luisai and luisai["enabled"]:
                _LOGGER.debug(_("Checking luisai..."))
                ranked_skills += await parse_luisai(self, skills, message,
                                                    luisai)

            sapcai = get_parser_config("sapcai", parsers)
            if sapcai and sapcai["enabled"]:
                _LOGGER.debug(_("Checking SAPCAI..."))
                ranked_skills += await parse_sapcai(self, skills, message,
                                                    sapcai)

            witai = get_parser_config("witai", parsers)
            if witai and witai["enabled"]:
                _LOGGER.debug(_("Checking wit.ai..."))
                ranked_skills += await parse_witai(self, skills, message,
                                                   witai)

            watson = get_parser_config("watson", parsers)
            if watson and watson["enabled"]:
                _LOGGER.debug(_("Checking IBM Watson..."))
                ranked_skills += await parse_watson(self, skills, message,
                                                    watson)

            rasanlu = get_parser_config("rasanlu", parsers)
            if rasanlu and rasanlu["enabled"]:
                _LOGGER.debug(_("Checking Rasa NLU..."))
                ranked_skills += await parse_rasanlu(self, skills, message,
                                                     rasanlu)

        return sorted(ranked_skills, key=lambda k: k["score"], reverse=True)
コード例 #3
0
ファイル: core.py プロジェクト: fakegit/opsdroid
    async def train_parsers(self, skills):
        """Train the parsers.

        Args:
            skills (list): A list of all the loaded skills.

        """
        if "parsers" in self.modules:
            parsers = self.modules.get("parsers", {})
            rasanlu = get_parser_config("rasanlu", parsers)
            if rasanlu and rasanlu["enabled"]:
                rasa_version_is_compatible = await has_compatible_version_rasanlu(
                    rasanlu)
                if rasa_version_is_compatible is False:
                    self.critical("Rasa version is not compatible", 5)
                await train_rasanlu(rasanlu, skills)
コード例 #4
0
    def test_get_parser_config(self):
        parsers = [
            {
                "name": "dialogflow",
                "module": "",
                "config": {
                    "name": "dialogflow",
                    "module": "",
                    "project-id": "test-ddd33",
                    "type": "parsers",
                    "enabled": True,
                    "entrypoint": None,
                    "is_builtin": "",
                    "module_path": "opsdroid.parsers.dialogflow",
                    "install_path": "",
                    "branch": "master",
                },
                "intents": None,
            },
            {
                "name": "regex",
                "module": "",
                "config": {
                    "name": "regex",
                    "module": "",
                    "type": "parsers",
                    "enabled": True,
                    "entrypoint": None,
                    "is_builtin": "",
                    "module_path": "opsdroid.parsers.regex",
                    "install_path": "",
                    "branch": "master",
                },
                "intents": None,
            },
        ]

        dialogflow_config = get_parser_config("dialogflow", parsers)

        assert dialogflow_config
        assert dialogflow_config["name"] == "dialogflow"
コード例 #5
0
    def test_get_parser_config_none(self):
        parsers = {}

        config = get_parser_config("dialogflow", parsers)

        assert not config