GoForum🌐 V2EX

怎么提升自然语言转 SQL 的准确性?

WilliamColton · 2026-08-08 10:07 · 0 次点赞 · 2 条回复

在表结构比较复杂、字段较多的时候总是容易漏字段,目前的方案是加一层模板匹配,预先设计好一部分模板,然后先和模板做一次相似度匹配,找到相似度较高的模板,再在模板的基础上让 LLM 去修改 where 条件

目前的问题有 2 个:

  1. 匹配到的模板不准确,比如我问一个 a 业务有关的问题,然后相似度匹配到了一个意思相近的 b 业务上,这个时候 LLM 就很难基于 b 业务的模板去生成正确的 sql ,有时候甚至语法上都会出问题。

  2. 老是漏条件,比如我已经指明了要查询『已解决』的记录,LLM 总是会漏掉这种查询条件,但是系统明明已经在组装提示词的时候把表结构给他了

2 条回复
fgwmlhdkkkw · 2026-08-08 10:32
#1

让 agent 分部生成。 1:让他根据需求列出需要的表 2:让他根据需求列出需要的列 3:让他生成 sql (这里甚至可以让他主动来拆分子查询) 4:使用 sql parse 验证语法正确和 1 ,2 的共识

这样依然不能保证正确,但是概率会提示一些。

lancevps · 2026-08-08 10:32
#2

记得以前的模型可以用提示词双写来提高准确率

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: WilliamColton
发布: 2026-08-08
点赞: 0
回复: 0