Skip to content

Commit 3cd66d0

Browse files
Revert "fix: resolve issue 110 sql syntax compatibility" (spring-ai-alibaba#189)
1 parent 8d37360 commit 3cd66d0

File tree

4 files changed

+24
-122
lines changed

4 files changed

+24
-122
lines changed

spring-ai-alibaba-data-agent-chat/src/main/java/com/alibaba/cloud/ai/dataagent/prompt/PromptHelper.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.alibaba.cloud.ai.dataagent.dto.schema.TableDTO;
2323
import com.alibaba.cloud.ai.dataagent.entity.SemanticModel;
2424
import com.alibaba.cloud.ai.dataagent.entity.UserPromptConfig;
25-
import com.alibaba.cloud.ai.dataagent.util.DatabaseDialectHelper;
2625
import org.apache.commons.collections.CollectionUtils;
2726
import org.apache.commons.lang3.BooleanUtils;
2827
import org.apache.commons.lang3.StringUtils;
@@ -208,13 +207,11 @@ public static List<String> buildMixSqlGeneratorPrompt(String question, DbConfig
208207
String evidence) {
209208
String schemaInfo = buildMixMacSqlDbPrompt(schemaDTO, true);
210209
String dialect = BizDataSourceTypeEnum.fromTypeName(dbConfig.getDialectType()).getDialect();
211-
String dialectGuidelines = DatabaseDialectHelper.getDialectSpecificGuidelines(dbConfig.getDialectType());
212210
Map<String, Object> params = new HashMap<>();
213211
params.put("dialect", dialect);
214212
params.put("question", question);
215213
params.put("schema_info", schemaInfo);
216214
params.put("evidence", evidence);
217-
params.put("dialect_guidelines", dialectGuidelines);
218215
List<String> prompts = new ArrayList<>();
219216
prompts.add(PromptConstant.getMixSqlGeneratorSystemPromptTemplate().render(params));
220217
prompts.add(PromptConstant.getMixSqlGeneratorPromptTemplate().render(params));
@@ -271,12 +268,9 @@ public static String buildSqlErrorFixerPrompt(String question, DbConfig dbConfig
271268
String evidence, String errorSql, String errorMessage) {
272269
String schemaInfo = buildMixMacSqlDbPrompt(schemaDTO, true);
273270
String dialect = BizDataSourceTypeEnum.fromTypeName(dbConfig.getDialectType()).getDialect();
274-
// Generate dialect-specific guidelines
275-
String dialectGuidelines = DatabaseDialectHelper.getDialectSpecificGuidelines(dbConfig.getDialectType());
276271

277272
Map<String, Object> params = new HashMap<>();
278273
params.put("dialect", dialect);
279-
params.put("dialect_guidelines", dialectGuidelines);
280274
params.put("question", question);
281275
params.put("schema_info", schemaInfo);
282276
params.put("evidence", evidence);

spring-ai-alibaba-data-agent-chat/src/main/java/com/alibaba/cloud/ai/dataagent/util/DatabaseDialectHelper.java

Lines changed: 0 additions & 78 deletions
This file was deleted.
Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
11
现在你是一个{dialect}生成师,需要阅读一个客户的问题,参考的数据库schema,根据参考信息的提示,生成一句可执行的SQL。
2+
注意:
3+
1、不要select多余的列。
4+
2、生成的SQL用```sql 和```包围起来。
5+
3、不要在SQL语句中加入注释!!!
26

3-
**重要:请严格使用{dialect}的标准语法和函数!不要使用其他数据库的语法!**
7+
【数据库schema】
8+
{schema_info}
49

5-
{dialect_guidelines}
6-
7-
注意:
8-
1、不要select多余的列。
9-
2、生成的SQL用```sql 和```包围起来。
10-
3、不要在SQL语句中加入注释!!!
11-
4、必须严格遵守上述{dialect}特定语法要求!
12-
13-
【数据库schema】
14-
{schema_info}
15-
16-
【参考信息】
17-
{evidence}
10+
【参考信息】
11+
{evidence}
Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
你是一个资深的{dialect}数据库专家和SQL修复专家。现在需要你分析并修复一个有问题的SQL语句。
22

3-
**重要:请严格使用{dialect}的标准语法和函数!不要使用其他数据库的语法!**
4-
5-
{dialect_guidelines}
6-
73
【原始需求】
84
{question}
95

@@ -16,36 +12,32 @@
1612
【问题SQL】
1713
```sql
1814
{error_sql}
15+
```
1916

2017
【错误信息】
2118
{error_message}
2219

2320
【修复指导原则】
2421
1. 仔细分析错误类型:语法错误、字段不存在、表不存在、数据类型错误、权限问题等
25-
2. 特别注意:检查是否使用了{dialect}不支持的函数!常见问题包括:
26-
- 在MySQL中使用了SQLite的strftime()或PostgreSQL的TO_CHAR()
27-
- 在PostgreSQL中使用了MySQL的DATE_FORMAT()
28-
- 字符串拼接使用了错误的语法(||、CONCAT混用)
29-
- 日期计算使用了不兼容的语法
30-
3. 基于提供的schema信息,确保所有表名和字段名正确
31-
4. 检查JOIN条件、WHERE条件、GROUP BY、ORDER BY等语法
32-
5. 确保数据类型转换正确
33-
6. 优化查询性能,避免全表扫描
34-
7. 保持SQL的语义与原始需求一致
35-
8. 严格遵守上述{dialect}特定语法要求
22+
2. 基于提供的schema信息,确保所有表名和字段名正确
23+
3. 检查JOIN条件、WHERE条件、GROUP BY、ORDER BY等语法
24+
4. 确保数据类型转换正确
25+
5. 优化查询性能,避免全表扫描
26+
6. 保持SQL的语义与原始需求一致
3627

3728
【修复步骤】
38-
1. 错误分析:首先分析错误的具体原因,特别关注是否是函数不兼容导致的
39-
2. 函数检查:对照上述{dialect}语法要求,检查是否使用了错误的函数
40-
3. Schema验证:验证表名、字段名是否存在于提供的schema中
41-
4. 语法检查:检查SQL语法是否符合{dialect}规范
42-
5. 逻辑验证:确保修复后的SQL逻辑正确
43-
6. 性能考虑:确保查询效率
29+
1. 错误分析:首先分析错误的具体原因
30+
2. Schema验证:验证表名、字段名是否存在于提供的schema中
31+
3. 语法检查:检查SQL语法是否符合{dialect}规范
32+
4. 逻辑验证:确保修复后的SQL逻辑正确
33+
5. 性能考虑:确保查询效率
4434

4535
请按照以上步骤进行分析,然后提供修复后的SQL。
4636

4737
【输出格式】
48-
错误分析:[详细说明错误原因,特别指出是否使用了不兼容的函数]
49-
修复方案:[说明修复思路,如需替换函数请明确说明替换的函数]
38+
错误分析:[详细说明错误原因]
39+
修复方案:[说明修复思路]
5040
修复后SQL:
51-
[修复后的完整SQL语句,确保使用{dialect}标准语法]
41+
```sql
42+
[修复后的完整SQL语句]
43+
```

0 commit comments

Comments
 (0)