Sfoglia il codice sorgente

docs(mode_workflow): README/手册 补 Query 规则组织器 + 端到端管线 收尾

刘文武 6 giorni fa
parent
commit
e89b357795

+ 34 - 3
examples/mode_workflow/README.md

@@ -2,8 +2,10 @@
 
 MySQL 四表(search_process / search_tools / mode_process / mode_tools)为唯一事实源的单页工作台:
 Dashboard(结果/过程指标可视化)、Dataset(query → 帖子 → 工序/工具解构)、聚类库(占位)。
+顶栏「**Query 规则**」按内容树维度铺词 → Sonnet 评分 → 高亮达标组合 → 一键搜(见下「Query 规则组织器」)。
 
-设计文档:`docs/superpowers/specs/2026-06-12-mode-workflow-design.md`
+设计文档:`docs/superpowers/specs/2026-06-12-mode-workflow-design.md`、
+`docs/superpowers/specs/2026-06-18-query-builder-design.md`(Query 规则 + 端到端管线)
 
 ## 启动
 
@@ -18,8 +20,8 @@ python server.py              # http://localhost:8772
 | 文件 | 职责 |
 |---|---|
 | `db.py` | 四表 DDL + 全部读写(读 .env MYSQL_*);连接走 `PooledDB` 池(远程 RDS 每次握手 ~0.5s,池复用避免每请求重连) |
-| `server.py` | 页面 + API + 解构任务子进程管理(端口 8772);`/api/dashboard` 结果带缓存(任务完成时作废 + 60s 兜底 TTL),`/api/extract` 等带 ETag/304 |
-| `index.html` | 单文件前端:Dashboard / Dataset / 聚类库 |
+| `server.py` | 页面 + API + 解构任务子进程管理(端口 8772);`/api/dashboard` 结果带缓存(任务完成时作废 + 60s 兜底 TTL),`/api/extract` 等带 ETag/304;Query 规则接口 `query_matrix`/`category_tree`/`query_score` |
+| `index.html` | 单文件前端:Dashboard / Dataset / 聚类库 / Query 规则弹层 |
 | `stages/search_eval.py` | 任意 query 搜索+评估 → search_process / search_tools(按解构方向分表) |
 | `stages/procedure_extract.py` | 工序解构(LLM 直出)→ mode_process |
 | `stages/tool_extract.py` | 工具解构 → mode_tools |
@@ -36,9 +38,11 @@ python server.py              # http://localhost:8772
 ## 数据流
 
 ```
+Query 规则(UI) → /api/query_score(Sonnet 评 tier≥1 格)→ 高亮达标(keep 且 综合分≥阈值)→ 点格/搜全部达标
 新建搜索(UI) → server 子进程 stages/search_eval.py → 统一评估 → 按 知识类型 标签路由
                                                      (工序/能力→search_process,工具→search_tools,两者都含写两表)
 选帖解构(UI) → server 子进程 stages/{procedure,tool}_extract.py → mode_process / mode_tools
+              (Dataset 工序/工具 tab「解构全部已采纳」一键解构该 query 该方向全部采纳帖)
 Dashboard    → /api/dashboard 实时聚合四表(内容树覆盖按 steps 的 action×type 命中有效节点)
 ```
 
@@ -52,6 +56,33 @@ query 搜到时只真实解构一次——`stages/{procedure,tool}_extract.py` 
 行补齐关联(`cost=0`),不再付费重跑。换 prompt/模型要对比时传 `--force`(API `force:true`)
 跳过去重。`runs/backfill_links.py` 是事后扫尾工具,复用同一 `link_process`。
 
