mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 02:46:56 +00:00
(fix)(common)记忆管理中更新sql,启用->待定,待定->启用向量库不更新
This commit is contained in:
@@ -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<ChatMemoryDO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(ChatMemoryDO::getId, chatMemoryDO.getId());
|
||||
if (Objects.nonNull(chatMemoryUpdateReq.getStatus())) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user