Невозможно эффективно искать правые встраивания с помощью Spring AI VectorstoreJAVA

Программисты JAVA общаются здесь
Anonymous
Невозможно эффективно искать правые встраивания с помощью Spring AI Vectorstore

Сообщение Anonymous »

Версия 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

Вернуться в «JAVA»