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

发布于

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

目前的问题有 2 个:

1. 匹配到的模板不准确,比如我问一个 a 业务有关的问题,然后相似度匹配到了一个意思相近的 b 业务上,这个时候 LLM 就很难基于 b 业务的模板去生成正确的 sql,有时候甚至语法上都会出问题。
2. 老是漏条件,比如我已经指明了要查询『已解决』的记录,LLM 总是会漏掉这种查询条件,但是系统明明已经在组装提示词的时候把表结构给他了。

---

原文链接:[点击查看](https://www.v2ex.com/t/1232853)

评论(2)

建议试试用 Agent 拆解步骤来逐步生成。比如:1. 先让模型根据需求挑出需要的表;2. 让它列出具体要用到的字段;3. 再让它写 SQL,复杂逻辑还能让它自己拆子查询;4. 最后用 sql parse 之类的工具校验一下语法,顺便检查下跟前面两步的共识对不对得上。这套组合拳打下来虽然不能百分百保证全对,但准确率确实能提高不少。

· 0 个赞

我记得以前玩老模型的时候,可以用提示词双写的办法来提高生成的准确率,楼主可以试试。

· 0 个赞

0.040196s