Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,14 @@ public AllDatasetStatisticsResponse getAllDatasetStatistics() {
@Override
public IPage<Dataset> findByCriteria(IPage<Dataset> page, DatasetPagingQuery query) {
LambdaQueryWrapper<Dataset> wrapper = new LambdaQueryWrapper<Dataset>()
.eq(query.getType() != null, Dataset::getDatasetType, query.getType())
.eq(query.getStatus() != null, Dataset::getStatus, query.getStatus())
.like(StringUtils.isNotBlank(query.getKeyword()), Dataset::getName, query.getKeyword())
.like(StringUtils.isNotBlank(query.getKeyword()), Dataset::getDescription, query.getKeyword());
.eq(query.getType() != null, Dataset::getDatasetType, query.getType())
.eq(query.getStatus() != null, Dataset::getStatus, query.getStatus());

if (StringUtils.isNotBlank(query.getKeyword())) {
wrapper.and(w ->
w.like(Dataset::getName, query.getKeyword()).or()
.like(Dataset::getDescription, query.getKeyword()));
}

/*
标签过滤 {@link Tag}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
import com.datamate.rag.indexer.domain.repository.KnowledgeBaseRepository;
import com.datamate.rag.indexer.domain.repository.RagFileRepository;
import com.datamate.rag.indexer.infrastructure.event.DataInsertedEvent;
import com.datamate.rag.indexer.infrastructure.milvus.MilvusService;
import com.datamate.rag.indexer.interfaces.dto.*;
import io.milvus.client.MilvusClient;
import io.milvus.param.collection.DropCollectionParam;
import io.milvus.param.dml.DeleteParam;
import lombok.RequiredArgsConstructor;
Expand All @@ -42,7 +42,7 @@ public class KnowledgeBaseService {
private final RagFileRepository ragFileRepository;
private final ApplicationEventPublisher eventPublisher;
private final ModelConfigRepository modelConfigRepository;
private final MilvusClient milvusClient;
private final MilvusService milvusService;

/**
* 创建知识库
Expand Down Expand Up @@ -81,7 +81,7 @@ public void delete(String knowledgeBaseId) {
.orElseThrow(() -> BusinessException.of(KnowledgeBaseErrorCode.KNOWLEDGE_BASE_NOT_FOUND));
knowledgeBaseRepository.removeById(knowledgeBaseId);
ragFileRepository.removeByKnowledgeBaseId(knowledgeBaseId);
milvusClient.dropCollection(DropCollectionParam.newBuilder().withCollectionName(knowledgeBase.getName()).build());
milvusService.getMilvusClient().dropCollection(DropCollectionParam.newBuilder().withCollectionName(knowledgeBase.getName()).build());
}

public KnowledgeBaseResp getById(String knowledgeBaseId) {
Expand Down Expand Up @@ -147,7 +147,7 @@ public void deleteFiles(String knowledgeBaseId, DeleteFilesReq request) {
KnowledgeBase knowledgeBase = Optional.ofNullable(knowledgeBaseRepository.getById(knowledgeBaseId))
.orElseThrow(() -> BusinessException.of(KnowledgeBaseErrorCode.KNOWLEDGE_BASE_NOT_FOUND));
ragFileRepository.removeByIds(request.getIds());
milvusClient.delete(DeleteParam.newBuilder()
milvusService.getMilvusClient().delete(DeleteParam.newBuilder()
.withCollectionName(knowledgeBase.getName())
.withExpr("metadata[\"rag_file_id\"] in [" + org.apache.commons.lang3.StringUtils.join(request.getIds().stream().map(id -> "\"" + id + "\"").toArray(), ",") + "]")
.build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import io.milvus.client.MilvusClient;
import io.milvus.client.MilvusServiceClient;
import io.milvus.param.ConnectParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
Expand All @@ -17,13 +17,16 @@
* @author dallas
* @since 2025-11-17
*/
@Slf4j
@Component
public class MilvusService {
@Value("${datamate.rag.milvus-host:milvus-standalone}")
private String milvusHost;
@Value("${datamate.rag.milvus-port:19530}")
private int milvusPort;

private volatile MilvusClient milvusClient;

public EmbeddingStore<TextSegment> embeddingStore(EmbeddingModel embeddingModel, String knowledgeBaseName) {
return MilvusEmbeddingStore.builder()
.host(milvusHost)
Expand All @@ -33,12 +36,24 @@ public EmbeddingStore<TextSegment> embeddingStore(EmbeddingModel embeddingModel,
.build();
}

@Bean
public MilvusClient milvusClient() {
ConnectParam connectParam = ConnectParam.newBuilder()
.withHost(milvusHost)
.withPort(milvusPort)
.build();
return new MilvusServiceClient(connectParam);
public MilvusClient getMilvusClient() {
if (milvusClient == null) {
synchronized (this) {
if (milvusClient == null) {
try {
ConnectParam connectParam = ConnectParam.newBuilder()
.withHost(milvusHost)
.withPort(milvusPort)
.build();
milvusClient = new MilvusServiceClient(connectParam);
log.info("Milvus client connected successfully");
} catch (Exception e) {
log.error("Milvus client connection failed: {}", e.getMessage());
throw new RuntimeException("Milvus client connection failed", e);
}
}
}
}
return milvusClient;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ const KnowledgeBaseDetailPage: React.FC = () => {
showReload={false}
/>
</div>
<AddDataDialog knowledgeBase={knowledgeBase} />
<AddDataDialog knowledgeBase={knowledgeBase} onDataAdded={handleRefreshPage} />
</div>

<Table
Expand Down
Loading