+## Query 规则组织器(铺词 → 评分 → 搜索)
+
+顶栏「Query 规则」打开弹层,把"凭直觉拍 query"变成系统化铺词 + LLM 筛选:
+
+- **维度 chips**:工具类型/模态/后缀(扁平单选,拼入 query 词)、实质/形式(从
+  `library.aiddit.com` 分类树逐级下钻,**仅作 Sonnet 领域上下文**)、动作/类型(从
+  `judged_matrix` 的 l1/l2 下钻,**筛选下方表格显示**)。
+- **正交表**:`动作 × 类型` 整张 27×50(来自 `reference/judged_matrix.json`),每格
+  query = `[工具类型] 动作叶 类型叶 [模态] [后缀]`,tier 决定底色。
+- **评估高亮**:`POST /api/query_score` 起 `stages/query_score.py`,对 643 个 tier≥1 格在
+  当前维度上下文下用 Sonnet 打分(natural/findable/useful + keep + rewrite + reason),
+  综合分 `= natural*0.4 + findable*0.3 + useful*0.3`。结果按选择哈希缓存
+  `.cache/query_score/<sel>.json`,**同选择不重复付费**。
+- **达标 = keep 且 综合分 ≥ 阈值**(弹层可调,默认 7):达标格蓝框高亮 + 角标分数,
+  点格弹气泡(分数拆解 / 理由 / 发起搜索 / 复制)。
+- **发起搜索**:点单格 或「搜全部达标」→ `POST /api/run_search`(默认 `xhs,gzh` 各 20、
+  方向无关,落表由评估标签自动路由)。
+
+命令行单独跑评分(不依赖 UI):
+
+```bash
+python stages/query_score.py --tool-type AI --modality 图片 --suffix 怎么做 --dry-run  # 只拼词,不调 LLM
+python stages/query_score.py --tool-type AI --suffix 怎么做 --limit 20 --sel _t        # 小样真评(写 .cache)
+```
+
+外部依赖:`library.aiddit.com` 的 category-tree 接口(实质/形式),server 端直连 + `.cache/category_tree/` 缓存。
+
 ## 知识导入(工序上传)
 
 把 DB 中**已采纳**的工序解构导入到知识接口(`/api/v1/knowledge/ingest`)。数据来源是

+ 22 - 0
examples/mode_workflow/流程执行手册.md

@@ -185,3 +185,25 @@ python3 -c "import db; c=db._conn(); cur=c.cursor(); cur.execute(\"SELECT COUNT(
 | 上传知识库(51 条) | ~1–2 分钟 | 不计费 |
 
 > 数量越多、配图越多越贵越慢。去重(评估/解构/上传三处默认都开)会让**重复跑同一批基本不花钱**。
+
+---
+
+## 附:Query 规则组织器(UI 铺词,替代"凭直觉拍 query")
+
+本手册是命令行流程;**找 query 这一步**现在 UI 有更系统的方式——顶栏「Query 规则」:
+按内容树维度铺词 → Sonnet 给 643 个 tier≥1 格打分 → 高亮**达标(keep 且 综合分≥阈值,默认 7)**
+组合 → 点格 或「搜全部达标」直接发起搜索(默认 `xhs,gzh` 各 20、方向无关,落表按标签自动路由)。
+细节见 `README.md` 的「Query 规则组织器」。
+
+评分也可不依赖 UI、命令行单独跑(server 起子进程时即调它):
+
+```bash
+# 只拼词+打印将评的格数,不调 LLM(验证筛选/拼词)
+python3 stages/query_score.py --tool-type AI --modality 图片 --suffix 怎么做 --dry-run
+# 小样真评前 20 格,结果写 .cache/query_score/_t.json(核对结构)
+python3 stages/query_score.py --tool-type AI --suffix 怎么做 --limit 20 --sel _t
+```
+
+搜出来的帖按评估的 `知识类型` 标签自动入 `search_process`/`search_tools`(见步骤 1+2 的路由说明);
+之后在 Dataset 的 **工序/工具 tab 点「解构全部已采纳」**,等价于本手册步骤 3 的
+`python3 stages/{procedure,tool}_extract.py --query-id qXXXX`(该 query 该方向全部已采纳帖)。