mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 12:07:42 +00:00
Merge pull request #2282 from feelshana/develop_0.0.1
(fix)(common)记忆管理中更新sql,启用->待定,待定->启用向量库不更新
This commit is contained in:
@@ -65,12 +65,16 @@ public class MemoryServiceImpl implements MemoryService, CommandLineRunner {
|
|||||||
ChatMemoryDO chatMemoryDO = chatMemoryRepository.getMemory(chatMemoryUpdateReq.getId());
|
ChatMemoryDO chatMemoryDO = chatMemoryRepository.getMemory(chatMemoryUpdateReq.getId());
|
||||||
boolean hadEnabled =
|
boolean hadEnabled =
|
||||||
MemoryStatus.ENABLED.toString().equals(chatMemoryDO.getStatus().trim());
|
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);
|
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);
|
disableMemory(chatMemoryDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
LambdaUpdateWrapper<ChatMemoryDO> updateWrapper = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<ChatMemoryDO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
updateWrapper.eq(ChatMemoryDO::getId, chatMemoryDO.getId());
|
updateWrapper.eq(ChatMemoryDO::getId, chatMemoryDO.getId());
|
||||||
if (Objects.nonNull(chatMemoryUpdateReq.getStatus())) {
|
if (Objects.nonNull(chatMemoryUpdateReq.getStatus())) {
|
||||||
|
|||||||
@@ -49,11 +49,10 @@ public class EmbeddingServiceImpl implements EmbeddingService {
|
|||||||
try {
|
try {
|
||||||
EmbeddingModel embeddingModel = ModelProvider.getEmbeddingModel();
|
EmbeddingModel embeddingModel = ModelProvider.getEmbeddingModel();
|
||||||
Embedding embedding = embeddingModel.embed(question).content();
|
Embedding embedding = embeddingModel.embed(question).content();
|
||||||
boolean existSegment =
|
MetadataFilterBuilder filterBuilder =
|
||||||
existSegment(collectionName, embeddingStore, query, embedding);
|
new MetadataFilterBuilder(TextSegmentConvert.QUERY_ID);
|
||||||
if (existSegment) {
|
Filter filter = filterBuilder.isEqualTo(TextSegmentConvert.getQueryId(query));
|
||||||
continue;
|
embeddingStore.removeAll(filter);
|
||||||
}
|
|
||||||
embeddingStore.add(embedding, query);
|
embeddingStore.add(embedding, query);
|
||||||
cache.put(TextSegmentConvert.getQueryId(query), true);
|
cache.put(TextSegmentConvert.getQueryId(query), true);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -51,7 +51,9 @@ public class PromptHelper {
|
|||||||
// use random collection of exemplars for each self-consistency inference
|
// use random collection of exemplars for each self-consistency inference
|
||||||
for (int i = 0; i < selfConsistencyNumber; i++) {
|
for (int i = 0; i < selfConsistencyNumber; i++) {
|
||||||
List<Text2SQLExemplar> shuffledList = new ArrayList<>(exemplars);
|
List<Text2SQLExemplar> shuffledList = new ArrayList<>(exemplars);
|
||||||
Collections.shuffle(shuffledList);
|
// only shuffle the exemplars from config
|
||||||
|
List<Text2SQLExemplar> subList=shuffledList.subList(llmReq.getDynamicExemplars().size(),shuffledList.size());
|
||||||
|
Collections.shuffle(subList);
|
||||||
results.add(shuffledList.subList(0, Math.min(shuffledList.size(), fewShotNumber)));
|
results.add(shuffledList.subList(0, Math.min(shuffledList.size(), fewShotNumber)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user