You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Prompt Flow Index Lookup无筛选选项,检索日期过滤失效

Azure Search 精准日期筛选解决方案

针对你遇到的LLM查询返回非目标年份数据的问题,结合Azure Search和Prompt Flow的特性,提供以下可行方案:

一、利用Index Lookup组件的筛选扩展能力

你提到Index Lookup组件没有直接添加筛选的选项,实际上可以通过前置代码节点实现筛选条件注入:

  1. 在Prompt Flow中添加Python代码节点,放在Index Lookup组件之前
  2. 编写代码解析用户查询中的时间信息(可通过正则匹配或轻量LLM调用),生成标准OData筛选字符串:
    def generate_date_filter(query: str) -> str:
        # 示例:提取查询中的年份并生成对应日期范围筛选
        if "2022" in query.lower():
            return "date ge 2022-01-01T00:00:00Z and date lt 2023-01-01T00:00:00Z"
        # 可扩展其他年份的解析逻辑
        return ""
    
  3. 在Index Lookup组件的高级设置中,找到「筛选器(Filter)」参数,将代码节点输出的筛选字符串绑定到该参数上

二、优化查询结构,避免自然语言混合筛选语法

直接将筛选条件追加到自然语言查询的方式效果不稳定,原因是LLM无法精准识别OData语法,建议采用语义检索+结构化筛选分离的方式:

  1. 将用户查询拆分为两部分:语义关键词(如"nature books")和筛选条件(日期范围)
  2. 在Azure Search查询时,用search参数传递语义关键词,filter参数单独传递日期筛选条件,不将两者混合在自然语言中
  3. 如果必须通过LLM生成查询,可在Prompt中明确要求输出结构化结果,例如:

    请将用户查询拆分为「搜索关键词」和「OData筛选条件」,用|分隔。示例:用户查询"show me books for nature published in year 2022",输出:nature books|date ge 2022-01-01T00:00:00Z and date lt 2023-01-01T00:00:00Z

三、验证基础配置正确性

  • 确认Azure Search索引中date字段的filterable属性设置为true(默认开启,但需检查)
  • 确保date字段存储的是标准ISO 8601格式的DateTimeOffset数据(如2022-06-20T10:00:00Z),格式不匹配会导致筛选失效

Prompt Flow Index Lookup组件选项

内容的提问来源于stack exchange,提问作者hss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:52:22