refactor(extraction): remove legacy extract prompt path

This commit is contained in:
youzini
2026-06-09 06:41:33 +00:00
parent 049300ae09
commit 1e32bd6499
19 changed files with 406 additions and 1034 deletions

View File

@@ -43,22 +43,20 @@
可选近期消息上限 `extractRecentMessageCap`(默认 0 = 不限)。提示词模式 `extractPromptStructuredMode` 默认 `"both"`(可选 `transcript` / `structured` / `both`)。
## 3. 默认 split-v1 提取管线
## 3. 默认双阶段提取管线
默认 `extractPipelineVersion``"split-v1"`。同一批结构化输入进入两个职责更窄的 LLM 阶段:
默认提取没有旧版单请求回退。同一批结构化输入固定进入两个职责更窄的 LLM 阶段:
1. **客观阶段**`extract_objective`):只保留客观图谱操作,例如事件、角色、地点、规则、线程、区域和故事时间。该阶段输出中的 `pov_memory` 与 cognition 更新会被过滤掉。
2. **主观/POV 阶段**`extract_subjective`):只保留 `pov_memory` 与 cognition 更新。该阶段输出中的客观节点、区域更新和批次故事时间会被过滤掉。
两个阶段都通过校验后,才合并为一个 commit plan并一次性写入图谱如果主观阶段失败或输出无效客观阶段不会先落库。这保证默认提取仍然保持“一次 batch、一次提交、一次持久化”的原子边界。
为了不破坏旧用户的自定义提取 Prompt运行时会先检查旧 `extractPrompt``taskProfiles.extract`:只要检测到旧式自定义、迁移自旧 Prompt、陈旧默认模板或被修改过的默认 `extract` profile就自动回退到 `legacy-single` 的单请求提取路径
> 当前阶段没有改默认 Prompt 文案;`extract_objective` / `extract_subjective` 是工程管线和 task type 拆分,后续可以在对应 task profile 中替换成真正更短、更专注的客观/主观 Prompt。
旧版 `extract` task profile`extractPrompt``legacy-single` 管线已移除。默认预设只保留 `extract_objective` / `extract_subjective`UI 也只暴露“客观提取 / 主观提取”
## 4. 构建提取提示词
默认 split 管线复用同一套提取 Prompt 上下文构建能力legacy 路径使用 `buildTaskPrompt(settings, "extract", ...)`split 阶段使用对应 task type 进入 LLM 调用。上下文分层包括:
双阶段管线复用同一套提取 Prompt 上下文构建能力,但分别使用对应 task type 进入 LLM 调用。上下文分层包括:
1. 当前对话(结构化 + transcript
2. 图谱状态上下文(`buildTaskGraphStats()`topK 12、diffusionTopK 48、多意图开、最大文本 1200
@@ -120,7 +118,6 @@ update 操作触发时序处理:
| `extractEvery` | 1 | 每 N 条助手消息提取 |
| `extractContextTurns` | 2 | 上下文轮数 |
| `extractAutoDelayLatestAssistant` | false | lag-one 延迟提取 |
| `extractPipelineVersion` | "split-v1" | 默认客观 + 主观/POV 双阶段提取;旧自定义 Prompt 自动回退 legacy |
| `extractPromptStructuredMode` | "both" | 提示词模式 |
| `enableSmartTrigger` | false | 智能触发 |
| 排除标签 | think,analysis,reasoning | 提取时过滤 |