From 836ee5f3edae4af250410ba165a9bb8ad2075d40 Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Wed, 25 Oct 2023 09:55:57 +0800 Subject: [PATCH] (improvement)(chat) modify plugin pre condition check (#286) Co-authored-by: jolunoluo --- .../supersonic/chat/parser/plugin/PluginParser.java | 7 +++++++ .../plugin/embedding/EmbeddingBasedParser.java | 12 +----------- .../parser/plugin/function/FunctionBasedParser.java | 3 +-- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/PluginParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/PluginParser.java index 13c038812..6b130570a 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/PluginParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/PluginParser.java @@ -3,6 +3,7 @@ package com.tencent.supersonic.chat.parser.plugin; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.tencent.supersonic.chat.api.component.SemanticParser; +import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.ChatContext; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.api.pojo.SchemaElementMatch; @@ -29,6 +30,12 @@ public abstract class PluginParser implements SemanticParser { @Override public void parse(QueryContext queryContext, ChatContext chatContext) { + for (SemanticQuery semanticQuery : queryContext.getCandidateQueries()) { + if (queryContext.getRequest().getQueryText().length() <= semanticQuery.getParseInfo().getScore() + && (QueryManager.getPluginQueryModes().contains(semanticQuery.getQueryMode()))) { + return; + } + } if (!checkPreCondition(queryContext)) { return; } diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingBasedParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingBasedParser.java index 8605560d2..b6d6f8507 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingBasedParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/embedding/EmbeddingBasedParser.java @@ -1,7 +1,6 @@ package com.tencent.supersonic.chat.parser.plugin.embedding; import com.google.common.collect.Lists; -import com.tencent.supersonic.chat.api.component.SemanticQuery; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.parser.ParseMode; import com.tencent.supersonic.chat.parser.plugin.PluginParser; @@ -29,16 +28,7 @@ public class EmbeddingBasedParser extends PluginParser { return false; } List plugins = getPluginList(queryContext); - if (CollectionUtils.isEmpty(plugins)) { - return false; - } - List semanticQueries = queryContext.getCandidateQueries(); - for (SemanticQuery semanticQuery : semanticQueries) { - if (queryContext.getRequest().getQueryText().length() <= semanticQuery.getParseInfo().getScore()) { - return false; - } - } - return true; + return !CollectionUtils.isEmpty(plugins); } @Override diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionBasedParser.java b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionBasedParser.java index f921f85dd..24918cc26 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionBasedParser.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/parser/plugin/function/FunctionBasedParser.java @@ -3,7 +3,6 @@ package com.tencent.supersonic.chat.parser.plugin.function; import com.alibaba.fastjson.JSON; import com.tencent.supersonic.chat.api.pojo.QueryContext; import com.tencent.supersonic.chat.parser.ParseMode; -import com.tencent.supersonic.chat.parser.SatisfactionChecker; import com.tencent.supersonic.chat.parser.plugin.PluginParser; import com.tencent.supersonic.chat.plugin.Plugin; import com.tencent.supersonic.chat.plugin.PluginManager; @@ -38,7 +37,7 @@ public class FunctionBasedParser extends PluginParser { public boolean checkPreCondition(QueryContext queryContext) { FunctionCallConfig functionCallConfig = ContextUtils.getBean(FunctionCallConfig.class); String functionUrl = functionCallConfig.getUrl(); - if (StringUtils.isBlank(functionUrl) || SatisfactionChecker.check(queryContext)) { + if (StringUtils.isBlank(functionUrl)) { log.info("functionUrl:{}, skip function parser, queryText:{}", functionUrl, queryContext.getRequest().getQueryText()); return false;