Download opencompass-my-api/opencompass/datasets/OpenFinData.py from TwT-6/api-demo: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/TwT-6/api-demo/resolve/main/opencompass-my-api/opencompass/datasets/OpenFinData.py
- Command line
-
hf download hf://TwT-6/api-demo/opencompass-my-api/opencompass/datasets/OpenFinData.py
-
curl -L -o OpenFinData.py https://huggingface.co/TwT-6/api-demo/resolve/main/opencompass-my-api/opencompass/datasets/OpenFinData.py
1.24 kB
| import json | |
| import os.path as osp | |
| from datasets import Dataset | |
| from opencompass.openicl.icl_evaluator import BaseEvaluator | |
| from opencompass.registry import ICL_EVALUATORS, LOAD_DATASET | |
| from .base import BaseDataset | |
| class OpenFinDataDataset(BaseDataset): | |
| def load(path: str, name: str): | |
| with open(osp.join(path, f'{name}.json'), 'r') as f: | |
| data = json.load(f) | |
| return Dataset.from_list(data) | |
| class OpenFinDataKWEvaluator(BaseEvaluator): | |
| def __init__(self, ): | |
| super().__init__() | |
| def score(self, predictions, references): | |
| assert len(predictions) == len(references) | |
| scores = [] | |
| results = dict() | |
| for i in range(len(references)): | |
| all_hit = True | |
| judgement = references[i].split('、') | |
| for item in judgement: | |
| if item not in predictions[i]: | |
| all_hit = False | |
| break | |
| if all_hit: | |
| scores.append(True) | |
| else: | |
| scores.append(False) | |
| results['accuracy'] = round(sum(scores) / len(scores), 4) * 100 | |
| return results | |