diff --git a/homelab-ai-bot/llm.py b/homelab-ai-bot/llm.py index 338e43da..61627b9e 100644 --- a/homelab-ai-bot/llm.py +++ b/homelab-ai-bot/llm.py @@ -357,16 +357,36 @@ def ask_with_image(image_base64: str, caption: str, tool_handlers: dict, session prompt_text = caption if caption else default_prompt _price_kw = ["preis", "kostet", "kosten", "price", "teuer", "guenstig", "billig", - "bestpreis", "angebot", "euro", "eur", "kaufen"] - _is_price_q = any(kw in (caption or "").lower() for kw in _price_kw) + "bestpreis", "angebot", "euro", "eur", "kaufen", "gold", "silber", + "unze", "ounce", "kurs", "wert", "ram", "ddr"] + _check_text = (caption or "").lower() + if not _check_text and session_id: + try: + import memory_client as _mc + _recent = _mc.get_session_messages(session_id, limit=3) + for _m in reversed(_recent): + if _m.get("role") == "user" and _m.get("content"): + _check_text = _m["content"].lower() + break + except Exception: + pass + _is_price_q = any(kw in _check_text for kw in _price_kw) if _is_price_q: prompt_text = ( - "WICHTIG: Der User fragt nach einem aktuellen Preis. " - "Du MUSST zuerst web_search aufrufen um den aktuellen Marktpreis zu ermitteln. " - "Nutze das Bild nur als Kontext, NICHT als Preisquelle — Bilder koennen veraltet sein. " - "Erst NACH der web_search darfst du antworten.\n\n" + "WICHTIG: Es geht um aktuelle Preise/Kurse. " + "Du MUSST ZUERST web_search aufrufen (kurze Keywords, z.B. goldpreis euro unze heute) " + "um den aktuellen Marktpreis zu ermitteln. " + "Das Bild ist NUR Kontext — Preise daraus NIEMALS als Antwort verwenden, " + "sie koennten veraltet sein oder andere Einheiten zeigen (z.B. Preis/Gramm statt Preis/Unze). " + "Erst NACH der web_search darfst du antworten. " + "Achte auf korrekte Einheiten (Gramm vs. Unze vs. Kilogramm).\n\n" + prompt_text ) + else: + prompt_text += ( + "\n\nHinweis: Wenn im Bild Preise oder Kurse sichtbar sind und der User " + "danach fragt, nutze web_search fuer aktuelle Werte statt die Bild-Daten." + ) user_content = [ {"type": "text", "text": prompt_text},