| 5 | |
| 6 | |
| 7 | class ToolEvalution: |
| 8 | def __init__( |
| 9 | self, |
| 10 | model: ToolModel, |
| 11 | dataset: ToolFillDataset, |
| 12 | base_prompt: str = '', |
| 13 | generate_configs: GenerateConfigs = None, |
| 14 | ): |
| 15 | self.model = model |
| 16 | self.dataset = dataset |
| 17 | self.base_prompt = base_prompt |
| 18 | self.generate_configs = generate_configs |
| 19 | |
| 20 | if not isinstance(model, ToolModel): |
| 21 | raise BaseException(f"must be ToolModel Class! not {model}") |
| 22 | |
| 23 | def calc(self): |
| 24 | '''开始计算结果''' |
| 25 | self.predicts = [] |
| 26 | for idx, data in enumerate(self.dataset): |
| 27 | # if idx >= 5: break |
| 28 | prompt = self.base_prompt.format(**data) |
| 29 | answer = data["api_param"] |
| 30 | predict = self.generate(prompt, self.generate_configs) |
| 31 | self.predicts.append({"prompt": prompt, "predict": predict, "answer": answer}) |
| 32 | |
| 33 | metric = self.eval_metric(self.predicts) |
| 34 | return metric |
| 35 | |
| 36 | def generate(self, prompt, generate_configs): |
| 37 | '''返回结果''' |
| 38 | return self.model.generate(prompt, generate_configs) |
| 39 | |
| 40 | def eval_metric(self, datas): |
| 41 | '''calc custom metric''' |
| 42 | pass |
| 43 |
nothing calls this directly
no outgoing calls
no test coverage detected