From c1bcc029eab40a2742c51b7190eb51081c08037e Mon Sep 17 00:00:00 2001 From: rene Date: Sat, 9 May 2026 20:08:06 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20KI=20health=5Fsummary=20Kontextfenster?= =?UTF-8?q?=20(max=205=20Eintr=C3=A4ge),=20Cloud-Priority=20ohne=20ANTHROP?= =?UTF-8?q?IC=5FKEY-Check,=20local-Fallback=20wrapped=20(SW=20by-v798)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/ki.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/backend/ki.py b/backend/ki.py index 89e9065..188056f 100644 --- a/backend/ki.py +++ b/backend/ki.py @@ -84,7 +84,7 @@ def _track_usage(user_id: int | None, source: str) -> None: def _is_cloud_priority_user(user_id: int | None) -> bool: """Privilegierte Rollen (Admin, Moderator, Züchter, Manager) nutzen Cloud-KI primär.""" - if not user_id or not ANTHROPIC_KEY: + if not user_id: return False try: from database import db @@ -173,8 +173,10 @@ async def complete( raise except Exception as e: logger.warning(f"Cloud-KI nicht erreichbar für privilegierten User, Fallback lokal: {e}") - # Fallback auf lokales Modell - text = await _local_complete(prompt, system, max_tokens, json_mode) + try: + text = await _local_complete(prompt, system, max_tokens, json_mode) + except Exception as local_e: + raise KIUnavailableError("KI-Modell nicht erreichbar.") from local_e _track_usage(user_id, "local") if return_model: return (text, LOCAL_MODEL) @@ -399,7 +401,7 @@ async def health_summary(health_data: list, dog_info: dict, if not subset: return " (keine Einträge)" lines = [] - for e in subset[:10]: # maximal 10 pro Typ + for e in subset[:5]: # maximal 5 pro Typ — Kontextfenster schonen line = f" - {e.get('datum', '?')}: {e.get('bezeichnung', '?')}" if e.get("naechstes"): line += f" (nächste Fälligkeit: {e['naechstes']})"