| import time |
| from concurrent.futures import ThreadPoolExecutor |
|
|
| class BatchProcessor: |
| def __init__(self): |
| self.max_workers = 4 |
| |
| def process(self, images: list) -> dict: |
| start_time = time.time() |
| |
| results = [] |
| for img in images: |
| result = self._process_single(img) |
| results.append(result) |
| |
| processing_time = (time.time() - start_time) * 1000 |
| |
| avg_confidence = sum(r.get('confidence', 0) for r in results) / len(results) if results else 0 |
| |
| return { |
| "total": len(results), |
| "items": results, |
| "avg_confidence": avg_confidence, |
| "processing_time": processing_time |
| } |
| |
| def _process_single(self, image: np.ndarray) -> dict: |
| return { |
| "id": id(image), |
| "type": "clothing", |
| "confidence": 0.85 |
| } |