@@ -247,32 +247,38 @@ def generate_llm_config_dataframe(llm_list):
247247
248248def suggest_fields_dataframe (rule_list , llm_list ):
249249 """Suggest required field mappings based on selected evaluators"""
250+ from dingo .io .input import RequiredField
251+
250252 suggested_fields = set ()
251253
252- # Fields required by rule evaluators
253- rule_type_mapping = get_rule_type_mapping ()
254- data_column_mapping = get_data_column_mapping ()
254+ # Get rule and llm name maps
255+ rule_name_map = Model . get_rule_name_map ()
256+ llm_name_map = Model . get_llm_name_map ()
255257
258+ # Fields required by rule evaluators
256259 for rule in rule_list :
257- # Find which type this rule belongs to
258- for rule_type , rules in rule_type_mapping . items ():
259- if rule in rules :
260- if rule_type in data_column_mapping :
261- suggested_fields . update ( data_column_mapping [ rule_type ])
262- break
260+ if rule in rule_name_map :
261+ rule_class = rule_name_map [ rule ]
262+ if hasattr ( rule_class , '_required_fields' ) :
263+ for field in rule_class . _required_fields :
264+ if isinstance ( field , RequiredField ):
265+ suggested_fields . add ( field . value )
263266
264267 # Fields required by LLM evaluators
265- llm_column_mapping = get_llm_column_mapping ()
266268 for llm in llm_list :
267- if llm in llm_column_mapping :
268- suggested_fields .update (llm_column_mapping [llm ])
269-
270- # Generate suggested fields rows
269+ if llm in llm_name_map :
270+ llm_class = llm_name_map [llm ]
271+ if hasattr (llm_class , '_required_fields' ):
272+ for field in llm_class ._required_fields :
273+ if isinstance (field , RequiredField ):
274+ suggested_fields .add (field .value )
275+
276+ # Generate suggested fields rows - Required Field and Dataset Column both with same value
271277 rows = []
272278 for field in sorted (suggested_fields ):
273279 rows .append ([field , field ])
274280
275- return gr .update (value = rows if rows else [[ "content" , "content" ]] )
281+ return gr .update (value = rows )
276282
277283
278284def get_rule_type_mapping ():
@@ -405,11 +411,11 @@ def get_data_column_mapping():
405411 # Field mapping configuration
406412 gr .Markdown ("**EvalPipline.fields** - Field Mapping" )
407413 fields_dataframe = gr .Dataframe (
408- value = [[ "content" , "content" ] ],
409- headers = ["Field Key " , "Dataset Column" ],
414+ value = [],
415+ headers = ["Required Field " , "Dataset Column" ],
410416 datatype = ["str" , "str" ],
411417 column_count = (2 , "fixed" ),
412- row_count = (1 , "dynamic" ),
418+ row_count = (0 , "dynamic" ),
413419 label = "Field Mappings (add/remove rows as needed)" ,
414420 interactive = True
415421 )
0 commit comments