fix(bot): Preis-Erkennung bei Bildern: Session-History pruefen, mehr Keywords, Einheiten-Warnung, Fallback-Hinweis

This commit is contained in:
Cursor 2026-03-21 00:25:42 +01:00
parent 2697e7f283
commit fdd3083628

View file

@ -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},