ReliefLensDemo / backend /agents /vision_agent.py
copilot-swe-agent[bot]
feat: build complete ReliefLensAI backend
d0f3cbe unverified
Raw
History Blame Contribute Delete
926 Bytes
from __future__ import annotations
import logging
from core.config import get_settings
from schemas.report import ReportInput
from skills.caption_image import caption_image
logger = logging.getLogger(__name__)
class VisionAgent:
def __init__(self) -> None:
self.settings = get_settings()
async def run(self, report: ReportInput) -> str:
logger.debug("VisionAgent processing report %s", report.id)
image_path = report.file_path or ""
if not image_path and report.content:
image_path = report.content
result = await caption_image(image_path, demo_mode=self.settings.demo_mode)
caption: str = result.get("caption", "")
hazards = result.get("hazards", [])
if hazards:
caption += f" Hazards identified: {', '.join(hazards)}."
logger.info("Captioned image report %s: %.80s...", report.id, caption)
return caption