Spaces:
Running
Running
Download solar_eval/evaluators/registry.py from dev-strender/proofread-demo: direct link, hf CLI and curl.
- Browser
- Download file 1.26 kB
-
https://huggingface.co/spaces/dev-strender/proofread-demo/resolve/main/solar_eval/evaluators/registry.py
- Command line
-
hf download hf://spaces/dev-strender/proofread-demo/solar_eval/evaluators/registry.py
-
curl -L -o registry.py https://huggingface.co/spaces/dev-strender/proofread-demo/resolve/main/solar_eval/evaluators/registry.py
1.26 kB
| from typing import Any | |
| from solar_eval.evaluators.base import BaseEvaluator | |
| from solar_eval.evaluators.composite import CompositeEvaluator | |
| from solar_eval.evaluators.lcs_diff import LCSDiffEvaluator | |
| from solar_eval.evaluators.llm_judge import LLMJudgeEvaluator | |
| from solar_eval.evaluators.rule_based import RuleBasedEvaluator | |
| def create_evaluator(config: dict[str, Any]) -> BaseEvaluator: | |
| """Factory function to create evaluator from config dict.""" | |
| eval_type = config["type"] | |
| if eval_type == "llm_judge": | |
| return LLMJudgeEvaluator( | |
| categories=config.get("categories", []), | |
| judge_prompts=config.get("judge_prompts"), | |
| ) | |
| elif eval_type == "lcs_diff": | |
| return LCSDiffEvaluator(metrics=config.get("metrics")) | |
| elif eval_type == "rule_based": | |
| return RuleBasedEvaluator(rules=config.get("rules", [])) | |
| elif eval_type == "composite": | |
| components = [] | |
| for comp in config.get("components", []): | |
| sub_evaluator = create_evaluator(comp) | |
| components.append({"evaluator": sub_evaluator, "weight": comp.get("weight", 0.5)}) | |
| return CompositeEvaluator(components=components) | |
| else: | |
| raise ValueError(f"Unknown evaluator type: {eval_type}") | |