Spaces:
Running
Running
| from typing import Any | |
| from graphgen.bases import BaseKVStorage | |
| from graphgen.utils import logger, run_concurrent | |
| def evaluate_triple( | |
| triple_evaluators: dict[str, Any], | |
| src_storage: BaseKVStorage, | |
| tgt_storage: BaseKVStorage, | |
| ) -> dict[str, Any]: | |
| forward_meta = tgt_storage.get_by_id("_meta_forward") | |
| tasks = [] | |
| for chunk_id, unit_ids in forward_meta.items(): | |
| chunk_content = str(src_storage.get_by_id(chunk_id)) | |
| nodes = [] | |
| edges = [] | |
| for unit_id in unit_ids: | |
| unit_data = tgt_storage.get_by_id(unit_id) | |
| if "node" in unit_data and unit_data["node"]: | |
| nodes.append(unit_data["node"]) | |
| if "edge" in unit_data and unit_data["edge"]: | |
| edges.append(unit_data["edge"]) | |
| tasks.append((chunk_content, nodes, edges)) | |
| results = {} | |
| for key, triple_evaluator in triple_evaluators.items(): | |
| logger.info(f"Evaluating Triples with metric: {key}...") | |
| result = run_concurrent( | |
| triple_evaluator.evaluate, | |
| tasks, | |
| desc=f"Evaluating Triples with {key}", | |
| ) | |
| results[key] = result | |
| return results | |