# 元数据 + 意图识别 + 话术流程关联操作文档 ## 1. 目标 本文用于指导运营/配置人员在管理界面完成以下闭环: 1. 配置元数据字段 2. 录入知识库文档并标注元数据 3. 配置意图规则(触发路由) 4. 配置话术流程(多轮推进) 5. 打通“意图 -> 检索/流程 -> 话术生成” 适用对象:产品、运营、实施、测试。 --- ## 2. 概念关系(先理解) - **元数据(Metadata)**:用于“筛选与路由”的标签,如 `grade`、`subject`、`scene`。 - **意图规则(Intent Rule)**:用于判断“用户在说什么、系统该做什么”。 - **话术流程(Script Flow)**:用于处理“多轮引导”,例如收集年级 -> 收集薄弱点 -> 推荐课程。 **执行链路**: 用户消息 -> 意图匹配 -> - 命中 `response_type=rag`:进入知识库检索(带 metadata filter) - 命中 `response_type=flow`:进入话术流程 - 命中 `fixed/transfer`:直接固定回复或转人工 --- ## 3. 第一步:配置元数据字段 进入:`元数据配置` 页面 -> 新建字段。 建议首批字段(教育场景): - `grade`(枚举):初一/初二/初三/all - `subject`(枚举):语文/数学/英语/物理/化学/综合/all - `scene`(枚举):pain_point/transition/module_intro/faq/policy/closing - `flow_step`(枚举):step1/step2/step3/step4/step5/none - `intent_type`(枚举):ask_grade/ask_weak_point/module_recommend/next_action/faq_answer/compliance - `audience`(枚举):parent/student/all - `priority`(数字):1-10 - `status`(枚举):draft/active/deprecated 字段配置建议: - `是否必填`:`grade/subject/scene/status` 建议必填 - `可过滤`:上述字段建议全部开启 - `排序特征`:仅 `priority` 建议开启 - `状态`:配置完成后由 `草稿 -> 激活` 注意:字段标识只用小写字母/数字/下划线,避免后续过滤失败。 --- ## 4. 第二步:录入知识库文档并打元数据 进入:`知识库文档` 页面 -> 新增文档。 ### 4.1 文档内容规范(你当前按行分块) - 一行一个知识点 - 每行尽量只表达一个事实或一个建议 - 避免一行过长(建议 20~80 字) ### 4.2 元数据填写规范 示例(初一痛点文档): - `grade=初一` - `subject=综合` - `scene=pain_point` - `flow_step=step2` - `intent_type=ask_weak_point` - `audience=parent` - `status=active` - `priority=8` ### 4.3 无年级、仅学科的数据怎么填 - `grade=all` - `subject=语文/数学/...` - 其余按场景填写 不建议因为“无年级”单独新建知识库,优先通过文档+metadata区分。 --- ## 5. 第三步:配置意图规则(路由入口) 进入:`意图规则` 页面 -> 新建规则。 ### 5.1 必填项 - 名称 - `keywords`(关键词)和/或 `patterns`(正则) - `response_type`:fixed / rag / flow / transfer - 优先级 ### 5.2 推荐路由策略 - 课程咨询、薄弱点分析 -> `response_type=flow` - 短问短答(价格、班型) -> `response_type=rag` 或 `fixed` - 明确转人工 -> `response_type=transfer` ### 5.3 metadata 关联 在意图规则 metadata 中建议填写: - `scene` - `grade`(可选) - `subject`(可选) 用于后续检索过滤增强。 --- ## 6. 第四步:配置话术流程(与意图绑定) 进入:`话术流程` 页面 -> 新建或编辑流程。 ### 6.1 你当前推荐流程(示例) - Step1:确认年级 - Step2:年级特点 + 过渡到薄弱点 - Step3:确认薄弱科目/能力点 - Step4:针对薄弱点介绍课程模块 - Step5:给出下一步建议 ### 6.2 每步建议配置 - `script_mode = flexible` - 配置 `intent` / `intent_description` - 配置 `script_constraints` - 配置 `fallback content` - 配置 `expected_variables`(如 `grade`, `weak_points`) ### 6.3 与知识库关联方式 - 在流程步骤中通过 `rag_config.tag_filter` 或上下文变量注入过滤(如 `grade`, `subject`, `scene`) - Step2 常用 `scene=pain_point` - Step4 常用 `scene=module_intro` --- ## 7. 第五步:关联关系配置清单(上线前检查) ### 7.1 意图 -> 流程 - 已有意图规则 `response_type=flow` - `flow_id` 指向正确流程 ### 7.2 意图/上下文 -> 检索 - 命中 `response_type=rag` 或流程步骤需要RAG时 - metadata filter 至少包含 `grade/subject/scene` 之一 ### 7.3 文档 -> 检索命中 - 文档已 `status=active` - 文档 metadata 与过滤字段一致(值完全一致) - 文档内容按行分块且可检索 --- ## 8. 验收用例(建议) ### 用例1:初一家长咨询 输入:`孩子刚上初一,成绩上不去怎么办?` 期望: 1. 命中课程咨询意图 2. 进入 flow(或rag+flow) 3. 检索优先命中 `grade=初一` 且 `scene=pain_point` 文档 ### 用例2:仅学科问题 输入:`语文阅读理解总是丢分` 期望: 1. 命中学科提升相关意图 2. 检索命中 `subject=语文`、`grade=all` 或当前年级内容 ### 用例3:无召回兜底 输入:冷门问题且无相关文档 期望: 1. 返回 fallback 话术 2. 记录无召回原因(便于补文档) --- ## 9. 常见问题与处理 1. **有文档但检索不到** - 检查 metadata 值是否一致(如“初一” vs “七年级”) - 检查字段是否可过滤、状态是否 active 2. **命中不准,答非所问** - 缩小意图规则关键词 - 增加 metadata 过滤条件 - 拆分长行文本为更原子知识点 3. **是否要新增知识库** - 先不拆库,优先文档+metadata - 仅当串库严重/权限隔离/规模过大再拆 --- ## 10. 运营维护建议 - 每周复盘: - 高频命中问题 - 无召回问题 - 错召回问题 - 按复盘结果更新: - 意图规则关键词与优先级 - 文档内容与metadata - 流程约束与fallback 目标:持续提高“命中率、相关性、可用率”。