| from __future__ import annotations | |
| import logging | |
| from typing import List | |
| from schemas.signal import NormalizedSignal | |
| from skills.detect_duplicates import detect_duplicates | |
| logger = logging.getLogger(__name__) | |
| class DedupAgent: | |
| def __init__(self, threshold: float = 0.75) -> None: | |
| self.threshold = threshold | |
| async def run(self, signals: List[NormalizedSignal]) -> List[NormalizedSignal]: | |
| logger.info("DedupAgent: processing %d signals", len(signals)) | |
| unique = await detect_duplicates(signals, threshold=self.threshold) | |
| logger.info("DedupAgent: %d unique signals after dedup", len(unique)) | |
| return unique | |