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