ai-robot-core/docs/metadata-slot-prompt-recomm...

245 lines
9.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI客服配置参照元数据字段、槽位、提示词
本文用于指导 AI 中台在客服场景下的配置,帮助你区分:
- 元数据字段Metadata Field
- 槽位定义Slot
- 提示词变量Prompt Variable
并给出可直接落地的推荐配置清单。
---
## 1. 三者定位与关系
### 1.1 元数据字段(平台级字段字典)
用于定义“系统中有哪些标准字段,以及这些字段可用于哪些能力”。
适合做:
- 知识库检索过滤resource filter
- 路由信号routing signal
- 运行时槽位承载runtime slot
- 提示词变量注入prompt variable
一句话:**先定义字段能力,再复用到各模块。**
### 1.2 槽位定义(流程级采集任务)
用于定义“对话中要收集什么信息、如何提取、如何校验、缺失如何追问”。
适合做:
- 必填信息采集(如订单号、手机号后四位)
- 提取策略配置(规则/LLM/用户输入)
- 缺失追问与校验
一句话:**槽位是采集动作,不是字段字典。**
### 1.3 提示词变量(生成时上下文)
用于把结构化信息注入模型上下文,提升回答准确率和拟人化质量。
典型变量:
- 用户关键信息:`grade`、`region`、`issue_type`
- 会话信息:`history_summary`、`session_stage`
- 系统能力信息:`available_tools`(系统注入)
一句话:**提示词变量负责“表达给模型看”。**
---
## 2. 推荐的配置顺序(强烈建议)
1. **先建元数据字段**(确定字段标准与角色)
2. **再建槽位定义**(关联元数据字段,配置提取与追问)
3. **最后接提示词模板**(读取变量做自然生成)
这样可以避免“先做槽位后无字段可回写”的混乱。
---
## 3. 元数据字段关键项:适用范围 / 是否必填 / 默认值(必看)
这三个配置项不是可有可无,建议按下面规则配置:
### 3.1 适用范围(必须选)
适用范围决定字段会在哪些模块生效。建议按“最小够用”原则勾选:
- `知识库文档`:仅当该字段用于 KB 文档元数据过滤时勾选
- `意图规则`:用于意图匹配/路由时勾选
- `话术流程`:字段会在流程节点中读写时勾选
- `Prompt模板`:需要把字段注入提示词时勾选
> 不要无脑全选。全选会导致维护复杂、噪声增大。
### 3.2 是否必填(建议谨慎)
建议:
- **元数据字段层面默认不必填**
- **在槽位层/流程层设置必填**(更符合场景化控制)
原因:元数据是全局字典,若字段全局必填,会让无关场景也被强制卡住。
### 3.3 默认值(能不填就不填)
建议:
- 优先留空
- 只有在你有明确兜底语义时才设置默认值
- 对路由类字段(如 `issue_type`、`risk_level`)尤其要慎用默认值,避免误导路由
可接受示例:
- `issue_type` 默认值可用 `unknown`,不要用 `refund` 这类强业务含义值
### 3.4 以 `issue_type` 为例的推荐配置
- 适用范围:`意图规则`、`话术流程`、`Prompt模板`(按需再加 `知识库文档`
- 字段角色:`路由信号` + `提示词变量`,建议加 `运行时槽位`
- 是否必填:元数据层不勾;在 `slot_issue_type` 上勾必填
- 默认值:留空(或 `unknown`
### 3.5 以 `order_id` 为例的推荐配置
- 适用范围:`话术流程`、`Prompt模板`(通常不需要 `意图规则`
- 字段角色:`运行时槽位`(可按需加 `提示词变量`
- 是否必填:元数据层不勾;在售后相关槽位/流程上设为必填
- 默认值:留空(不要给“假订单号”)
---
## 4. AI客服场景推荐元数据字段首批
> 说明:以下为通用模板,字段标识建议小写+下划线。
| 字段标识 | 展示名 | 类型 | 字段角色建议 | 是否可过滤 | 适用范围建议 | 元数据必填 | 默认值建议 | 用途说明 |
|---|---|---|---|---|---|---|---|---|
| `issue_type` | 问题类型 | 文本 | 路由信号、提示词变量、运行时槽位 | 是 | 意图规则、话术流程、Prompt模板 | 否 | 空/unknown | 意图粗分类(咨询/售后/退款/投诉) |
| `risk_level` | 风险等级 | 文本 | 路由信号、提示词变量 | 是 | 意图规则、Prompt模板 | 否 | 空 | 高风险判定联动(投诉、承诺、隐私) |
| `order_id` | 订单号 | 文本 | 运行时槽位、提示词变量 | 否 | 话术流程、Prompt模板 | 否 | 空 | 售后/物流/退款查询关键参数 |
| `phone_last4` | 手机号后四位 | 文本 | 运行时槽位 | 否 | 话术流程 | 否 | 空 | 身份辅助校验参数 |
| `product_line` | 产品线 | 文本 | 资源过滤、路由信号、提示词变量、运行时槽位 | 是 | 知识库文档、意图规则、话术流程、Prompt模板 | 否 | 空 | KB检索过滤与流程分流 |
| `region` | 地区 | 文本 | 资源过滤、提示词变量、运行时槽位 | 是 | 知识库文档、话术流程、Prompt模板 | 否 | 空 | 区域政策与文案差异 |
| `grade` | 年级 | 文本 | 资源过滤、运行时槽位、提示词变量 | 是 | 知识库文档、话术流程、Prompt模板 | 否 | 空 | 教培类场景常用过滤条件 |
| `channel` | 渠道 | 文本 | 路由信号、提示词变量 | 是 | 意图规则、Prompt模板 | 否 | 空 | H5/小程序/企微等渠道差异 |
| `membership_level` | 会员等级 | 文本 | 资源过滤、提示词变量 | 是 | 知识库文档、Prompt模板 | 否 | 空 | 会员权益/优先级策略 |
| `refund_stage` | 退款阶段 | 文本 | 路由信号、提示词变量、运行时槽位 | 是 | 意图规则、话术流程、Prompt模板 | 否 | 空 | 退款流程进度识别与话术选择 |
| `intent_confidence` | 意图置信度 | 数值 | 路由信号 | 否 | 意图规则 | 否 | 空 | 路由保守策略阈值判定 |
| `kb_scene` | 检索场景 | 文本 | 资源过滤 | 是 | 知识库文档 | 否 | (可选) | 区分 同一个知识库内的不同场景,从元数据的kb_scene中获取 等 |
---
## 5. AI客服场景推荐槽位首批
| 槽位标识 | 关联字段 | 必填 | 提取策略 | 校验建议 | 追问提示语建议 |
|---|---|---|---|---|---|
| `slot_issue_type` | `issue_type` | 是 | 规则提取 + LLM推断兜底 | 枚举consult/refund/complaint/other | “为了更快帮您处理,请问您是咨询、退款还是投诉相关问题呢?” |
| `slot_order_id` | `order_id` | 售后场景必填 | 用户输入优先 | 正则(长度/前缀) | “请提供订单号,我帮您马上查询处理进度。” |
| `slot_phone_last4` | `phone_last4` | 否 | 用户输入 | `^\d{4}$` | “若方便的话,请提供下单手机号后四位用于核对。” |
| `slot_product_line` | `product_line` | 是(多业务线) | 规则提取 | 枚举 | “请问您咨询的是哪条产品线(如课程/会员/硬件)?” |
| `slot_region` | `region` | 否 | 规则提取 + 用户输入 | 行政区字典校验 | “请问您所在地区是哪里?我按当地规则给您说明。” |
| `slot_grade` | `grade` | 教培场景推荐必填 | 规则提取 + 用户输入 | 枚举(初一~高三等) | “孩子目前是几年级?我给您更精准的建议。” |
| `slot_refund_stage` | `refund_stage` | 退款场景可选 | 规则提取 + LLM推断 | 枚举(申请中/审核中/已到账) | “您是刚提交退款,还是想查询退款进度呢?” |
---
## 6. 槽位提取策略怎么选
### 6.1 用户输入(最稳)
适合:订单号、手机号后四位、收货地址等明确值。
### 6.2 规则提取(高确定性)
适合:年级、日期、单号格式、固定关键词分类。
### 6.3 LLM推断语义复杂
适合:问题类型、情绪、复杂场景意图。
推荐顺序:
1. 用户输入
2. 规则提取
3. LLM推断兜底
---
## 7. 元数据字段与提示词的联动建议
建议在模板里使用字段变量但避免过量优先注入“最影响回答质量的5~8个变量”。
推荐注入变量:
- `issue_type`
- `product_line`
- `region`
- `membership_level`
- `refund_stage`
- `history_summary`
示例(片段):
```text
用户问题类型:{{issue_type}}
产品线:{{product_line}}
地区:{{region}}
会员等级:{{membership_level}}
退款阶段:{{refund_stage}}
```
---
## 8. 你当前系统的关键保护项(必须遵守)
系统保留变量(受保护,不允许被模板默认值覆盖):
- `available_tools`
- `query`
- `history`
- `internal_protocol`
- `output_contract`
说明:这些变量由系统运行时注入,用于保证工具调用正确性与安全性。
---
## 9. 推荐的最小可用配置MVP
如果你想先快速上线,至少先配:
### 元数据字段6个
- `issue_type`
- `order_id`
- `product_line`
- `region`
- `risk_level`
- `refund_stage`
### 槽位4个
- `slot_issue_type`
- `slot_order_id`
- `slot_product_line`
- `slot_region`
### 提示词变量
- `issue_type`
- `product_line`
- `region`
- `history_summary`
---
## 10. 常见误区
1. **把槽位当字段字典**:导致复用差,流程间字段不统一。
2. **字段角色乱选**:例如把所有字段都打成路由信号,导致路由噪声。
3. **LLM提取滥用**:高确定性字段不走规则,稳定性会下降。
4. **提示词变量过多**:上下文拥挤,反而影响回答质量。
5. **在元数据层把太多字段设为必填**:导致无关场景被阻塞。
6. **默认值乱填**:路由字段被默认值污染,出现误判。
---
## 11. 最终一句话决策法
- 你在定义“字段能力” → 用**元数据字段**
- 你在定义“对话采集” → 用**槽位定义**
- 你在定义“模型看到什么” → 用**提示词变量**
三者串起来:
**元数据字段(标准) → 槽位采集(取值) → 提示词变量(表达)**