From c24ba59bb5fc09ee4f993e8d54fe84b3b0a53492 Mon Sep 17 00:00:00 2001 From: feelshana <151412598@qq.com> Date: Thu, 29 May 2025 16:57:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?(fix)(common)=E8=AE=B0=E5=BF=86=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=AD=E6=9B=B4=E6=96=B0sql=EF=BC=8C=E5=90=AF?= =?UTF-8?q?=E7=94=A8->=E5=BE=85=E5=AE=9A=EF=BC=8C=E5=BE=85=E5=AE=9A->?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E5=90=91=E9=87=8F=E5=BA=93=E4=B8=8D=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/server/service/impl/MemoryServiceImpl.java | 10 +++++++--- .../common/service/impl/EmbeddingServiceImpl.java | 9 ++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/MemoryServiceImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/MemoryServiceImpl.java index b28e6336a..1cdbcd6f3 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/MemoryServiceImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/MemoryServiceImpl.java @@ -65,12 +65,16 @@ public class MemoryServiceImpl implements MemoryService, CommandLineRunner { ChatMemoryDO chatMemoryDO = chatMemoryRepository.getMemory(chatMemoryUpdateReq.getId()); boolean hadEnabled = MemoryStatus.ENABLED.toString().equals(chatMemoryDO.getStatus().trim()); - if (MemoryStatus.ENABLED.equals(chatMemoryUpdateReq.getStatus()) && !hadEnabled) { + + if (MemoryStatus.ENABLED.equals(chatMemoryUpdateReq.getStatus())) { + // Update the latest SQL/Schema to vector DB once memory is enabled + chatMemoryDO.setS2sql(chatMemoryUpdateReq.getS2sql()); + chatMemoryDO.setDbSchema(chatMemoryUpdateReq.getDbSchema()); enableMemory(chatMemoryDO); - } else if (MemoryStatus.DISABLED.equals(chatMemoryUpdateReq.getStatus()) && hadEnabled) { + } else if ((MemoryStatus.DISABLED.equals(chatMemoryUpdateReq.getStatus())||MemoryStatus.PENDING.equals(chatMemoryUpdateReq.getStatus())) && hadEnabled) { + // Remove from vector DB when transitioning: launched→disabled OR enabled→pending disableMemory(chatMemoryDO); } - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(ChatMemoryDO::getId, chatMemoryDO.getId()); if (Objects.nonNull(chatMemoryUpdateReq.getStatus())) { diff --git a/common/src/main/java/com/tencent/supersonic/common/service/impl/EmbeddingServiceImpl.java b/common/src/main/java/com/tencent/supersonic/common/service/impl/EmbeddingServiceImpl.java index 9bd6563aa..b5694e26a 100644 --- a/common/src/main/java/com/tencent/supersonic/common/service/impl/EmbeddingServiceImpl.java +++ b/common/src/main/java/com/tencent/supersonic/common/service/impl/EmbeddingServiceImpl.java @@ -49,11 +49,10 @@ public class EmbeddingServiceImpl implements EmbeddingService { try { EmbeddingModel embeddingModel = ModelProvider.getEmbeddingModel(); Embedding embedding = embeddingModel.embed(question).content(); - boolean existSegment = - existSegment(collectionName, embeddingStore, query, embedding); - if (existSegment) { - continue; - } + MetadataFilterBuilder filterBuilder = + new MetadataFilterBuilder(TextSegmentConvert.QUERY_ID); + Filter filter = filterBuilder.isEqualTo(TextSegmentConvert.getQueryId(query)); + embeddingStore.removeAll(filter); embeddingStore.add(embedding, query); cache.put(TextSegmentConvert.getQueryId(query), true); } catch (Exception e) { From fae9118c282594d68a632875ca7d79fda1db4833 Mon Sep 17 00:00:00 2001 From: feelshana <151412598@qq.com> Date: Thu, 29 May 2025 17:21:00 +0800 Subject: [PATCH 2/2] =?UTF-8?q?(feature)(chat)agent=E8=AE=B0=E5=BF=86?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=90=AF=E7=94=A8=E7=9A=84few-shot=E4=BC=98?= =?UTF-8?q?=E5=85=88=EF=BC=8C=E9=81=BF=E5=85=8Dshffle=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E9=9A=8F=E6=9C=BA=E6=80=A7=E5=AF=BC=E8=87=B4=E8=A2=AB?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E7=9A=84few-shot=E6=9B=BF=E4=BB=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supersonic/headless/chat/parser/llm/PromptHelper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/PromptHelper.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/PromptHelper.java index 3f0ba7911..c5d935b3b 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/PromptHelper.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/llm/PromptHelper.java @@ -51,7 +51,9 @@ public class PromptHelper { // use random collection of exemplars for each self-consistency inference for (int i = 0; i < selfConsistencyNumber; i++) { List shuffledList = new ArrayList<>(exemplars); - Collections.shuffle(shuffledList); + // only shuffle the exemplars from config + List subList=shuffledList.subList(llmReq.getDynamicExemplars().size(),shuffledList.size()); + Collections.shuffle(subList); results.add(shuffledList.subList(0, Math.min(shuffledList.size(), fewShotNumber))); }