diff --git a/homelab-ai-bot/llm.py b/homelab-ai-bot/llm.py index 94726a09..ac20d084 100644 --- a/homelab-ai-bot/llm.py +++ b/homelab-ai-bot/llm.py @@ -427,20 +427,25 @@ def ask_with_tools(question: str, tool_handlers: dict, session_id: str = None) - if _rag_fn: try: log.info("RAG-Pflicht: forciere rag_search fuer: %s", question[:80]) - _rag_res = _rag_fn(query=question, top_k=8) + _rag_res = _rag_fn(query=question, top_k=10) if _rag_res and not _rag_res.startswith("Keine"): log.info("RAG-Pflicht: %d Zeichen — loesche Session-History", len(str(_rag_res))) messages = [ {"role": "system", "content": _full_prompt + "\n\nWICHTIG: Ignoriere fruehere Antworten. " + "Die Dokumentensuche unten ist die einzige Wahrheit. " - + "Beantworte die Frage NUR basierend auf diesen Suchergebnissen."}, + + "Beantworte die Frage NUR basierend auf diesen Suchergebnissen. " + + "Wenn mehrere Treffer zur gleichen Gesellschaft gehoeren: " + + "liste jede erkannte Sparte bzw. jeden Dokumenttyp separat " + + "(z.B. Kfz/Auto, Rechtsschutz, Haftpflicht, Sach, Ausland, Kranken) " + + "mit kurzem Beleg (Dateiname oder Ordner aus den Treffern). " + + "Nicht nur den ersten Treffer nennen."}, {"role": "assistant", "content": None, "tool_calls": [{"id": "forced_rag", "type": "function", "function": {"name": "rag_search", - "arguments": json.dumps({"query": question, "top_k": 8})}}]}, + "arguments": json.dumps({"query": question, "top_k": 10})}}]}, {"role": "tool", "tool_call_id": "forced_rag", - "content": str(_rag_res)[:3000]}, + "content": str(_rag_res)[:12000]}, {"role": "user", "content": question}, ] except Exception as e: diff --git a/homelab-ai-bot/tools/rag.py b/homelab-ai-bot/tools/rag.py index 8c428987..a6eb2bfd 100644 --- a/homelab-ai-bot/tools/rag.py +++ b/homelab-ai-bot/tools/rag.py @@ -78,6 +78,7 @@ ERGEBNISSE AUSWERTEN: - ERFINDE KEINE Details die nicht im Ergebnis stehen - Der Ordnerpfad (vor dem Dateinamen, getrennt durch __) zeigt die Kategorie - Wenn rag_search Treffer liefert: IMMER auflisten, auch wenn Inhalt unvollstaendig +- Mehrere Treffer zur gleichen Versicherung/Gesellschaft: jede Sparte/Dokumentart separat nennen (Kfz, Rechtsschutz, Haftpflicht, Sach, Ausland, Kranken), mit Dateiname/Ordner - Antworte NIEMALS "keine gefunden" oder "nicht gespeichert" OHNE vorher rag_search aufgerufen zu haben"""