示例#1
0
 def add_user_messages(self, messages, line_num):
     if not self.current_step_builder:
         raise StoryParseError("User message '{}' at invalid location. "
                               "Expected story start.".format(messages))
     parsed_messages = []
     for m in messages:
         parse_data = self.interpreter.parse(m)
         # a user uttered event's format is a bit different to the one of
         # other events, so we need to take a shortcut here
         parameters = {"text": m, "parse_data": parse_data}
         utterance = Event.from_story_string(UserUttered.type_name,
                                             parameters)
         if m.startswith("_"):
             c = utterance.as_story_string()
             logger.warning("Stating user intents with a leading '_' is "
                            "deprecated. The new format is "
                            "'* {}'. Please update "
                            "your example '{}' to the new format."
                            "".format(c, m))
         intent_name = utterance.intent.get("name")
         if intent_name not in self.domain.intents:
             logger.warning("Found unknown intent '{}' on line {}. "
                            "Please, make sure that all intents are "
                            "listed in your domain yaml."
                            "".format(intent_name, line_num))
         parsed_messages.append(utterance)
     self.current_step_builder.add_user_messages(parsed_messages)
示例#2
0
 def add_user_messages(self, messages, line_num):
     if not self.current_step_builder:
         raise StoryParseError("User message '{}' at invalid location. "
                               "Expected story start.".format(messages))
     parsed_messages = []
     for m in messages:
         parse_data = self.interpreter.parse(m)
         # a user uttered event's format is a bit different to the one of
         # other events, so we need to take a shortcut here
         parameters = {"text": m, "parse_data": parse_data}
         utterance = Event.from_story_string(UserUttered.type_name,
                                             parameters)
         if m.startswith("_"):
             c = utterance.as_story_string()
             logger.warning("Stating user intents with a leading '_' is "
                            "deprecated. The new format is "
                            "'* {}'. Please update "
                            "your example '{}' to the new format."
                            "".format(c, m))
         intent_name = utterance.intent.get("name")
         if intent_name not in self.domain.intents:
             logger.warning("Found unknown intent '{}' on line {}. "
                            "Please, make sure that all intents are "
                            "listed in your domain yaml."
                            "".format(intent_name, line_num))
         parsed_messages.append(utterance)
     self.current_step_builder.add_user_messages(parsed_messages)
示例#3
0
 def add_event(self, event_name, parameters):
     parsed = Event.from_story_string(event_name, parameters, self.domain,
                                      default=ActionExecuted)
     if parsed is None:
         raise StoryParseError("Unknown event '{}'. It is Neither an event "
                               "nor an action).".format(event_name))
     self.current_step_builder.add_event(parsed)
示例#4
0
    def add_event(self, event_name, parameters):

        # add 'name' only if event is not a SlotSet,
        # because there might be a slot with slot_key='name'
        if "name" not in parameters and event_name != SlotSet.type_name:
            parameters["name"] = event_name

        parsed = Event.from_story_string(event_name, parameters,
                                         default=ActionExecuted)
        if parsed is None:
            raise StoryParseError("Unknown event '{}'. It is Neither an event "
                                  "nor an action).".format(event_name))
        if isinstance(parsed, list):
            for p in parsed:
                self.current_step_builder.add_event(p)
        else:
            self.current_step_builder.add_event(parsed)
示例#5
0
    def add_event(self, event_name, parameters):

        # add 'name' only if event is not a SlotSet,
        # because there might be a slot with slot_key='name'
        if "name" not in parameters and event_name != SlotSet.type_name:
            parameters["name"] = event_name

        parsed = Event.from_story_string(event_name,
                                         parameters,
                                         default=ActionExecuted)
        if parsed is None:
            raise StoryParseError("Unknown event '{}'. It is Neither an event "
                                  "nor an action).".format(event_name))
        if isinstance(parsed, list):
            for p in parsed:
                self.current_step_builder.add_event(p)
        else:
            self.current_step_builder.add_event(parsed)
示例#6
0
文件: dsl.py 项目: prenigma/testfou
    def add_event(self, event_name, parameters):

        # add 'name' only if event is not a SlotSet,
        # because there might be a slot with slot_key='name'
        if "name" not in parameters and event_name != SlotSet.type_name:
            parameters["name"] = event_name

        parsed_events = Event.from_story_string(event_name, parameters,
                                                default=ActionExecuted)
        if parsed_events is None:
            raise StoryParseError("Unknown event '{}'. It is Neither an event "
                                  "nor an action).".format(event_name))
        if self.current_step_builder is None:
            raise StoryParseError("Failed to handle event '{}'. There is no "
                                  "started story block available. "
                                  "".format(event_name))

        for p in parsed_events:
            self.current_step_builder.add_event(p)