Merge pull request '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) from WP24c_BugFix into main
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 3s
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 3s
Reviewed-on: #23
This commit is contained in:
commit
5e67cd470c
|
|
@ -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