2025-02-17 10:34:35 +08:00

91 lines
3.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# qwen 模型配置
# system role prompt
system = "你擅长编写 SQL 代码,请结合具体问题编写正确规范的 SQL 代码"
# prompt 模板及参数,在模板中可以使用 {question} {database.metadata} 以及 {params.xxx} 引用参数
prompt = """
### 数据库结构
{database.metadata}
- [table_sql]标记下的是数据库表的建表语句,它告诉我们数据库有哪些字段以及这些字段的类型。
- [field_requirement]标记下是编写SQL语句是对不同字段的要求模型输出SQL语句时应严格遵守这些要求。
### 问题
根据以上建表语句,生成一个 SQL 来回答如下问题: [QUESTION]{question}[/QUESTION]
### 步骤
1、结合建表语句[table_sql],分析该问题是否为一个指示了要查询某些数据库字段的 “明确提问”。如果该问题不是 “明确提问”,那么进行第二步,否则执行第三步。
2、如果输入的问题不是 “明确提问”,那么它就是一个 “困难提问”,你需要对它进行扩充,生成一个 “明确提问”。
3、结合建表语句根据 “明确提问” 生成一个 SQL 语句。
### 明确提问示例
生成的 “明确提问” 格式应尽可能规范。一个 “明确问题” 通常会尽可能齐全地写明待查询的中文字段名或其相近名称,示例如下:[EXAMPLE]{example}[/EXAMPLE]。
如果你由 “困难提问” 生成了 “明确提问”,那么输出中需要添加 “明确提问”,包含在```expanded```标记中。
### 输出要求
- 输出的字段名必须用中文描述。
- 输出的 SQL 语句必须能够通过 {database.product} 验证。
- 输出的 SQL 语句必须包含在 ```sql ``` 标记中。
- 输出的 SQL 语句不要添加注释。
- 输出的 SQL 语句使用反引号来引用中文字段名。
- 输出的 SQL 语句中包含的字段名必须和上述的[table_sql]中的字段名保持一致。
- 输出的 SQL 语句禁止使用别名。
- 输出的 SQL 语句在 where 从句中的条件判断中的字段名应和[table_sql]中的字段名保持一致。
### 输出格式
'''expanded
[EXPANDED]
'''
'''sql
[SQL]
'''
[ANSWER]
"""
# params.requirements = """
# - 生成的 “明确提问” 格式应尽可能规范。一个 “明确问题” 通常会尽可能齐全地写明待查询的中文字段名或其相近名称,示例如下:[EXAMPLE]{example}[/EXAMPLE]。
# - 如果你由 “困难提问” 生成了 “明确提问”,那么输出中需要添加 “明确提问”,包含在```expanded```标记中。
# """
params.example = """
示例1
输入签订日期在2022年合同名称中包含智慧城市合同金额在300万以上的合同有哪些列出合同名称合同金额。
输出:
'''sql
SELECT `合同名称`, `合同签订金额(人民币)` / 10000 AS 合同金额(万元)
FROM `contracts`
WHERE `签订日期` BETWEEN '2022-01-01' AND '2022-12-31'
AND `合同名称` LIKE '%智慧城市%'
AND `合同签订金额(人民币)` > 3000000;
'''
示例2
输入:所属分公司是七分公司,客户名称是中共广东省委办公厅的项目有哪些,列出所有信息。
输出:
'''sql
SELECT *
FROM contracts
WHERE
经办单位 LIKE '%七分公司%'
AND 客户名称 LIKE '%中共广东省委办公厅%';
'''
示例3
输入:业务拓展方式是联合拓展,所属分公司是二分公司,地点不在佛山市的项目一共有多少个。
输出:
'''sql
SELECT COUNT(*)
FROM contracts
WHERE
`业务拓展方式` = '联合拓展'
AND `所属分公司` LIKE '%二分公司%'
AND `地点` NOT LIKE '佛山%'
'''
"""