WilliamColton
V2EX  ›  问与答

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

  •  
  •   WilliamColton · 2h 21m ago · 353 views

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

    目前的问题有 2 个:

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

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

    3 replies    2026-08-08 12:19:33 +08:00
    fgwmlhdkkkw
        1
    fgwmlhdkkkw  
       1h 56m ago
    让 agent 分部生成。
    1:让他根据需求列出需要的表
    2:让他根据需求列出需要的列
    3:让他生成 sql (这里甚至可以让他主动来拆分子查询)
    4:使用 sql parse 验证语法正确和 1 ,2 的共识

    这样依然不能保证正确,但是概率会提示一些。
    lancevps
        2
    lancevps  
       1h 54m ago
    记得以前的模型可以用提示词双写来提高准确率
    novojo
        3
    novojo  
       5 mins ago
    用 DBVibe ,有生成 SQL 的工具,Agent 会调用 skills ,自动连接到数据库获取模式,表结构,字段信息进行分析,能生成准确的 SQL
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2791 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:25 · PVG 12:25 · LAX 21:25 · JFK 00:25
    ♥ Do have faith in what you're doing.