From 44d1cde34f632206bfcba7f6d068e4c42138a344 Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Mon, 30 Sep 2024 19:09:06 +0800 Subject: [PATCH] [improvement][corrector] Abstract the RuleSqlCorrector component. (#1748) --- .../common/calcite/SqlWithMergerTest.java | 1 - .../chat/corrector/RuleSqlCorrector.java | 27 +++++++++++++++++++ .../main/resources/META-INF/spring.factories | 4 +-- .../main/resources/META-INF/spring.factories | 4 +-- 4 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/RuleSqlCorrector.java diff --git a/common/src/test/java/com/tencent/supersonic/common/calcite/SqlWithMergerTest.java b/common/src/test/java/com/tencent/supersonic/common/calcite/SqlWithMergerTest.java index 81cd5312c..81206c8fb 100644 --- a/common/src/test/java/com/tencent/supersonic/common/calcite/SqlWithMergerTest.java +++ b/common/src/test/java/com/tencent/supersonic/common/calcite/SqlWithMergerTest.java @@ -3,7 +3,6 @@ package com.tencent.supersonic.common.calcite; import com.tencent.supersonic.common.pojo.enums.EngineType; import lombok.extern.slf4j.Slf4j; import org.apache.calcite.sql.parser.SqlParseException; -import org.junit.Assert; import org.junit.jupiter.api.Test; import java.util.Collections; diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/RuleSqlCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/RuleSqlCorrector.java new file mode 100644 index 000000000..e090265b5 --- /dev/null +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/RuleSqlCorrector.java @@ -0,0 +1,27 @@ +package com.tencent.supersonic.headless.chat.corrector; + +import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo; +import com.tencent.supersonic.headless.chat.ChatQueryContext; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +public class RuleSqlCorrector extends BaseSemanticCorrector { + private List correctors; + + public RuleSqlCorrector() { + correctors = new ArrayList<>(); + correctors.add(new SchemaCorrector()); + correctors.add(new TimeCorrector()); + correctors.add(new GrammarCorrector()); + } + + @Override + public void doCorrect(ChatQueryContext chatQueryContext, SemanticParseInfo semanticParseInfo) { + for (BaseSemanticCorrector corrector : correctors) { + corrector.correct(chatQueryContext, semanticParseInfo); + } + } +} diff --git a/launchers/headless/src/main/resources/META-INF/spring.factories b/launchers/headless/src/main/resources/META-INF/spring.factories index 689842a24..5309f5eab 100644 --- a/launchers/headless/src/main/resources/META-INF/spring.factories +++ b/launchers/headless/src/main/resources/META-INF/spring.factories @@ -13,9 +13,7 @@ com.tencent.supersonic.headless.chat.parser.SemanticParser=\ com.tencent.supersonic.headless.chat.parser.QueryTypeParser com.tencent.supersonic.headless.chat.corrector.SemanticCorrector=\ - com.tencent.supersonic.headless.chat.corrector.SchemaCorrector, \ - com.tencent.supersonic.headless.chat.corrector.TimeCorrector, \ - com.tencent.supersonic.headless.chat.corrector.GrammarCorrector + com.tencent.supersonic.headless.chat.corrector.RuleSqlCorrector com.tencent.supersonic.headless.chat.knowledge.file.FileHandler=\ com.tencent.supersonic.headless.chat.knowledge.file.FileHandlerImpl diff --git a/launchers/standalone/src/main/resources/META-INF/spring.factories b/launchers/standalone/src/main/resources/META-INF/spring.factories index aa8efc6bf..ec6c3db30 100644 --- a/launchers/standalone/src/main/resources/META-INF/spring.factories +++ b/launchers/standalone/src/main/resources/META-INF/spring.factories @@ -13,9 +13,7 @@ com.tencent.supersonic.headless.chat.parser.SemanticParser=\ com.tencent.supersonic.headless.chat.parser.QueryTypeParser com.tencent.supersonic.headless.chat.corrector.SemanticCorrector=\ - com.tencent.supersonic.headless.chat.corrector.SchemaCorrector, \ - com.tencent.supersonic.headless.chat.corrector.TimeCorrector, \ - com.tencent.supersonic.headless.chat.corrector.GrammarCorrector + com.tencent.supersonic.headless.chat.corrector.RuleSqlCorrector com.tencent.supersonic.headless.chat.knowledge.file.FileHandler=\ com.tencent.supersonic.headless.chat.knowledge.file.FileHandlerImpl