llm: RAG-Unterlagen — STIL-OVERRIDE und Struktur (Kurzfassung + je Dokument)
Globaler Prompt fordert sonst knappe Antworten; bei forciertem rag_search jetzt explizit ausfuehrlicher. User-Zeile: strukturierte Kosten-Antwort statt nur Quellen-Hinweis. Markdown ** um Dateiname entfernt (Telegram).
This commit is contained in:
parent
93aabf3fc5
commit
031b8d6c65
1 changed files with 12 additions and 3 deletions
|
|
@ -456,21 +456,30 @@ def ask_with_tools(question: str, tool_handlers: dict, session_id: str = None, d
|
||||||
messages = [
|
messages = [
|
||||||
{"role": "system", "content": _full_prompt
|
{"role": "system", "content": _full_prompt
|
||||||
+ "\n\nWICHTIG: Ignoriere fruehere Antworten. "
|
+ "\n\nWICHTIG: Ignoriere fruehere Antworten. "
|
||||||
|
+ "STIL-OVERRIDE: Trotz globalem Hausmeister-Stil (kurz): diese Antwort bewusst etwas ausfuehrlicher "
|
||||||
|
+ "(mehrere Saetze, Aufzaehlungen), damit Kosten und Zeitraeume ohne Nachfrage klar sind. "
|
||||||
+ "Die Dokumentensuche unten ist die einzige Wahrheit. "
|
+ "Die Dokumentensuche unten ist die einzige Wahrheit. "
|
||||||
+ "Beantworte die Frage NUR basierend auf diesen Suchergebnissen. "
|
+ "Beantworte die Frage NUR basierend auf diesen Suchergebnissen. "
|
||||||
|
+ "Struktur: (1) Kurzfassung 1-2 Saetze: welche Jahre/Rechnungen vorliegen und was sich daraus fuer "
|
||||||
|
+ "einen Jahresbetrag ableiten laesst oder warum nicht. "
|
||||||
|
+ "(2) Danach je relevantem Treffer: Dateiname, Betrag falls im Snippet, Zeitraum falls erkennbar. "
|
||||||
+ "Wenn mehrere Treffer zur gleichen Gesellschaft gehoeren: "
|
+ "Wenn mehrere Treffer zur gleichen Gesellschaft gehoeren: "
|
||||||
+ "liste jede erkannte Sparte bzw. jeden Dokumenttyp separat "
|
+ "liste jede erkannte Sparte bzw. jeden Dokumenttyp separat "
|
||||||
+ "(z.B. Kfz/Auto, Rechtsschutz, Haftpflicht, Sach, Ausland, Kranken) "
|
+ "(z.B. Kfz/Auto, Rechtsschutz, Haftpflicht, Sach, Ausland, Kranken) "
|
||||||
+ "mit kurzem Beleg (Dateiname oder Ordner aus den Treffern). "
|
+ "mit Beleg (Dateiname oder Ordner aus den Treffern). "
|
||||||
+ "Nicht nur den ersten Treffer nennen. "
|
+ "Nicht nur den ersten Treffer nennen. "
|
||||||
+ "Bei Kosten/Beitraegen: je Treffer Betrag und Zeitraum nennen wenn im Snippet erkennbar; sonst kurz nicht eindeutig. "+ "VERBOTEN: Antwort nur als nackte Zahl (z.B. nur eine EUR-Zeile ohne Kontext). Zu JEDEM Betrag mindestens einen **Dateinamen** aus den Treffern nennen. "+ "Bei Kfz/Fahrzeug: sagen welches Dokument sich darauf bezieht oder dass die Zuordnung unsicher ist."},
|
+ "Bei Kosten/Beitraegen: je Treffer Betrag und Zeitraum nennen wenn im Snippet erkennbar; "
|
||||||
|
+ "wenn nicht erkennbar, ausdruecklich sagen. "
|
||||||
|
+ "VERBOTEN: Antwort nur als nackte Zahl (z.B. nur eine EUR-Zeile ohne Kontext). "
|
||||||
|
+ "Zu JEDEM Betrag mindestens einen Dateinamen aus den Treffern nennen. "
|
||||||
|
+ "Bei Kfz/Fahrzeug: sagen welches Dokument sich darauf bezieht oder dass die Zuordnung unsicher ist."},
|
||||||
{"role": "assistant", "content": None,
|
{"role": "assistant", "content": None,
|
||||||
"tool_calls": [{"id": "forced_rag", "type": "function",
|
"tool_calls": [{"id": "forced_rag", "type": "function",
|
||||||
"function": {"name": "rag_search",
|
"function": {"name": "rag_search",
|
||||||
"arguments": json.dumps({"query": _rag_q, "top_k": 60})}}]},
|
"arguments": json.dumps({"query": _rag_q, "top_k": 60})}}]},
|
||||||
{"role": "tool", "tool_call_id": "forced_rag",
|
{"role": "tool", "tool_call_id": "forced_rag",
|
||||||
"content": str(_rag_res)[:100000]},
|
"content": str(_rag_res)[:100000]},
|
||||||
{"role": "user", "content": question + "\n\n[Quelle: Jeder genannte EUR-Betrag mit Dateiname aus den Treffern; keine reine Ein-Zahl-Antwort.]"},
|
{"role": "user", "content": question + "\n\n[Strukturiert antworten: Kurzfassung zu Jahr/jaehrlich, dann je Dokument Dateiname mit Betrag und Zeitraum aus den Treffern; keine reine Ein-Zahl-Antwort.]"},
|
||||||
]
|
]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.warning("RAG-Pflicht Fehler: %s", e)
|
log.warning("RAG-Pflicht Fehler: %s", e)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue