From 1df89205acb846e3517512aff7159c6cbf3f0e44 Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 11 Jan 2026 17:54:33 +0100 Subject: [PATCH] Update EdgeDTO to support extended provenance values and modify explanation building in retriever.py to accommodate new provenance types. This enhances the handling of edge data for improved accuracy in retrieval processes. --- app/core/retrieval/retriever.py | 3 ++- app/models/dto.py | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/core/retrieval/retriever.py b/app/core/retrieval/retriever.py index 54e8d63..c6926f5 100644 --- a/app/core/retrieval/retriever.py +++ b/app/core/retrieval/retriever.py @@ -232,7 +232,8 @@ def _build_explanation( top_edges = sorted(edges_dto, key=lambda e: e.confidence, reverse=True) for e in top_edges[:3]: peer = e.source if e.direction == "in" else e.target - prov_txt = "Bestätigte" if e.provenance == "explicit" else "KI-basierte" + # WP-24c v4.5.3: Unterstütze alle explicit-Varianten (explicit, explicit:callout, etc.) + prov_txt = "Bestätigte" if e.provenance and e.provenance.startswith("explicit") else "KI-basierte" boost_txt = f" [Boost x{applied_boosts.get(e.kind)}]" if applied_boosts and e.kind in applied_boosts else "" reasons.append(Reason( diff --git a/app/models/dto.py b/app/models/dto.py index 23221e1..15d6eea 100644 --- a/app/models/dto.py +++ b/app/models/dto.py @@ -46,7 +46,14 @@ class EdgeDTO(BaseModel): target: str weight: float direction: Literal["out", "in", "undirected"] = "out" - provenance: Optional[Literal["explicit", "rule", "smart", "structure"]] = "explicit" + # WP-24c v4.5.3: Erweiterte Provenance-Werte für Chunk-Aware Edges + # Unterstützt alle tatsächlich verwendeten Provenance-Typen im System + provenance: Optional[Literal[ + "explicit", "rule", "smart", "structure", + "explicit:callout", "explicit:wikilink", "explicit:note_zone", "explicit:note_scope", + "inline:rel", "callout:edge", "semantic_ai", "structure:belongs_to", "structure:order", + "derived:backlink", "edge_defaults", "global_pool" + ]] = "explicit" confidence: float = 1.0 target_section: Optional[str] = None