Update deterministic sorting of semantic_groups in build_edges_for_note to handle None values correctly. Introduced a custom sort function to ensure consistent edge extraction across batches, preventing variance in edge counts. #23
|
|
@ -910,9 +910,20 @@ def build_edges_for_note(
|
|||
# Schritt 3: ID-Zuweisung nach Scope-Entscheidung
|
||||
final_edges: List[dict] = []
|
||||
|
||||
# WP-24c v4.5.9: Deterministische Sortierung der semantic_groups für konsistente Edge-Extraktion
|
||||
# WP-24c v4.5.10: Deterministische Sortierung der semantic_groups für konsistente Edge-Extraktion
|
||||
# Verhindert Varianz zwischen Batches (33 vs 34 Kanten)
|
||||
sorted_semantic_keys = sorted(semantic_groups.keys())
|
||||
# WICHTIG: target_section kann None sein, daher benötigen wir eine benutzerdefinierte Sortierfunktion
|
||||
def sort_key_func(key_tuple):
|
||||
"""
|
||||
Sortierfunktion für semantic_keys, die None-Werte korrekt behandelt.
|
||||
None wird als leere Zeichenkette behandelt, um Vergleichbarkeit zu gewährleisten.
|
||||
"""
|
||||
kind, semantic_source, target_id, target_section = key_tuple
|
||||
# Konvertiere None zu leerem String für konsistente Sortierung
|
||||
target_section_safe = target_section if target_section is not None else ""
|
||||
return (kind, semantic_source, target_id, target_section_safe)
|
||||
|
||||
sorted_semantic_keys = sorted(semantic_groups.keys(), key=sort_key_func)
|
||||
|
||||
for semantic_key in sorted_semantic_keys:
|
||||
group = semantic_groups[semantic_key]
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user