From 3dc81ade0f8f36fa523895711c26bd4f8f35d8e1 Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 11 Jan 2026 18:55:13 +0100 Subject: [PATCH] Update logging in decision_engine.py and retriever.py to use node_id as chunk_id and total_score instead of score for improved accuracy in debug statements. This change aligns with the new data structure introduced in version 4.5.4, enhancing traceability in retrieval processes. --- app/core/retrieval/decision_engine.py | 5 ++++- app/core/retrieval/retriever.py | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/core/retrieval/decision_engine.py b/app/core/retrieval/decision_engine.py index ed90d21..ffcf8ac 100644 --- a/app/core/retrieval/decision_engine.py +++ b/app/core/retrieval/decision_engine.py @@ -225,8 +225,11 @@ class DecisionEngine: else: logger.info(f"✨ [SUCCESS] Stream '{name}' lieferte {len(response.results)} Treffer.") # Top 3 Treffer im DEBUG-Level loggen + # WP-24c v4.5.4: QueryHit hat kein chunk_id Feld - verwende node_id (enthält die Chunk-ID) for i, hit in enumerate(response.results[:3]): - logger.debug(f" [{i+1}] Chunk: {hit.chunk_id} | Score: {hit.score:.4f} | Path: {hit.source.get('path', 'N/A')}") + chunk_id = hit.node_id # node_id ist die Chunk-ID (pid) + score = hit.total_score # QueryHit hat total_score, nicht score + logger.debug(f" [{i+1}] Chunk: {chunk_id} | Score: {score:.4f} | Path: {hit.source.get('path', 'N/A') if hit.source else 'N/A'}") for hit in response.results: hit.stream_origin = name diff --git a/app/core/retrieval/retriever.py b/app/core/retrieval/retriever.py index c6926f5..8a697ed 100644 --- a/app/core/retrieval/retriever.py +++ b/app/core/retrieval/retriever.py @@ -357,8 +357,10 @@ def _build_hits_from_semantic( else: logger.info(f"✨ [SUCCESS] Hybride Suche lieferte {len(results)} Treffer (Latency: {latency_ms}ms)") # Top 3 finale Scores loggen + # WP-24c v4.5.4: QueryHit hat kein chunk_id Feld - verwende node_id (enthält die Chunk-ID) for i, hit in enumerate(results[:3]): - logger.debug(f" [{i+1}] Final: Chunk={hit.chunk_id} | Total-Score={hit.total_score:.4f} | Semantic={hit.semantic_score:.4f} | Edge={hit.edge_bonus:.4f}") + chunk_id = hit.node_id # node_id ist die Chunk-ID (pid) + logger.debug(f" [{i+1}] Final: Chunk={chunk_id} | Total-Score={hit.total_score:.4f} | Semantic={hit.semantic_score:.4f} | Edge={hit.edge_bonus:.4f}") return QueryResponse(results=results, used_mode=used_mode, latency_ms=latency_ms)