Версия AI Spring: 1.0.0
Я создал метод для извлечения необработанных документов встраивания, выполняя поиск сходства по данным пользовательскому запросу. Проблема в том, что он вытягивает все, включая пользовательские и помощники сообщений, если они актуальны. Я хочу отфильтровать только вставки на основе файлов, чтобы обеспечить точную картину. Я не могу понять правильный фильтр для использования. Вот моя реализация: < /p>
/**
* Searches for documents similar to the provided message using vector similarity search.
*
* @param embeddingSearchRequestDto the search request parameters
* @return list of DocumentDto objects containing the search results
*/
public List searchDocuments(EmbeddingSearchRequestDto embeddingSearchRequestDto) {
log.info("Searching content from embedding based on given prompt...");
validationHandler.validate(embeddingSearchRequestDto);
try {
SearchRequest.Builder searchQueryBuilder = SearchRequest.builder()
.query(embeddingSearchRequestDto.message());
if (embeddingSearchRequestDto.topKResults() > 0) {
searchQueryBuilder.topK(embeddingSearchRequestDto.topKResults());
}
if (embeddingSearchRequestDto.similarityThreshold() > 0) {
searchQueryBuilder.similarityThreshold(embeddingSearchRequestDto.similarityThreshold());
}
// // filter expression to exclude USER messages
// searchQueryBuilder.filterExpression(new FilterExpressionBuilder()
// .ne("messageType", "USER")
// .build());
List documents = vectorStore.similaritySearch(searchQueryBuilder.build());
if (isEmpty(documents)) {
log.warn("No relevant documents found for the given message");
return emptyList();
}
return documents.stream()
.map(doc -> new DocumentDto(
doc.getId(),
doc.getFormattedContent(),
doc.getScore(),
doc.getMetadata()))
.toList();
} catch (Exception e) {
log.error("Error searching relevant documents for the given message", e);
return emptyList();
}
}
< /code>
Файлы сохраняются с другими метаданными, чем обычные сообщения Ex. нет поле «MessageType» во вставках на основе файлов. Чего мне не хватает?
Подробнее здесь: https://stackoverflow.com/questions/796 ... ectorstore