fix existSegment bug which embedding search not has min-score,so that… (#1410)

This commit is contained in:
JackLiang
2024-07-16 15:39:03 +08:00
committed by GitHub
parent 13ae312e51
commit 35892f2344

View File

@@ -79,15 +79,12 @@ public class EmbeddingServiceImpl implements EmbeddingService {
Map<String, String> filterCondition = new HashMap<>(); Map<String, String> filterCondition = new HashMap<>();
filterCondition.put(TextSegmentConvert.QUERY_ID, queryId); filterCondition.put(TextSegmentConvert.QUERY_ID, queryId);
Filter filter = createCombinedFilter(filterCondition); Filter filter = createCombinedFilter(filterCondition);
EmbeddingSearchRequest request = EmbeddingSearchRequest.builder() EmbeddingSearchRequest request = EmbeddingSearchRequest.builder()
.queryEmbedding(embedding).filter(filter).maxResults(1).build(); .queryEmbedding(embedding).filter(filter).minScore(1.0d).maxResults(1).build();
EmbeddingSearchResult result = embeddingStore.search(request); EmbeddingSearchResult result = embeddingStore.search(request);
List<EmbeddingMatch<TextSegment>> relevant = result.matches(); List<EmbeddingMatch<TextSegment>> relevant = result.matches();
boolean exists = CollectionUtils.isNotEmpty(relevant); boolean exists = CollectionUtils.isNotEmpty(relevant);
cache.put(queryId, exists); cache.put(queryId, exists);
return exists; return exists;
} }
@@ -126,10 +123,8 @@ public class EmbeddingServiceImpl implements EmbeddingService {
Filter filter = createCombinedFilter(filterCondition); Filter filter = createCombinedFilter(filterCondition);
EmbeddingSearchRequest request = EmbeddingSearchRequest.builder() EmbeddingSearchRequest request = EmbeddingSearchRequest.builder()
.queryEmbedding(embeddedText).filter(filter).maxResults(num).build(); .queryEmbedding(embeddedText).filter(filter).maxResults(num).build();
EmbeddingSearchResult result = embeddingStore.search(request); EmbeddingSearchResult result = embeddingStore.search(request);
List<EmbeddingMatch<TextSegment>> relevant = result.matches(); List<EmbeddingMatch<TextSegment>> relevant = result.matches();
RetrieveQueryResult retrieveQueryResult = new RetrieveQueryResult(); RetrieveQueryResult retrieveQueryResult = new RetrieveQueryResult();
retrieveQueryResult.setQuery(queryText); retrieveQueryResult.setQuery(queryText);
List<Retrieval> retrievals = new ArrayList<>(); List<Retrieval> retrievals = new ArrayList<>();
@@ -154,7 +149,6 @@ public class EmbeddingServiceImpl implements EmbeddingService {
retrieveQueryResult.setRetrieval(retrievals); retrieveQueryResult.setRetrieval(retrievals);
results.add(retrieveQueryResult); results.add(retrieveQueryResult);
} }
return results; return results;
} }