Skip to content

Commit 2804604

Browse files
committed
Refactor SearchRequest builder methods
- Add a new Builder inner class to move all the builder methods and deprecate the existing builder methods - Update docs and references
1 parent 699a075 commit 2804604

File tree

107 files changed

+1602
-1114
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+1602
-1114
lines changed

spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/QuestionAnswerAdvisor.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public class QuestionAnswerAdvisor implements CallAroundAdvisor, StreamAroundAdv
8888
* @param vectorStore The vector store to use
8989
*/
9090
public QuestionAnswerAdvisor(VectorStore vectorStore) {
91-
this(vectorStore, SearchRequest.defaults(), DEFAULT_USER_TEXT_ADVISE);
91+
this(vectorStore, SearchRequest.builder().build(), DEFAULT_USER_TEXT_ADVISE);
9292
}
9393

9494
/**
@@ -218,8 +218,9 @@ private AdvisedRequest before(AdvisedRequest request) {
218218
// 2. Search for similar documents in the vector store.
219219
String query = new PromptTemplate(request.userText(), request.userParams()).render();
220220
var searchRequestToUse = SearchRequest.from(this.searchRequest)
221-
.withQuery(query)
222-
.withFilterExpression(doGetFilterExpression(context));
221+
.query(query)
222+
.filterExpression(doGetFilterExpression(context))
223+
.build();
223224

224225
List<Document> documents = this.vectorStore.similaritySearch(searchRequestToUse);
225226

@@ -273,7 +274,7 @@ public static final class Builder {
273274

274275
private final VectorStore vectorStore;
275276

276-
private SearchRequest searchRequest = SearchRequest.defaults();
277+
private SearchRequest searchRequest = SearchRequest.builder().build();
277278

278279
private String userTextAdvise = DEFAULT_USER_TEXT_ADVISE;
279280

spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,12 @@ private AdvisedRequest before(AdvisedRequest request) {
138138
advisedSystemText = this.systemTextAdvise;
139139
}
140140

141-
var searchRequest = SearchRequest.query(request.userText())
142-
.withTopK(this.doGetChatMemoryRetrieveSize(request.adviseContext()))
143-
.withFilterExpression(DOCUMENT_METADATA_CONVERSATION_ID + "=='"
144-
+ this.doGetConversationId(request.adviseContext()) + "'");
141+
var searchRequest = SearchRequest.builder()
142+
.query(request.userText())
143+
.topK(this.doGetChatMemoryRetrieveSize(request.adviseContext()))
144+
.filterExpression(
145+
DOCUMENT_METADATA_CONVERSATION_ID + "=='" + this.doGetConversationId(request.adviseContext()) + "'")
146+
.build();
145147

146148
List<Document> documents = this.getChatMemoryStore().similaritySearch(searchRequest);
147149

spring-ai-core/src/main/java/org/springframework/ai/rag/retrieval/search/VectorStoreDocumentRetriever.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,12 @@ public VectorStoreDocumentRetriever(VectorStore vectorStore, @Nullable Double si
7575
@Override
7676
public List<Document> retrieve(Query query) {
7777
Assert.notNull(query, "query cannot be null");
78-
var searchRequest = SearchRequest.query(query.text())
79-
.withFilterExpression(this.filterExpression.get())
80-
.withSimilarityThreshold(this.similarityThreshold)
81-
.withTopK(this.topK);
78+
var searchRequest = SearchRequest.builder()
79+
.query(query.text())
80+
.filterExpression(this.filterExpression.get())
81+
.similarityThreshold(this.similarityThreshold)
82+
.topK(this.topK)
83+
.build();
8284
return this.vectorStore.similaritySearch(searchRequest);
8385
}
8486

0 commit comments

Comments
 (0)