Skip to content

Commit d849257

Browse files
committed
Refactor Advisor builder methods
- Deprecate the builder methods with the prefix `with` - Update references and docs
1 parent d3d34c9 commit d849257

File tree

17 files changed

+389
-66
lines changed

17 files changed

+389
-66
lines changed

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/client/ReReadingAdvisor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ private AdvisedRequest before(AdvisedRequest advisedRequest) {
6767
advisedUserParams.put("re2_input_query", advisedRequest.userText());
6868

6969
return AdvisedRequest.from(advisedRequest)
70-
.withUserText(this.re2AdviseTemplate)
71-
.withUserParams(advisedUserParams)
70+
.userText(this.re2AdviseTemplate)
71+
.userParams(advisedUserParams)
7272
.build();
7373
}
7474

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ default AdvisedResponse aroundCall(AdvisedRequest advisedRequest, CallAroundAdvi
6868
var context = new HashMap<>(advisedRequest.adviseContext());
6969
var requestPrim = adviseRequest(advisedRequest, context);
7070
advisedRequest = AdvisedRequest.from(requestPrim)
71-
.withAdviseContext(Collections.unmodifiableMap(context))
72-
.build();
71+
.adviseContext(Collections.unmodifiableMap(context))
72+
.build();
7373

7474
var advisedResponse = chain.nextAroundCall(advisedRequest);
7575

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

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
*
3737
* @param <T> the type of the chat memory.
3838
* @author Christian Tzolov
39+
* @author Ilayaperumal Gopinathan
3940
* @since 1.0.0
4041
*/
4142
public abstract class AbstractChatMemoryAdvisor<T> implements CallAroundAdvisor, StreamAroundAdvisor {
@@ -238,7 +239,7 @@ protected AbstractBuilder(T chatMemory) {
238239
* @param conversationId the conversation id
239240
* @return the builder
240241
*/
241-
public AbstractBuilder withConversationId(String conversationId) {
242+
public AbstractBuilder conversationId(String conversationId) {
242243
this.conversationId = conversationId;
243244
return this;
244245
}
@@ -248,7 +249,7 @@ public AbstractBuilder withConversationId(String conversationId) {
248249
* @param chatMemoryRetrieveSize the chat memory retrieve size
249250
* @return the builder
250251
*/
251-
public AbstractBuilder withChatMemoryRetrieveSize(int chatMemoryRetrieveSize) {
252+
public AbstractBuilder chatMemoryRetrieveSize(int chatMemoryRetrieveSize) {
252253
this.chatMemoryRetrieveSize = chatMemoryRetrieveSize;
253254
return this;
254255
}
@@ -258,7 +259,7 @@ public AbstractBuilder withChatMemoryRetrieveSize(int chatMemoryRetrieveSize) {
258259
* @param protectFromBlocking whether to protect from blocking
259260
* @return the builder
260261
*/
261-
public AbstractBuilder withProtectFromBlocking(boolean protectFromBlocking) {
262+
public AbstractBuilder protectFromBlocking(boolean protectFromBlocking) {
262263
this.protectFromBlocking = protectFromBlocking;
263264
return this;
264265
}
@@ -268,6 +269,42 @@ public AbstractBuilder withProtectFromBlocking(boolean protectFromBlocking) {
268269
* @param order the order
269270
* @return the builder
270271
*/
272+
public AbstractBuilder order(int order) {
273+
this.order = order;
274+
return this;
275+
}
276+
277+
/**
278+
* @deprecated use {@link #conversationId( String)} instead.
279+
*/
280+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
281+
public AbstractBuilder withConversationId(String conversationId) {
282+
this.conversationId = conversationId;
283+
return this;
284+
}
285+
286+
/**
287+
* @deprecated use {@link #chatMemoryRetrieveSize(int)} instead.
288+
*/
289+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
290+
public AbstractBuilder withChatMemoryRetrieveSize(int chatMemoryRetrieveSize) {
291+
this.chatMemoryRetrieveSize = chatMemoryRetrieveSize;
292+
return this;
293+
}
294+
295+
/**
296+
* @deprecated use {@link #protectFromBlocking(boolean)} instead.
297+
*/
298+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
299+
public AbstractBuilder withProtectFromBlocking(boolean protectFromBlocking) {
300+
this.protectFromBlocking = protectFromBlocking;
301+
return this;
302+
}
303+
304+
/**
305+
* @deprecated use {@link #order(int)} instead.
306+
*/
307+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
271308
public AbstractBuilder withOrder(int order) {
272309
this.order = order;
273310
return this;

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,11 @@ public AdvisedResponse nextAroundCall(AdvisedRequest advisedRequest) {
8686
var advisor = this.callAroundAdvisors.pop();
8787

8888
var observationContext = AdvisorObservationContext.builder()
89-
.withAdvisorName(advisor.getName())
90-
.withAdvisorType(AdvisorObservationContext.Type.AROUND)
91-
.withAdvisedRequest(advisedRequest)
92-
.withAdvisorRequestContext(advisedRequest.adviseContext())
93-
.withOrder(advisor.getOrder())
89+
.advisorName(advisor.getName())
90+
.advisorType(AdvisorObservationContext.Type.AROUND)
91+
.advisedRequest(advisedRequest)
92+
.advisorRequestContext(advisedRequest.adviseContext())
93+
.order(advisor.getOrder())
9494
.build();
9595

9696
return AdvisorObservationDocumentation.AI_ADVISOR
@@ -108,11 +108,11 @@ public Flux<AdvisedResponse> nextAroundStream(AdvisedRequest advisedRequest) {
108108
var advisor = this.streamAroundAdvisors.pop();
109109

110110
AdvisorObservationContext observationContext = AdvisorObservationContext.builder()
111-
.withAdvisorName(advisor.getName())
112-
.withAdvisorType(AdvisorObservationContext.Type.AROUND)
113-
.withAdvisedRequest(advisedRequest)
114-
.withAdvisorRequestContext(advisedRequest.adviseContext())
115-
.withOrder(advisor.getOrder())
111+
.advisorName(advisor.getName())
112+
.advisorType(AdvisorObservationContext.Type.AROUND)
113+
.advisedRequest(advisedRequest)
114+
.advisorRequestContext(advisedRequest.adviseContext())
115+
.order(advisor.getOrder())
116116
.build();
117117

118118
var observation = AdvisorObservationDocumentation.AI_ADVISOR.observation(null,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ private AdvisedRequest before(AdvisedRequest request) {
9191
advisedMessages.addAll(memoryMessages);
9292

9393
// 3. Create a new request with the advised messages.
94-
AdvisedRequest advisedRequest = AdvisedRequest.from(request).withMessages(advisedMessages).build();
94+
AdvisedRequest advisedRequest = AdvisedRequest.from(request).messages(advisedMessages).build();
9595

9696
// 4. Add the new user input to the conversation memory.
9797
UserMessage userMessage = new UserMessage(request.userText(), request.media());

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ private AdvisedRequest before(AdvisedRequest request) {
122122

123123
// 3. Create a new request with the advised system text and parameters.
124124
AdvisedRequest advisedRequest = AdvisedRequest.from(request)
125-
.withSystemText(advisedSystemText)
126-
.withSystemParams(advisedSystemParams)
125+
.systemText(advisedSystemText)
126+
.systemParams(advisedSystemParams)
127127
.build();
128128

129129
// 4. Add the new user input to the conversation memory.
@@ -152,6 +152,15 @@ protected Builder(ChatMemory chatMemory) {
152152
super(chatMemory);
153153
}
154154

155+
public Builder systemTextAdvise(String systemTextAdvise) {
156+
this.systemTextAdvise = systemTextAdvise;
157+
return this;
158+
}
159+
160+
/**
161+
* @deprecated use {@link #systemTextAdvise(String)} instead.
162+
*/
163+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
155164
public Builder withSystemTextAdvise(String systemTextAdvise) {
156165
this.systemTextAdvise = systemTextAdvise;
157166
return this;

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

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
*
4949
* @author Christian Tzolov
5050
* @author Timo Salm
51+
* @author Ilayaperumal Gopinathan
5152
* @since 1.0.0
5253
*/
5354
public class QuestionAnswerAdvisor implements CallAroundAdvisor, StreamAroundAdvisor {
@@ -234,9 +235,9 @@ private AdvisedRequest before(AdvisedRequest request) {
234235
advisedUserParams.put("question_answer_context", documentContext);
235236

236237
AdvisedRequest advisedRequest = AdvisedRequest.from(request)
237-
.withUserText(advisedUserText)
238-
.withUserParams(advisedUserParams)
239-
.withAdviseContext(context)
238+
.userText(advisedUserText)
239+
.userParams(advisedUserParams)
240+
.adviseContext(context)
240241
.build();
241242

242243
return advisedRequest;
@@ -285,23 +286,61 @@ private Builder(VectorStore vectorStore) {
285286
this.vectorStore = vectorStore;
286287
}
287288

289+
public Builder searchRequest(SearchRequest searchRequest) {
290+
Assert.notNull(searchRequest, "The searchRequest must not be null!");
291+
this.searchRequest = searchRequest;
292+
return this;
293+
}
294+
295+
public Builder userTextAdvise(String userTextAdvise) {
296+
Assert.hasText(userTextAdvise, "The userTextAdvise must not be empty!");
297+
this.userTextAdvise = userTextAdvise;
298+
return this;
299+
}
300+
301+
public Builder protectFromBlocking(boolean protectFromBlocking) {
302+
this.protectFromBlocking = protectFromBlocking;
303+
return this;
304+
}
305+
306+
public Builder order(int order) {
307+
this.order = order;
308+
return this;
309+
}
310+
311+
/**
312+
* @deprecated use {@link #searchRequest(SearchRequest)} instead.
313+
*/
314+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
288315
public Builder withSearchRequest(SearchRequest searchRequest) {
289316
Assert.notNull(searchRequest, "The searchRequest must not be null!");
290317
this.searchRequest = searchRequest;
291318
return this;
292319
}
293320

321+
/**
322+
* @deprecated use {@link #userTextAdvise(String)} instead.
323+
*/
324+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
294325
public Builder withUserTextAdvise(String userTextAdvise) {
295326
Assert.hasText(userTextAdvise, "The userTextAdvise must not be empty!");
296327
this.userTextAdvise = userTextAdvise;
297328
return this;
298329
}
299330

331+
/**
332+
* @deprecated use {@link #protectFromBlocking(boolean)} instead.
333+
*/
334+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
300335
public Builder withProtectFromBlocking(boolean protectFromBlocking) {
301336
this.protectFromBlocking = protectFromBlocking;
302337
return this;
303338
}
304339

340+
/**
341+
* @deprecated use {@link #order(int)} instead.
342+
*/
343+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
305344
public Builder withOrder(int order) {
306345
this.order = order;
307346
return this;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public AdvisedRequest before(AdvisedRequest request) {
133133
Query augmentedQuery = this.queryAugmenter.augment(originalQuery, documents);
134134

135135
// 6. Update advised request with augmented prompt.
136-
return AdvisedRequest.from(request).withUserText(augmentedQuery.text()).withAdviseContext(context).build();
136+
return AdvisedRequest.from(request).userText(augmentedQuery.text()).adviseContext(context).build();
137137
}
138138

139139
/**

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
* response if the user input contains any of the sensitive words.
3838
*
3939
* @author Christian Tzolov
40+
* @author Ilayaperumal Gopinathan
4041
* @since 1.0.0
4142
*/
4243
public class SafeGuardAdvisor implements CallAroundAdvisor, StreamAroundAdvisor {
@@ -116,16 +117,43 @@ public static final class Builder {
116117
private Builder() {
117118
}
118119

120+
public Builder sensitiveWords(List<String> sensitiveWords) {
121+
this.sensitiveWords = sensitiveWords;
122+
return this;
123+
}
124+
125+
public Builder failureResponse(String failureResponse) {
126+
this.failureResponse = failureResponse;
127+
return this;
128+
}
129+
130+
public Builder order(int order) {
131+
this.order = order;
132+
return this;
133+
}
134+
135+
/**
136+
* @deprecated use {@link #sensitiveWords(List)} instead.
137+
*/
138+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
119139
public Builder withSensitiveWords(List<String> sensitiveWords) {
120140
this.sensitiveWords = sensitiveWords;
121141
return this;
122142
}
123143

144+
/**
145+
* @deprecated use {@link #failureResponse(String)} instead.
146+
*/
147+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
124148
public Builder withFailureResponse(String failureResponse) {
125149
this.failureResponse = failureResponse;
126150
return this;
127151
}
128152

153+
/**
154+
* @deprecated use {@link #order(int)} instead.
155+
*/
156+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
129157
public Builder withOrder(int order) {
130158
this.order = order;
131159
return this;

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ private AdvisedRequest before(AdvisedRequest request) {
153153
advisedSystemParams.put("long_term_memory", longTermMemory);
154154

155155
AdvisedRequest advisedRequest = AdvisedRequest.from(request)
156-
.withSystemText(advisedSystemText)
157-
.withSystemParams(advisedSystemParams)
156+
.systemText(advisedSystemText)
157+
.systemParams(advisedSystemParams)
158158
.build();
159159

160160
UserMessage userMessage = new UserMessage(request.userText(), request.media());
@@ -212,6 +212,15 @@ protected Builder(VectorStore chatMemory) {
212212
super(chatMemory);
213213
}
214214

215+
public Builder systemTextAdvise(String systemTextAdvise) {
216+
this.systemTextAdvise = systemTextAdvise;
217+
return this;
218+
}
219+
220+
/**
221+
* @deprecated use {@link #systemTextAdvise(String)} instead.
222+
*/
223+
@Deprecated(forRemoval = true, since = "1.0.0-M5")
215224
public Builder withSystemTextAdvise(String systemTextAdvise) {
216225
this.systemTextAdvise = systemTextAdvise;
217226
return this;

0 commit comments

Comments
 (0)