@@ -211,31 +211,23 @@ def dumps(self, training_data: "TrainingData") -> Text:
211
211
def _generate_training_examples_md (self , training_data : "TrainingData" ) -> Text :
212
212
"""Generates markdown training examples."""
213
213
214
- from collections import defaultdict
215
-
216
- training_examples = defaultdict (list )
217
-
218
- # Sort by intent while keeping basic intent order
219
- for example in [e .as_dict_nlu () for e in training_data .training_examples ]:
220
- intent = example [MESSAGE_INTENT_ATTRIBUTE ]
221
- training_examples [intent ].append (example )
222
-
214
+ # Sort training data by intent
215
+ training_examples = sorted (
216
+ [e .as_dict_nlu () for e in training_data .training_examples ],
217
+ key = lambda k : k [MESSAGE_INTENT_ATTRIBUTE ],
218
+ )
223
219
md = ""
220
+ for i , example in enumerate (training_examples ):
221
+ intent = training_examples [i - 1 ][MESSAGE_INTENT_ATTRIBUTE ]
222
+ if i == 0 or intent != example [MESSAGE_INTENT_ATTRIBUTE ]:
223
+ md += self ._generate_section_header_md (
224
+ INTENT ,
225
+ example [MESSAGE_INTENT_ATTRIBUTE ],
226
+ example .get (MESSAGE_RESPONSE_KEY_ATTRIBUTE , None ),
227
+ i != 0 ,
228
+ )
224
229
225
- for intent , examples in training_examples .items ():
226
- for i , example in enumerate (examples ):
227
- did_intent_change = i == 0
228
- is_first_line = md == ""
229
-
230
- if did_intent_change :
231
- md += self ._generate_section_header_md (
232
- INTENT ,
233
- intent ,
234
- example .get (MESSAGE_RESPONSE_KEY_ATTRIBUTE , None ),
235
- not is_first_line ,
236
- )
237
-
238
- md += self ._generate_item_md (self ._generate_message_md (example ))
230
+ md += self ._generate_item_md (self ._generate_message_md (example ))
239
231
240
232
return md
241
233
0 commit comments