|
|
@@ -0,0 +1,95 @@
|
|
|
+// 字段中文业务含义。来源(权威,勿自行编写):
|
|
|
+// - tech_documents/规则包映射/规则包映射配置表.xlsx 的「字段注释」sheet 与各 sheet 数据字典行
|
|
|
+// - tech_documents/游走策略/游走策略配置表.xlsx 各 sheet 数据字典行
|
|
|
+// - query prompts 字段含义来自 M2 implementation brief(prompt 配置合同)
|
|
|
+export type FieldAnnotation = { label: string; desc: string };
|
|
|
+
|
|
|
+export const FIELD_ANNOTATIONS: Record<string, FieldAnnotation> = {
|
|
|
+ // ===== 通用 =====
|
|
|
+ rule_pack_id: { label: "规则包 ID", desc: "规则包 ID,用来标识某个具体规则包。" },
|
|
|
+ rule_pack_version: { label: "规则包版本", desc: "规则包版本。" },
|
|
|
+ priority: { label: "优先级", desc: "优先级,数字越小越先执行或越先作为主原因。" },
|
|
|
+ enabled: { label: "是否启用", desc: "这条配置是否存在并允许维护,不等于当前运行启用。" },
|
|
|
+ notes: { label: "注释", desc: "中文业务注释。" },
|
|
|
+ platform: { label: "平台", desc: "规则适用的平台,例如抖音。" },
|
|
|
+ field_path: { label: "字段路径", desc: "在 EvidenceBundle 或运行上下文中的字段路径。" },
|
|
|
+ operator: { label: "操作符", desc: "判断操作符,例如 is_empty、in、not_in、eq、gte。" },
|
|
|
+ expected_value: { label: "目标值", desc: "触发规则时匹配的目标值。" },
|
|
|
+ decision_action: { label: "判定动作", desc: "规则输出动作,例如入池、待复看、淘汰。" },
|
|
|
+ decision_reason_code: { label: "原因码", desc: "规则输出原因码,用于复盘和报表。" },
|
|
|
+ effect_status: { label: "效果状态", desc: "内容级效果状态,例如 success、pending、failed、rule_blocked。" },
|
|
|
+ target_entity: { label: "判断对象", desc: "规则判断对象,例如内容、作者、tag、路径或预算。" },
|
|
|
+ runtime_stage: { label: "适用阶段", desc: "适用阶段,例如 V1.0 或 future。" },
|
|
|
+ strategy_version: { label: "策略版本", desc: "策略版本,用来区分不同阶段或不同实验版本。" },
|
|
|
+ edge_id: { label: "游走边", desc: "游走边 ID(绑定/预算/停止规则适用的边)。" },
|
|
|
+
|
|
|
+ // ===== rule_pack_dispatch =====
|
|
|
+ dispatch_id: { label: "路由 ID", desc: "规则路由 ID,用来标识一条选择规则包的路由。" },
|
|
|
+ content_format: { label: "内容形态", desc: "内容形态,例如 video。" },
|
|
|
+ dispatch_enabled: { label: "运行时启用", desc: "当前运行链路是否真正会选择这条规则;false 即 future 包(已归属未运行)。" },
|
|
|
+ fallback_policy: { label: "兜底策略", desc: "路由失败或多条路由同时命中时的处理策略。" },
|
|
|
+
|
|
|
+ // ===== hard_gate_rules =====
|
|
|
+ gate_id: { label: "硬规则 ID", desc: "Hard Gate 规则 ID。" },
|
|
|
+ label: { label: "中文名称", desc: "Hard Gate 中文名称。" },
|
|
|
+ when: { label: "触发条件", desc: "字段路径 + 操作符 + 目标值组成的触发条件。" },
|
|
|
+ severity: { label: "严重程度", desc: "规则严重程度,例如 fatal 表示命中后强拦截,review 表示进入待复看。" },
|
|
|
+ stop_scoring: { label: "停止评分", desc: "命中后是否停止后续评分。" },
|
|
|
+
|
|
|
+ // ===== scorecard =====
|
|
|
+ key: { label: "维度 key", desc: "评分维度 key。" },
|
|
|
+ dimension_key: { label: "所属维度", desc: "评分维度 key。" },
|
|
|
+ max_score: { label: "最高分", desc: "该维度或阈值最高分。" },
|
|
|
+ weight_percent: { label: "权重 %", desc: "该维度在总分中的权重。" },
|
|
|
+ runtime_status: { label: "运行状态", desc: "运行状态,例如 active、future、deprecated。" },
|
|
|
+ scoring_rule_id: { label: "评分细则 ID", desc: "评分细则 ID。" },
|
|
|
+ score_value: { label: "得分", desc: "命中该评分细则后给出的分数。" },
|
|
|
+ min_score: { label: "分数下限", desc: "分数下限。" },
|
|
|
+
|
|
|
+ // ===== effect_status_mapping =====
|
|
|
+ mapping_id: { label: "映射 ID", desc: "映射关系 ID。" },
|
|
|
+ target_level: { label: "映射层级", desc: "映射层级,例如 content 或 query。" },
|
|
|
+ reason_category: { label: "原因分类", desc: "原因分类。" },
|
|
|
+ is_hard_gate: { label: "硬规则触发", desc: "是否由 Hard Gate 触发。" },
|
|
|
+ content_effect_status: { label: "内容效果状态", desc: "内容级效果状态。" },
|
|
|
+ query_effect_status: { label: "query 效果状态", desc: "query 级效果状态。" },
|
|
|
+
|
|
|
+ // ===== decision_reason_codes =====
|
|
|
+ reason_label: { label: "原因中文名", desc: "原因码中文名称。" },
|
|
|
+ business_explanation: { label: "业务解释", desc: "原因码的业务解释。" },
|
|
|
+
|
|
|
+ // ===== walk_rule_pack_binding =====
|
|
|
+ binding_id: { label: "绑定 ID", desc: "边→规则包绑定 ID。" },
|
|
|
+ required: { label: "是否必须", desc: "是否必须通过该规则判断。" },
|
|
|
+ dispatch_policy: { label: "调用方式", desc: "调用方式,如 required / optional / advisory。" },
|
|
|
+
|
|
|
+ // ===== walk_edge_catalog =====
|
|
|
+ edge_type: { label: "边类型", desc: "边类型。" },
|
|
|
+ can_loop: { label: "可循环", desc: "是否允许循环或多轮。" },
|
|
|
+
|
|
|
+ // ===== walk_budget_policy =====
|
|
|
+ budget_id: { label: "预算规则 ID", desc: "预算规则 ID。" },
|
|
|
+ max_total_actions: { label: "单 run 上限", desc: "单 run 最多执行次数。" },
|
|
|
+ max_per_query: { label: "每 query 上限", desc: "每条 query 最多执行次数。" },
|
|
|
+ max_per_content: { label: "每内容上限", desc: "每条内容最多执行次数。" },
|
|
|
+ max_pages: { label: "最大页数", desc: "最大页数。" },
|
|
|
+ max_depth: { label: "最大深度", desc: "最大游走深度。" },
|
|
|
+ max_tag_hops: { label: "tag 跳数上限", desc: "最大 tag 扩散跳数。" },
|
|
|
+
|
|
|
+ // ===== walk_stop_policy =====
|
|
|
+ stop_policy_id: { label: "停止规则 ID", desc: "停止规则 ID。" },
|
|
|
+ condition_label: { label: "停止条件", desc: "停止条件名称。" },
|
|
|
+ stop_action: { label: "停止动作", desc: "停止后的动作(stop_path 停整条路径 / stop_edge 停这条边)。" },
|
|
|
+
|
|
|
+ // ===== query prompts(M2 brief 合同) =====
|
|
|
+ prompt_version: { label: "Prompt 版本", desc: "prompt 配置版本,decision 记录中的 prompt 真相源。" },
|
|
|
+ temperature: { label: "温度", desc: "LLM 采样温度,与 V1 行为逐字复刻(0.4)。" },
|
|
|
+ max_tokens: { label: "最大 token", desc: "LLM 输出 token 上限。" },
|
|
|
+ variants_per_seed: { label: "每种子变体数", desc: "每个种子词生成的 query 数;>1 暂不支持(M2 拍板,配置大于 1 直接报错)。" },
|
|
|
+ evidence_fields: { label: "证据字段", desc: "拼装 LLM 输入 evidence_context 时读取的字段清单(17+ 个,顺序固定)。" },
|
|
|
+ generic_filter: { label: "泛词过滤", desc: "生成结果命中泛词(如「内容」「热门」)时丢弃,避免无效搜索词。" }
|
|
|
+};
|
|
|
+
|
|
|
+export function fieldAnnotation(field: string): FieldAnnotation {
|
|
|
+ return FIELD_ANNOTATIONS[field] || { label: field, desc: "" };
|
|
|
+}
|