diff --git a/src/routers/incidents.py b/src/routers/incidents.py index 9e00790..f77778a 100644 --- a/src/routers/incidents.py +++ b/src/routers/incidents.py @@ -204,11 +204,27 @@ async def enhance_description( try: result, usage = await call_claude(prompt, tools=None, model=CLAUDE_MODEL_FAST) + + # call_claude erzwingt bei tools=None JSON-Output — + # Haiku wrapped den Text dann in ein JSON-Objekt + text = result.strip() + try: + import json as _json + parsed = _json.loads(text) + if isinstance(parsed, dict): + # Erstes String-Feld extrahieren (description, text, content etc.) + for val in parsed.values(): + if isinstance(val, str) and len(val) > 20: + text = val + break + except (ValueError, TypeError): + pass # Kein JSON — text direkt verwenden + _enhance_logger.info( f"Beschreibung generiert fuer \"{data.title[:50]}\": " f"{usage.input_tokens}in/{usage.output_tokens}out" ) - return {"description": result.strip()} + return {"description": text} except Exception as e: _enhance_logger.error(f"Beschreibung generieren fehlgeschlagen: {e}") raise HTTPException(status_code=500, detail="Beschreibung konnte nicht generiert werden")