Просмотр исходного кода

feat(query):创作Demo 加第七家族「实质×形式×阶段×动作×作用×知识类型」(最老完整多轴)

放在最后一个,直接复用 query.py 的 tactic_multiaxis(最老的多轴正交,带实质),
query 形如「军人事迹 句式辞格 灵感构思 直述开篇 有哪些」。多生成按query去重取前PER条避免死锁,
同样过 valid+relevant 筛选、不真搜。前端无需改(轴列已全部认得)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SamLee 2 недель назад
Родитель
Сommit
16f62eaef6
1 измененных файлов с 17 добавлено и 1 удалено
  1. 17 1
      scripts/build_creation_demo.py

+ 17 - 1
scripts/build_creation_demo.py

@@ -16,7 +16,7 @@ import json
 import random
 from pathlib import Path
 
-from acquisition.query import ACTIONS, _nonleaf_d4   # 第六家族(老正交)用的动作轴 + 4级非叶子取节点
+from acquisition.query import ACTIONS, _nonleaf_d4, tactic_multiaxis   # 老正交动作轴 / 4级非叶子 / 最老完整多轴
 from acquisition.query import STAGES as OLD_STAGES   # 老的裸阶段 灵感/选题/脚本
 from acquisition.query_filter import filter_queries   # 共享筛选器(query_filter.txt)
 from core.config import Settings
@@ -119,6 +119,21 @@ def main():
         q = " ".join([f_] + ([seg] if seg else []) + [zy_, suf])
         return {"parts": {"形式": f_, "阶段": st or "/", "动作": ac or "/", "作用": zy_, "知识类型": suf}, "query": q}
 
+    # 第七家族(最老的多轴正交·完整带实质):实质×形式×阶段×动作×作用×知识类型,直接复用 query.py 的 tactic_multiaxis。
+    # 多生成几倍、按 query 去重取前 PER 条(保证唯一,避免生成循环里重复死锁)。
+    F7_SEEN, F7_ROWS = set(), []
+    for _r in tactic_multiaxis(PER * 4):
+        if _r["query"] in F7_SEEN:
+            continue
+        F7_SEEN.add(_r["query"])
+        F7_ROWS.append(_r)
+        if len(F7_ROWS) >= PER:
+            break
+
+    def gen7(i):
+        r = F7_ROWS[i % len(F7_ROWS)]
+        return {"parts": {k: v for k, v in r.items() if k != "query"}, "query": r["query"]}
+
     # 每家族:生成器 + 用到的轴。家族名 = axes 用「×」连接,直接反映正交结构(见下方循环)。
     # axes 顺序即前端列顺序;业务阶段=脊柱每族必带,模态+知识类型收尾
     families = [
@@ -133,6 +148,7 @@ def main():
         {"key": "f5", "axes": ["模态", "业务阶段", "知识类型"],
          "gen": lambda i: {"parts": {"业务阶段": pick(INTENT), "模态": pick(MODALITY), "知识类型": pick(KTYPE)}}},
         {"key": "f6", "axes": ["形式", "阶段", "动作", "作用", "知识类型"], "gen": gen6},
+        {"key": "f7", "axes": ["实质", "形式", "阶段", "动作", "作用", "知识类型"], "gen": gen7},
     ]
     # 各部件按固定顺序拼成原串(内容维度在前,模态贴题材后,业务阶段+知识类型收尾)
     order = ["实质", "形式", "目的", "模态", "业务阶段", "知识类型"]