@@ -78,18 +78,18 @@ public VectorStoreChatMemoryAdvisor(VectorStore vectorStore, String systemTextAd
78
78
79
79
@ Deprecated
80
80
public VectorStoreChatMemoryAdvisor (VectorStore vectorStore , String defaultConversationId ,
81
- int chatHistoryWindowSize ) {
81
+ int chatHistoryWindowSize ) {
82
82
this (vectorStore , defaultConversationId , chatHistoryWindowSize , DEFAULT_SYSTEM_TEXT_ADVISE );
83
83
}
84
84
85
85
@ Deprecated
86
86
public VectorStoreChatMemoryAdvisor (VectorStore vectorStore , String defaultConversationId ,
87
- int chatHistoryWindowSize , int order ) {
87
+ int chatHistoryWindowSize , int order ) {
88
88
this (vectorStore , defaultConversationId , chatHistoryWindowSize , DEFAULT_SYSTEM_TEXT_ADVISE , order );
89
89
}
90
90
91
91
public VectorStoreChatMemoryAdvisor (VectorStore vectorStore , String defaultConversationId ,
92
- int chatHistoryWindowSize , String systemTextAdvise ) {
92
+ int chatHistoryWindowSize , String systemTextAdvise ) {
93
93
this (vectorStore , defaultConversationId , chatHistoryWindowSize , systemTextAdvise ,
94
94
Advisor .DEFAULT_CHAT_MEMORY_PRECEDENCE_ORDER );
95
95
}
@@ -105,7 +105,7 @@ public VectorStoreChatMemoryAdvisor(VectorStore vectorStore, String defaultConve
105
105
* @param order the order of precedence for this advisor in the chain.
106
106
*/
107
107
public VectorStoreChatMemoryAdvisor (VectorStore vectorStore , String defaultConversationId ,
108
- int chatHistoryWindowSize , String systemTextAdvise , int order ) {
108
+ int chatHistoryWindowSize , String systemTextAdvise , int order ) {
109
109
super (vectorStore , defaultConversationId , chatHistoryWindowSize , true , order );
110
110
this .systemTextAdvise = systemTextAdvise ;
111
111
}
@@ -148,60 +148,60 @@ private AdvisedRequest before(AdvisedRequest request) {
148
148
}
149
149
150
150
var searchRequest = SearchRequest .query (request .userText ())
151
- .withTopK (this .doGetChatMemoryRetrieveSize (request .adviseContext ()))
152
- .withFilterExpression (DOCUMENT_METADATA_CONVERSATION_ID + "=='"
153
- + this .doGetConversationId (request .adviseContext ()) + "'" );
151
+ .withTopK (this .doGetChatMemoryRetrieveSize (request .adviseContext ()))
152
+ .withFilterExpression (DOCUMENT_METADATA_CONVERSATION_ID + "=='"
153
+ + this .doGetConversationId (request .adviseContext ()) + "'" );
154
154
155
155
List <Document > documents = this .getChatMemoryStore ().similaritySearch (searchRequest );
156
156
157
157
String longTermMemory = documents .stream ()
158
- .map (Content ::getContent )
159
- .collect (Collectors .joining (System .lineSeparator ()));
158
+ .map (Content ::getContent )
159
+ .collect (Collectors .joining (System .lineSeparator ()));
160
160
161
161
Map <String , Object > advisedSystemParams = new HashMap <>(request .systemParams ());
162
162
advisedSystemParams .put ("long_term_memory" , longTermMemory );
163
163
164
164
AdvisedRequest advisedRequest = AdvisedRequest .from (request )
165
- .withSystemText (advisedSystemText )
166
- .withSystemParams (advisedSystemParams )
167
- .build ();
165
+ .withSystemText (advisedSystemText )
166
+ .withSystemParams (advisedSystemParams )
167
+ .build ();
168
168
169
169
UserMessage userMessage = new UserMessage (request .userText (), request .media ());
170
170
this .getChatMemoryStore ()
171
- .write (toDocuments (List .of (userMessage ), this .doGetConversationId (request .adviseContext ())));
171
+ .write (toDocuments (List .of (userMessage ), this .doGetConversationId (request .adviseContext ())));
172
172
173
173
return advisedRequest ;
174
174
}
175
175
176
176
private void observeAfter (AdvisedResponse advisedResponse ) {
177
177
178
178
List <Message > assistantMessages = advisedResponse .response ()
179
- .getResults ()
180
- .stream ()
181
- .map (g -> (Message ) g .getOutput ())
182
- .toList ();
179
+ .getResults ()
180
+ .stream ()
181
+ .map (g -> (Message ) g .getOutput ())
182
+ .toList ();
183
183
184
184
this .getChatMemoryStore ()
185
- .write (toDocuments (assistantMessages , this .doGetConversationId (advisedResponse .adviseContext ())));
185
+ .write (toDocuments (assistantMessages , this .doGetConversationId (advisedResponse .adviseContext ())));
186
186
}
187
187
188
188
private List <Document > toDocuments (List <Message > messages , String conversationId ) {
189
189
190
190
List <Document > docs = messages .stream ()
191
- .filter (m -> m .getMessageType () == MessageType .USER || m .getMessageType () == MessageType .ASSISTANT )
192
- .map (message -> {
193
- var metadata = new HashMap <>(message .getMetadata () != null ? message .getMetadata () : new HashMap <>());
194
- metadata .put (DOCUMENT_METADATA_CONVERSATION_ID , conversationId );
195
- metadata .put (DOCUMENT_METADATA_MESSAGE_TYPE , message .getMessageType ().name ());
196
- if (message instanceof UserMessage userMessage ) {
197
- return new Document (userMessage .getContent (), userMessage .getMedia (), metadata );
198
- }
199
- else if (message instanceof AssistantMessage assistantMessage ) {
200
- return new Document (assistantMessage .getContent (), metadata );
201
- }
202
- throw new RuntimeException ("Unknown message type: " + message .getMessageType ());
203
- })
204
- .toList ();
191
+ .filter (m -> m .getMessageType () == MessageType .USER || m .getMessageType () == MessageType .ASSISTANT )
192
+ .map (message -> {
193
+ var metadata = new HashMap <>(message .getMetadata () != null ? message .getMetadata () : new HashMap <>());
194
+ metadata .put (DOCUMENT_METADATA_CONVERSATION_ID , conversationId );
195
+ metadata .put (DOCUMENT_METADATA_MESSAGE_TYPE , message .getMessageType ().name ());
196
+ if (message instanceof UserMessage userMessage ) {
197
+ return new Document (userMessage .getContent (), userMessage .getMedia (), metadata );
198
+ }
199
+ else if (message instanceof AssistantMessage assistantMessage ) {
200
+ return new Document (assistantMessage .getContent (), metadata );
201
+ }
202
+ throw new RuntimeException ("Unknown message type: " + message .getMessageType ());
203
+ })
204
+ .toList ();
205
205
206
206
return docs ;
207
207
}
0 commit comments