From 38af6e3a2862144616fbbfb82af680574c528eec Mon Sep 17 00:00:00 2001 From: QJ_wonder <38885395+BigdataQIJI@users.noreply.github.com> Date: Tue, 27 May 2025 13:34:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?(fix)(chat)=20=E4=BF=AE=E5=A4=8D=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E8=B0=83=E7=94=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复插件调用问题,将原有的Json解析替换成fastjson的json解析,并按String解析返回体,否则会报:Error while extracting response for type [class java.lang.Object] and content type [application/xml;charset=UTF-8] --- .../chat/server/plugin/build/webservice/WebServiceQuery.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java index efefce08d..36f7263b8 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java @@ -88,10 +88,10 @@ public class WebServiceQuery extends PluginSemanticQuery { restTemplate = ContextUtils.getBean(RestTemplate.class); try { responseEntity = - restTemplate.exchange(requestUrl, HttpMethod.POST, entity, Object.class); + restTemplate.exchange(requestUrl, HttpMethod.POST, entity, String.class); objectResponse = responseEntity.getBody(); log.info("objectResponse:{}", objectResponse); - Map response = JsonUtil.objectToMap(objectResponse); + Map response = Json.parseObject(objectResponse.toString()); webServiceResponse.setResult(response); } catch (Exception e) { log.info("Exception:{}", e.getMessage()); From c8f690c1c2a7793ab3c0738c2868ca937c938ebc Mon Sep 17 00:00:00 2001 From: QJ_wonder <38885395+BigdataQIJI@users.noreply.github.com> Date: Tue, 27 May 2025 13:39:48 +0800 Subject: [PATCH 2/5] =?UTF-8?q?(fix)(chat)=20=E4=BF=AE=E6=94=B9=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=98=AF=E5=90=A6=E9=9C=80=E8=A6=81NL2SQL=E7=9A=84?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改判断是否需要NL2SQL的条件判断,如果respone里已经有返回体,则不需要NL2SQL的执行,直接返回。避免插件返回体被NL2SQL返回体覆盖的问题 --- .../com/tencent/supersonic/chat/server/pojo/ParseContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java index 5e97c83d2..d7e11d0e4 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/pojo/ParseContext.java @@ -19,7 +19,7 @@ public class ParseContext { } public boolean enableNL2SQL() { - return Objects.nonNull(agent) && agent.containsDatasetTool(); + return Objects.nonNull(agent) && agent.containsDatasetTool()&&response.getSelectedParses().size() == 0; } public boolean enableLLM() { From d275a145d550b755d95c9cf133880911b827f9b7 Mon Sep 17 00:00:00 2001 From: QJ_wonder <38885395+BigdataQIJI@users.noreply.github.com> Date: Tue, 27 May 2025 14:07:32 +0800 Subject: [PATCH 3/5] Update WebServiceQuery.java --- .../chat/server/plugin/build/webservice/WebServiceQuery.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java index 36f7263b8..91e4a182a 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/plugin/build/webservice/WebServiceQuery.java @@ -91,7 +91,7 @@ public class WebServiceQuery extends PluginSemanticQuery { restTemplate.exchange(requestUrl, HttpMethod.POST, entity, String.class); objectResponse = responseEntity.getBody(); log.info("objectResponse:{}", objectResponse); - Map response = Json.parseObject(objectResponse.toString()); + Map response = JSON.parseObject(objectResponse.toString()); webServiceResponse.setResult(response); } catch (Exception e) { log.info("Exception:{}", e.getMessage()); From 449fdf180f90f3a2447d920740b13d7e3c861ec3 Mon Sep 17 00:00:00 2001 From: QJ_wonder <38885395+BigdataQIJI@users.noreply.github.com> Date: Tue, 27 May 2025 14:42:34 +0800 Subject: [PATCH 4/5] =?UTF-8?q?(fix)(chat)=E5=A4=9A=E4=B8=AA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E4=B9=9F=E5=8F=AA=E4=BF=9D=E7=95=99=E5=8F=AC?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E7=AC=AC=E4=B8=80=E4=B8=AA=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 这里的多数据集其实对召回的结果没有影响,取第一个就好了 --- .../tencent/supersonic/chat/server/parser/NL2PluginParser.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java index 026c33714..be989e101 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java @@ -22,6 +22,9 @@ public class NL2PluginParser implements ChatQueryParser { public void parse(ParseContext parseContext) { pluginRecognizers.forEach(pluginRecognizer -> { pluginRecognizer.recognize(parseContext); + if (parseContext.getResponse().getSelectedParses().size()>=2){ + parseContext.getResponse().setSelectedParses(parseContext.getResponse().getSelectedParses().subList(0, 1)); + } log.info("{} recallResult:{}", pluginRecognizer.getClass().getSimpleName(), JsonUtil.toString(parseContext.getResponse())); }); From fa65b6eff7c1f26ffb471f47a15a8cb2037f7de8 Mon Sep 17 00:00:00 2001 From: QJ_wonder <38885395+BigdataQIJI@users.noreply.github.com> Date: Wed, 28 May 2025 15:47:58 +0800 Subject: [PATCH 5/5] =?UTF-8?q?Update=20NL2PluginParser.java=20=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E5=A4=9A=E6=95=B0=E6=8D=AE=E9=9B=86=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tencent/supersonic/chat/server/parser/NL2PluginParser.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java index be989e101..026c33714 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/parser/NL2PluginParser.java @@ -22,9 +22,6 @@ public class NL2PluginParser implements ChatQueryParser { public void parse(ParseContext parseContext) { pluginRecognizers.forEach(pluginRecognizer -> { pluginRecognizer.recognize(parseContext); - if (parseContext.getResponse().getSelectedParses().size()>=2){ - parseContext.getResponse().setSelectedParses(parseContext.getResponse().getSelectedParses().subList(0, 1)); - } log.info("{} recallResult:{}", pluginRecognizer.getClass().getSimpleName(), JsonUtil.toString(parseContext.getResponse())); });