| 123456789101112131415161718192021222324 |
- from src.infrastructure.vision_service import VertexVisionService
- from src.infrastructure.repository import MongoPalmOilRepository
- from src.domain.models import PalmOilBunch
- class AnalyzeBunchUseCase:
- def __init__(self, vision_service: VertexVisionService, repo: MongoPalmOilRepository):
- self.vision_service = vision_service
- self.repo = repo
- def execute(self, image_path: str, yolo_result: dict):
- # 1. Get the visual fingerprint
- vector = self.vision_service.get_image_embedding(image_path)
- # 2. Create the Domain Entity
- bunch = PalmOilBunch(
- ripeness_class=yolo_result['class'],
- confidence=yolo_result['confidence'],
- embedding=vector,
- box=yolo_result['box']
- )
- # 3. Persist to "Memory"
- record_id = self.repo.save(bunch)
- return record_id
|