fix(bot): Einheiten-Falle loesen — min 5 Ergebnisse bei Preisfragen, Gramm/Unze Warnung in Prompt und Suchergebnissen
This commit is contained in:
parent
fdd3083628
commit
3f4af61389
2 changed files with 19 additions and 6 deletions
|
|
@ -374,12 +374,14 @@ def ask_with_image(image_base64: str, caption: str, tool_handlers: dict, session
|
|||
if _is_price_q:
|
||||
prompt_text = (
|
||||
"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"
|
||||
"Du MUSST ZUERST web_search aufrufen (kurze Keywords, z.B. goldpreis euro unze heute). "
|
||||
"Fordere MINDESTENS 5 Ergebnisse an (max_results=5). "
|
||||
"Das Bild ist NUR Kontext — Preise daraus NIEMALS als Antwort verwenden. "
|
||||
"EINHEITEN-FALLE: goldpreis.de zeigt Preise PRO GRAMM, nicht pro Unze! "
|
||||
"1 troy ounce = 31,103 Gramm. Wenn eine Quelle ~125 EUR zeigt und eine andere ~3.900 EUR, "
|
||||
"dann ist 125 EUR der GRAMM-Preis und 3.900 EUR der UNZEN-Preis. "
|
||||
"Nutze Quellen die explizit pro Unze oder per ounce schreiben (z.B. finanzen.net, boerse.de). "
|
||||
"Erst NACH der web_search darfst du antworten.\n\n"
|
||||
+ prompt_text
|
||||
)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -58,6 +58,11 @@ def handle_web_search(query: str, max_results: int = 5, **kw):
|
|||
return "web_search: query fehlt."
|
||||
|
||||
max_results = max(1, min(int(max_results or 5), 8))
|
||||
_pq = query.lower()
|
||||
_is_price = any(w in _pq for w in ["preis", "price", "kurs", "kostet",
|
||||
"gold", "silber", "unze", "ounce"])
|
||||
if _is_price:
|
||||
max_results = max(max_results, 5)
|
||||
|
||||
last_err = None
|
||||
data = None
|
||||
|
|
@ -95,6 +100,12 @@ def handle_web_search(query: str, max_results: int = 5, **kw):
|
|||
lines.append(f" {snippet}")
|
||||
lines.append(f" {url}")
|
||||
|
||||
if _is_price:
|
||||
lines.append("")
|
||||
lines.append("ACHTUNG EINHEITEN: Goldpreis-Quellen mischen oft Gramm/Unze/Kilo!")
|
||||
lines.append("1 troy ounce = 31,103 g. goldpreis.de zeigt oft EUR/Gramm, NICHT EUR/Unze.")
|
||||
lines.append("Rechne ggf. um: Preis/Gramm x 31,103 = Preis/Unze.")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue