From 329756056cf8a2cd7c3890e8498e4011e33eddde Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Sat, 11 Jan 2025 09:25:27 +0800 Subject: [PATCH] [improvement][headless]Opt code format. --- .../headless/chat/corrector/LLMSqlCorrector.java | 6 +++--- .../headless/chat/parser/llm/SqlGenStrategy.java | 2 +- .../core/translator/parser/SqlQueryParser.java | 3 ++- .../headless/server/utils/QueryUtils.java | 15 +++++---------- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/LLMSqlCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/LLMSqlCorrector.java index 9d5d0e063..1c5fadd8e 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/LLMSqlCorrector.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/LLMSqlCorrector.java @@ -32,8 +32,7 @@ public class LLMSqlCorrector extends BaseSemanticCorrector { private static final String INSTRUCTION = "" + "#Role: You are a senior data engineer experienced in writing SQL." + "\n#Task: Your will be provided with a user question and the SQL written by a junior engineer," - + "please take a review and help correct it if necessary." - + "\n#Rules: " + + "please take a review and help correct it if necessary." + "\n#Rules: " + "1.ALWAYS specify time range using `>`,`<`,`>=`,`<=` operator." + "2.DO NOT calculate date range using functions." + "3.SQL columns and values must be mentioned in the `#Schema`." @@ -77,7 +76,8 @@ public class LLMSqlCorrector extends BaseSemanticCorrector { semanticParseInfo, chatApp.getPrompt(), exemplar); SemanticSql s2Sql = extractor.generateSemanticSql(prompt.toUserMessage().singleText()); keyPipelineLog.info("LLMSqlCorrector modelReq:\n{} \nmodelResp:\n{}", prompt.text(), s2Sql); - if ("NEGATIVE".equalsIgnoreCase(s2Sql.getOpinion()) && StringUtils.isNotBlank(s2Sql.getSql())) { + if ("NEGATIVE".equalsIgnoreCase(s2Sql.getOpinion()) + && StringUtils.isNotBlank(s2Sql.getSql())) { semanticParseInfo.getSqlInfo().setCorrectedS2SQL(s2Sql.getSql()); } } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/SqlGenStrategy.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/SqlGenStrategy.java index 62164e0f3..a14694d43 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/SqlGenStrategy.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/SqlGenStrategy.java @@ -23,5 +23,5 @@ public abstract class SqlGenStrategy implements InitializingBean { return ModelProvider.getChatModel(modelConfig); } - abstract LLMResp generate(LLMReq llmReq); + public abstract LLMResp generate(LLMReq llmReq); } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/SqlQueryParser.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/SqlQueryParser.java index 859f62dca..76df6f42e 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/SqlQueryParser.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/SqlQueryParser.java @@ -53,7 +53,8 @@ public class SqlQueryParser implements QueryParser { List semanticFields = Lists.newArrayList(); ontologyQuery.getMetrics().forEach(m -> semanticFields.add(m.getName())); ontologyQuery.getDimensions().forEach(d -> semanticFields.add(d.getName())); - String errMsg = String.format("Querying columns[%s] not matched with semantic fields[%s].", + String errMsg = + String.format("Querying columns[%s] not matched with semantic fields[%s].", queryFields, semanticFields); queryStatement.setErrMsg(errMsg); queryStatement.setStatus(QueryState.INVALID); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java index 04369b922..a5115e909 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryUtils.java @@ -119,16 +119,11 @@ public class QueryUtils { if (StringUtils.isBlank(type)) { return false; } - return type.equalsIgnoreCase("int") - || type.equalsIgnoreCase("bigint") - || type.equalsIgnoreCase("tinyint") - || type.equalsIgnoreCase("smallint") - || type.equalsIgnoreCase("float") - || type.equalsIgnoreCase("double") - || type.equalsIgnoreCase("real") - || type.equalsIgnoreCase("numeric") - || type.toLowerCase().startsWith("decimal") - || type.toLowerCase().startsWith("uint") + return type.equalsIgnoreCase("int") || type.equalsIgnoreCase("bigint") + || type.equalsIgnoreCase("tinyint") || type.equalsIgnoreCase("smallint") + || type.equalsIgnoreCase("float") || type.equalsIgnoreCase("double") + || type.equalsIgnoreCase("real") || type.equalsIgnoreCase("numeric") + || type.toLowerCase().startsWith("decimal") || type.toLowerCase().startsWith("uint") || type.toLowerCase().startsWith("int"); }