Przeglądaj źródła

fix: reasoning layer falls back to original genre when routed genre has no match

lingfengQAQ 2 miesięcy temu
rodzic
commit
3a04edda95

+ 4 - 2
webnovel-writer/scripts/data_modules/story_system_engine.py

@@ -44,9 +44,11 @@ class StorySystemEngine:
             top_k=2,
             top_k=2,
         )
         )
 
 
-        # Reasoning layer
-        primary_genre = str(route.get("meta", {}).get("primary_genre", "") or genre or "").strip()
+        # Reasoning layer — try routed genre first, then original genre
+        primary_genre = str(route.get("meta", {}).get("primary_genre", "") or "").strip()
         reasoning = self._load_reasoning(primary_genre)
         reasoning = self._load_reasoning(primary_genre)
+        if not reasoning and genre:
+            reasoning = self._load_reasoning(genre)
         ranked = self._apply_reasoning(reasoning, base_context, dynamic_context)
         ranked = self._apply_reasoning(reasoning, base_context, dynamic_context)
 
 
         source_trace = route["source_trace"] + self._build_source_trace_with_reasoning(ranked, reasoning)
         source_trace = route["source_trace"] + self._build_source_trace_with_reasoning(ranked, reasoning)