@@ -26,14 +26,38 @@ def build_literal_from_iterable(iterable):
2626
2727
2828def build_intent_yaml (
29- client , input_name , label_name , dir_name = "data" , file_name = "nlu.yml"
29+ client ,
30+ text_name ,
31+ intent_label_task ,
32+ metadata_label_task = None ,
33+ dir_name = "data" ,
34+ file_name = "nlu.yml" ,
3035):
3136 df = client .get_record_export (tokenize = False )
3237
3338 nlu_list = []
34- for label , df_label in df .groupby (label_name ):
35- literal_string = build_literal_from_iterable (df_label [input_name ].tolist ())
36- nlu_list .append (OrderedDict (intent = label , examples = literal (literal_string )))
39+ for label , df_sub_label in df .groupby (intent_label_task ):
40+
41+ if metadata_label_task is not None :
42+ metadata_label_name = metadata_label_task .split ("__" )[1 ]
43+ for metadata_label , df_sub_label_sub_metadata_label in df_sub_label .groupby (
44+ metadata_label_task
45+ ):
46+ literal_string = build_literal_from_iterable (
47+ df_sub_label_sub_metadata_label [text_name ].tolist ()
48+ )
49+ nlu_list .append (
50+ OrderedDict (
51+ intent = label ,
52+ metadata = OrderedDict (** {metadata_label_name : metadata_label }),
53+ examples = literal (literal_string ),
54+ )
55+ )
56+ else :
57+ literal_string = build_literal_from_iterable (
58+ df_sub_label [text_name ].tolist ()
59+ )
60+ nlu_list .append (OrderedDict (intent = label , examples = literal (literal_string )))
3761 nlu_dict = OrderedDict (nlu = nlu_list )
3862
3963 if dir_name is not None and not os .path .isdir (dir_name ):
0 commit comments