def parse_damage_description(text: str): """ Converts vision-language description into structured damage info. Defensive by design (never crashes on unexpected text). """ t = text.lower() # Default values part = "Vehicle Body" damage = "Visible Damage" severity = "Medium" confidence = 70 # Part detection if "rear bumper" in t or "back bumper" in t: part = "Rear Bumper" elif "front bumper" in t: part = "Front Bumper" elif "door" in t: part = "Door Panel" elif "fender" in t: part = "Fender" elif "hood" in t or "bonnet" in t: part = "Hood" elif "trunk" in t or "boot" in t: part = "Trunk" # Damage type if "dent" in t: damage = "Panel Dent" severity = "Medium" confidence = 88 elif "scratch" in t: damage = "Paint Scratch" severity = "Low" confidence = 75 elif "crack" in t or "broken" in t: damage = "Structural Crack" severity = "High" confidence = 92 # Severity refinement if "severe" in t or "major" in t: severity = "High" confidence = min(confidence + 5, 95) return { "part": part, "report": damage, "severity": severity, "confidence": confidence }