From 1b6277e53f716903e3bd7320909c14b52b80268b Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Wed, 4 Sep 2024 22:46:38 +0800 Subject: [PATCH] (improvement)(chat) Fixed the NullPointerException issue in DimensionRecommendProcessor (#1629) --- .../processor/execute/DimensionRecommendProcessor.java | 9 +++++++-- .../chat/parser/llm/OnePassSCSqlGenStrategy.java | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java index 3792da48b..f30a76e2b 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java @@ -34,8 +34,13 @@ public class DimensionRecommendProcessor implements ExecuteResultProcessor { || CollectionUtils.isEmpty(semanticParseInfo.getMetrics())) { return; } - SchemaElement element = semanticParseInfo.getMetrics().iterator().next(); - List dimensionRecommended = getDimensions(element.getId(), element.getDataSetId()); + Long dataSetId = semanticParseInfo.getDataSetId(); + Optional firstMetric = semanticParseInfo.getMetrics().stream().findFirst(); + if (!firstMetric.isPresent()) { + return; + } + SchemaElement element = firstMetric.get(); + List dimensionRecommended = getDimensions(element.getId(), dataSetId); queryResult.setRecommendedDimensions(dimensionRecommended); } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/OnePassSCSqlGenStrategy.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/OnePassSCSqlGenStrategy.java index 8f92c358e..22ac33a87 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/OnePassSCSqlGenStrategy.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/OnePassSCSqlGenStrategy.java @@ -101,11 +101,11 @@ public class OnePassSCSqlGenStrategy extends SqlGenStrategy { // use custom prompt template if provided. PromptConfig promptConfig = llmReq.getPromptConfig(); - String prompTemplate = INSTRUCTION; + String promptTemplate = INSTRUCTION; if (promptConfig != null && StringUtils.isNotBlank(promptConfig.getPromptTemplate())) { - prompTemplate = promptConfig.getPromptTemplate(); + promptTemplate = promptConfig.getPromptTemplate(); } - return PromptTemplate.from(prompTemplate).apply(variable); + return PromptTemplate.from(promptTemplate).apply(variable); } @Override