题目
Self-Query 如何将自然语言需求转换为检索条件和元数据过滤条件?
答案
Self-Query 将用户问题拆成“要找什么内容”和“结果必须满足什么条件”。例如“找去年发布的华东区退款政策”,语义查询是退款政策,过滤条件包括地区和发布时间范围。 实现时给模型提供允许过滤的字段、类型、枚举和运算符,让它输出结构化查询,再由程序转换成数据库或检索服务的条件。 转换结果必须验证。不存在的字段、非法运算符、无法确定的时间范围应报错或澄清;“去年”需要结合请求时间和时区解析。用户权限条件由后端强制加入,不能由模型生成或取消。 ![一句话拆成内容查询和过滤条件](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/question/agent-development/extra-self-query-f057780475ac5704.png) 过滤过严可能得到空结果,应区分“条件合法但没有资料”和“条件解析错误”。只有在不改变用户要求的前提下才能放宽查询,并明确说明调整了哪些检索条件。