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)