|
|
@@ -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 = ["实质", "形式", "目的", "模态", "业务阶段", "知识类型"]
|