def test_dump_trainable_entities(entity_extractor: Optional[Text], expected_output: Text): training_data_json = { "rasa_nlu_data": { "common_examples": [{ "text": "test", "intent": "greet", "entities": [{ "start": 0, "end": 4, "value": "random", "entity": "word" }], }] } } if entity_extractor is not None: training_data_json["rasa_nlu_data"]["common_examples"][0]["entities"][ 0]["extractor"] = entity_extractor training_data_object = RasaReader().read_from_json(training_data_json) md_dump = MarkdownWriter().dumps(training_data_object) assert md_dump.splitlines()[1] == expected_output
def task(source, dest, cred_file, percent): # load Rasa NLU training data r = MarkdownReader() with open(source, "r") as fin: nlu = fin.read() nlu_train = r.reads(nlu) translate_client = translate.Client.from_service_account_json(cred_file) def trans(text): trans_text = translate_client.translate(text, source_language="en", target_language="zh-TW") logger.info(u'origin: {}, translated: {}'.format( example.text, trans_text['translatedText'])) return trans_text['translatedText'] nlu_train.training_examples = random_select_samples( nlu_train.training_examples, percent) for example in nlu_train.training_examples: example.text = trans(example.text) if example.get("entities"): for entity in example.get("entities"): entity["value"] = trans(entity['value']) # Generate Rasa NLU translated training data w = MarkdownWriter() w.dump(dest, nlu_train)
def test_dump_entities(entity: Dict[Text, Any], expected_output: Text): training_data_json = { "rasa_nlu_data": { "common_examples": [ {"text": "test", "intent": "greet", "entities": [entity]} ] } } training_data_object = RasaReader().read_from_json(training_data_json) md_dump = MarkdownWriter().dumps(training_data_object) assert md_dump.splitlines()[1] == expected_output
def nlu_as_markdown(self) -> Text: """Generates the markdown representation of the NLU part of TrainingData.""" from rasa.nlu.training_data.formats import ( # pytype: disable=pyi-error MarkdownWriter, ) return MarkdownWriter().dumps(self)
def _as_md_message(parse_data: Dict[Text, Any]) -> Text: """Display the parse data of a message in markdown format.""" from rasa.nlu.training_data.formats import MarkdownWriter if parse_data.get("text", "").startswith(INTENT_MESSAGE_PREFIX): return parse_data.get("text") if not parse_data.get("entities"): parse_data["entities"] = [] # noinspection PyProtectedMember return MarkdownWriter()._generate_message_md(parse_data)
def md_format_message(text, intent, entities): from rasa.nlu.training_data.formats import MarkdownWriter, MarkdownReader message_from_md = MarkdownReader()._parse_training_example(text) deserialised_entities = deserialise_entities(entities) return MarkdownWriter()._generate_message_md( { "text": message_from_md.text, "intent": intent, "entities": deserialised_entities, } )
def as_markdown(self) -> Text: """Generates the markdown representation of the TrainingData.""" from rasa.nlu.training_data.formats import MarkdownWriter return MarkdownWriter().dumps(self)