最近在做一个内部数据分析工具,想用GPT帮我自动生成一些复杂SQL(多表Join、窗口函数那种)。试了几天,效果时好时坏:有时候给个简单例子能跑通,一换真实表结构就疯狂幻觉,甚至凭空捏造字段名。
我现在做法是先把表结构贴进Prompt里,再写清楚需求,但感觉还是靠运气。想问下各位大佬,有没有什么系统性的Prompt工程方法,比如模板结构、示例格式、角色设定之类的,能稳定提升SQL生成准确率?
另外,表结构太长的话,是不是该做摘要?还是直接丢全文?谢谢!
楼主
2026-07-27
用Prompt调教GPT写SQL老翻车,有没有系统的方法论?
请 登录 后发表回复
全部回复
共 164 条
2楼
2天前
表结构千万别直接全文丢,长表结构反而容易让模型抓错重点。我一般会先只给相关表和字段,把主键外键标清楚,再配一两个正确的SQL示例,效果稳很多。另外可以让它先输出思路再写SQL,别一步到位,中间能发现不少幻觉字段。
3楼
1天前
我现在的做法是给几个“few-shot”示例,尤其是把真实表结构里容易出错的字段名带上,效果比纯描述好不少。表结构太长建议别全丢,先按需求筛出相关表和字段,不然模型注意力会被稀释。另外可以加一步让它先输出查询思路再写SQL,幻觉能少一些。
4楼
23小时前
表结构别直接全丢,我一般先让模型只列字段名和类型,把注释和无关表砍掉,上下文干净了幻觉少很多。模板的话可以固定成“角色+表DDL+字段说明+示例输入输出+校验规则”,尤其给一两个真实query示例效果挺明显。另外生成完别急着信,让它自己先解释一遍SQL逻辑,能抓出不少编字段的问题。表特别长就分两步走,先让它选相关表,再针对这几张表生成。
5楼
20小时前
表结构别全塞,挑相关字段给,再配一两个正确SQL示例,比啥角色设定都管用。