name: metadata-extraction description: 从自然语言中提取结构化过滤条件(元数据),以支持混合检索(条件过滤 + 向量语义)。
结构化过滤提取 (Metadata Extraction) Skill
本技能旨在将用户自然语言中的“强约束条件(硬属性)”剥离出来,防止它们去干扰纯粹的语义向量池。此为实现高效“混合检索 (Hybrid Retrieval)”的前置必须动作。
何时使用本技能 (When to Use)
一旦发现用户查询中带有显式的“分类标签式”词语时,必须无条件拦截并使用本技能:
- 日期与时间维度:“今年Q4”、“2023年”、“上个季度”、“今天”。
- 实体/部门/人物维度:“财务部”、“CEO发出的”、“张三负责的”、“华南大区”。
- 特定文件类型/标签:“报销单”、“政策规范”、“邮件”、“Excel文件”。
强制处理步骤 (Required Steps)
- 解析与分离 (Parse & Separate):严格分析用户的查询语句,将属于“硬分类”的条件短语与属于“描述概念”的语义短语切割成两块。
- 结构化处理 (Format Filters):将剥离出的条件转换成标准的 JSON 键值对字典的形式(对应底层支持的 Metadata Schema)。
- 清洗提问 (Refine Query):在自然语言查询句中彻底除掉这些强约束条件词汇,留下极度干净、纯粹的“核心意图”字符串。
- 混合执行 (Execute Hybrid Search):将提取出来的
filters结构体和清洗过的clean_query作为两个并行参数一齐打给你的混合检索引擎。
输出格式与执行日志 (Output Format & Execution Logging)
应用本技能时,你的处理日志必须完全符合以下结构树体:
**[应用技能: 结构化过滤提取 Metadata Extraction]**
- 原始查询: "<用户的自然发问>"
- 提取出的元数据字典 (Filters):
```json
{
"time_range": "<时间变量>",
"department": "<机构/部门>",
"doc_type": "<归制类型>"
}
- 清洗后的纯语义查询: "<剥离条件后的纯净问题>"
**示例**:
- 原始查询: "找一下 2023 年财务部发布的关于差旅费的那个文件。"
- 提取出的元数据字典 (Filters):
```json
{
"Year": "2023",
"Department": "Finance"
}
- 清洗后的纯语义查询: "差旅费政策文件"
严重禁止 (CRITICAL):在目标数据库支持元数据筛选器介入时,严禁把类似“2023年”这样的数字直愣愣地连同长句子一起灌入基于 Embedding 算距离的算法里,必须走结构化下推。