@@ -32,15 +32,15 @@ def __init__(
3232 self .kwargs = kwargs
3333 self .graph_backend = graph_backend
3434 self .kv_backend = kv_backend
35-
35+
3636 # Separate QA and KG metrics
3737 self .qa_metrics = [m for m in self .metrics if m .startswith ("qa_" )]
3838 self .kg_metrics = [m for m in self .metrics if m .startswith ("kg_" )]
39-
39+
4040 # Initialize evaluators
4141 self .qa_evaluators = {}
4242 self .kg_evaluators : Optional [KGEvaluators ] = None
43-
43+
4444 self ._init_evaluators ()
4545
4646 def _init_evaluators (self ):
@@ -68,7 +68,7 @@ def _init_evaluators(self):
6868 )
6969 else :
7070 raise ValueError (f"Unknown QA metric: { metric } " )
71-
71+
7272 # Initialize KG evaluators if KG metrics are specified
7373 if self .kg_metrics :
7474 kg_params = self .kwargs .get ("kg_params" , {})
@@ -148,14 +148,14 @@ def _evaluate_kg(self) -> Dict[str, Any]:
148148 return {}
149149
150150 results = {}
151-
151+
152152 # Map metric names to evaluation functions
153153 kg_metric_map = {
154154 "kg_accuracy" : evaluate_accuracy ,
155155 "kg_consistency" : evaluate_consistency ,
156156 "kg_structure" : evaluate_structure ,
157157 }
158-
158+
159159 # Run KG evaluations based on metrics
160160 for metric in self .kg_metrics :
161161 if metric in kg_metric_map :
@@ -168,12 +168,12 @@ def _evaluate_kg(self) -> Dict[str, Any]:
168168 results [metric_key ] = {"error" : str (e )}
169169 else :
170170 logger .warning ("Unknown KG metric: %s, skipping" , metric )
171-
171+
172172 # If no valid metrics were found, run all evaluations
173173 if not results :
174174 logger .info ("No valid KG metrics found, running all evaluations" )
175175 results = evaluate_all (self .kg_evaluators )
176-
176+
177177 return results
178178
179179 def evaluate (
@@ -182,39 +182,38 @@ def evaluate(
182182 # Determine evaluation type
183183 has_qa_metrics = len (self .qa_metrics ) > 0
184184 has_kg_metrics = len (self .kg_metrics ) > 0
185-
185+
186186 # If items provided and QA metrics exist, do QA evaluation
187187 if items is not None and has_qa_metrics :
188188 return self ._evaluate_qa (items )
189-
189+
190190 # If KG metrics exist, do KG evaluation
191191 if has_kg_metrics :
192192 return self ._evaluate_kg ()
193-
193+
194194 # If no metrics specified, try to infer from context
195195 if items is not None :
196196 logger .warning ("No QA metrics specified but items provided, skipping evaluation" )
197197 return []
198- else :
199- logger .warning ("No metrics specified, skipping evaluation" )
200- return {}
198+ logger .warning ("No metrics specified, skipping evaluation" )
199+ return {}
201200
202201 def process (self , batch : pd .DataFrame ) -> pd .DataFrame :
203202 has_qa_metrics = len (self .qa_metrics ) > 0
204203 has_kg_metrics = len (self .kg_metrics ) > 0
205-
204+
206205 # QA evaluation: process batch items
207206 if has_qa_metrics :
208207 items = batch .to_dict (orient = "records" )
209208 results = self ._evaluate_qa (items )
210209 return pd .DataFrame (results )
211-
210+
212211 # KG evaluation: evaluate from storage
213212 if has_kg_metrics :
214213 results = self ._evaluate_kg ()
215214 # Convert dict to DataFrame (single row)
216215 return pd .DataFrame ([results ])
217-
216+
218217 # No metrics specified
219218 logger .warning ("No metrics specified, returning empty DataFrame" )
220219 return pd .DataFrame ()
0 commit comments