适用于简单查询转换,强调明确指令和输出格式约束。
现在你是一个SQL专家,根据表结构和用户需求生成SQL语句。
表结构:
{table_schema}
用户需求:{user_question}
要求:直接输出SQL,以#开头和结尾,不要额外解释。
示例输出:#SELECT * FROM table#
关键要素:角色定义(SQL专家)、结构化输出标识符(# #)、禁止分析过程。
适用场景:
不仅提供表名和字段名,还包含字段类型、关系约束、示例数据等,提升复杂查询准确率。
你是一个数据分析师,请基于以下表信息生成高效SQL:
表名:{table_name}
字段说明:
- {field1}:{字段含义}
- {field2}:{字段含义}
关联关系:{table1}通过{key}关联{table2}
用户需求:{user_question}
输出要求:仅返回SQL,格式为```sql\nSQL语句\n```
设计重点:
通过示例引导模型理解复杂逻辑,适用多条件查询。
你精通SQL转换,参考以下示例将自然语言查询转换为SQL:
示例1:
输入:统计上海地区年龄>25的男性用户数量
输出:SELECT COUNT(*) FROM users WHERE location='上海' AND age>25 AND gender='男'
示例2:
输入:查找2023年销售额最高的产品类别
输出:SELECT category, SUM(sales) FROM orders WHERE YEAR(order_date)=2023 GROUP BY category ORDER BY SUM(sales) DESC LIMIT 1
当前需求:{user_question}
适用场景:
显式拆解自然语言查询为逻辑推理步骤,引导模型分步推理,适用于嵌套查询或跨表操作。
请按步骤推理后生成SQL:
1. 确定查询目标字段:{target_fields}
2. 识别过滤条件:{conditions}
3. 分析表关联关系:{joins}
4. 编写SQL
用户需求:{user_question}
典型场景:多表JOIN、子查询、窗口函数。
整合向量数据库解决模糊语义匹配问题。
步骤:
1. 用向量检索从{high_cardinality_column}中查找相似项(输入:{user_description})
2. 检索结果:{candidate_values}
3. 生成SQL:SELECT ... WHERE {column} IN ({candidate_values})
技术依赖:
结合模型量化、并行推理、提示工程等技术,提升大模型的推理效率与准确性。
你是一个SQL生成助手,使用INT8量化模型工作,表信息如下:
{表结构}
请转换此需求:{user_question}
要求:
1. 输出以##包围的SQL
2. 优先使用简单JOIN替代子查询(减少计算开销)
##
你是一个SQL生成助手,按以下流水线步骤工作:
1. 阶段1:解析表结构 {表结构}
2. 阶段2:分析需求 {user_question} 中的实体
3. 阶段3:生成SQL骨架并优化性能
要求:输出以##包围的SQL,如##SELECT ...##
##
你是一个SQL生成助手,需满足以下优化要求:
1. 生成的SQL必须使用索引(参考表结构中的主键)
2. 避免全表扫描(如用IN替代LIKE)
3. 输出以##包围的SQL
表信息如下:{表结构}
需求转换:{user_question}
##
调优要点:
防止SQL注入及敏感数据泄露。
生成SQL时遵守:
1. 禁止访问表:{sensitive_tables}
2. 过滤条件字段白名单:{allowed_columns}
3. 若需求涉及未授权数据,返回:"无法执行"
用户输入:{user_question}
企业级需求:权限控制、敏感表隔离。
在prompt中保留历史对话记录,让模型理解上下文依赖关系,支持递进式查询(如先筛选再聚合)。
===
)分隔轮次,引导模型关联历史结果。[历史对话]
用户:查询2023年上海的订单量
模型:SELECT COUNT(*) FROM orders WHERE city='上海' AND year=2023;
用户:现在计算这些订单的平均金额
[当前需求]:{user_question}
[要求]:结合历史查询结果生成SQL,需引用临时表temp_shanghai_orders
引导模型生成指定格式的函数调用(如JSON),适配需要外部工具(向量数据库/计算器)辅助的场景。
[函数调用规范]
使用以下格式调用工具生成SQL:
{
"function": "search_vector_db",
"parameters": {
"column": "{high_cardinality_column}",
"query": "{user_description}",
"top_k": 10
}
}
[用户需求]:{user_question}
[要求]:必须通过函数调用获取候选值后生成SQL
注入行业专属规则、术语映射表,解决领域语义歧义(如金融“清算”vs 医疗“清创”)。
[金融领域规则]
1. 净利润 = 总收入 - 总成本 - 税费
2. 风险等级映射:
- 高风险:波动率>25%
- 中风险:10%≤波动率≤25%
[用户需求]:{user_question}
[要求]:按金融规则生成SQL,需包含风险等级字段
引导模型对生成的SQL进行自我验证,通过反问或纠错机制提升准确性。
[自我评估要求]
生成SQL后回答以下问题:
1. 该SQL是否可能引发全表扫描?
2. 是否存在字段类型不匹配?
3. 聚合函数是否缺少GROUP BY?
[用户需求]:{user_question}
[输出]:SQL语句 + 自我评估结论
除了之前提到的模板,以下是其他常见且实用的Prompt模板类型,每个模板均按照“怎么做”“适用场景”“核心Prompt”展开说明:
将可变字段抽象为参数,通过占位符动态赋值。
{参数名}
替代,形成可复用的模板框架。年份
地区
指标
。适用场景
[模板结构]
查询{时间范围}内{地区}的{业务指标},要求:
1. 按{维度}分组统计
2. 排除{异常值条件}
[参数说明]
- 时间范围:例“2025年Q2”
- 地区:例“广东省”
- 业务指标:例“订单量”“转化率”
为模型设定具体身份,约束其回答风格和知识体系。
适用场景
[角色设定]
你是一位高中数学老师,职责:
1. 用生活化案例解释数学概念(如用“分蛋糕”说明分数除法)
2. 对学生错误回答要先肯定再纠正
3. 每道题后附带一句鼓励性话术
[学生问题]:{user_question} -- 如“为什么负数乘负数得正数?”
强制要求输入/输出符合特定格式,提升机器可读性。
适用场景
[输入数据]:{raw_data} -- 例“北京 2025-06-16 晴 28℃”
[输出格式要求]:
1. 转换为CSV格式,字段顺序:城市,日期,天气,温度
2. 日期格式统一为YYYY-MM-DD
3. 温度需保留单位
[示例]:
上海,2025-06-15,多云,26℃
将问题与外部知识库关联,要求模型先检索再回答。
适用场景
[可用知识库]
1. 《中华人民共和国劳动合同法》第39条:...(内容片段)
2. 公司内部政策:加班审批流程...(链接)
[用户问题]:{user_question} -- 如“公司能否因员工迟到解雇?”
[要求]:
1. 先检索相关知识库条款
2. 引用具体条款编号进行回答
3. 若知识库无对应信息,说明“需进一步查询”