Skip to content

Commit 1266159

Browse files
committed
move doGetConversationId method out of ABS
1 parent e57e62c commit 1266159

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/VectorStoreChatMemoryAdvisor.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
import java.util.List;
2222
import java.util.Map;
2323

24+
import org.slf4j.Logger;
25+
import org.slf4j.LoggerFactory;
26+
2427
import org.springframework.ai.chat.client.ChatClientRequest;
2528
import org.springframework.ai.chat.client.ChatClientResponse;
2629
import org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor;
@@ -48,6 +51,8 @@
4851
*/
4952
public class VectorStoreChatMemoryAdvisor extends AbstractChatMemoryAdvisor<VectorStore> {
5053

54+
private static final Logger logger = LoggerFactory.getLogger(VectorStoreChatMemoryAdvisor.class);
55+
5156
public static final String CHAT_MEMORY_RETRIEVE_SIZE_KEY = "chat_memory_response_size";
5257

5358
private static final String DOCUMENT_METADATA_CONVERSATION_ID = "conversationId";
@@ -128,6 +133,15 @@ protected int doGetChatMemoryRetrieveSize(Map<String, Object> context) {
128133
: this.defaultChatMemoryRetrieveSize;
129134
}
130135

136+
protected String doGetConversationId(Map<String, Object> context) {
137+
if (context == null || !context.containsKey(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY)) {
138+
logger.warn("No conversation ID found in context; using defaultConversationId '{}'.",
139+
this.defaultConversationId);
140+
}
141+
return context != null && context.containsKey(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY)
142+
? context.get(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY).toString() : this.defaultConversationId;
143+
}
144+
131145
@Override
132146
public ChatClientResponse after(ChatClientResponse chatClientResponse, AdvisorChain advisorChain) {
133147
List<Message> assistantMessages = new ArrayList<>();

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818

1919
import java.util.ArrayList;
2020
import java.util.List;
21+
import java.util.Map;
22+
23+
import org.slf4j.Logger;
24+
import org.slf4j.LoggerFactory;
2125

2226
import org.springframework.ai.chat.client.ChatClientRequest;
2327
import org.springframework.ai.chat.client.ChatClientResponse;
@@ -36,6 +40,8 @@
3640
*/
3741
public class MessageChatMemoryAdvisor extends AbstractChatMemoryAdvisor<ChatMemory> {
3842

43+
private static final Logger logger = LoggerFactory.getLogger(MessageChatMemoryAdvisor.class);
44+
3945
private MessageChatMemoryAdvisor(ChatMemory chatMemory, String defaultConversationId, int order) {
4046
super(chatMemory, defaultConversationId, true, order);
4147
}
@@ -52,6 +58,15 @@ public ChatClientRequest before(ChatClientRequest request, AdvisorChain advisorC
5258
return applyMessagesToRequest(request, memoryMessages);
5359
}
5460

61+
protected String doGetConversationId(Map<String, Object> context) {
62+
if (context == null || !context.containsKey(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY)) {
63+
logger.warn("No conversation ID found in context; using defaultConversationId '{}'.",
64+
this.defaultConversationId);
65+
}
66+
return context != null && context.containsKey(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY)
67+
? context.get(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY).toString() : this.defaultConversationId;
68+
}
69+
5570
private ChatClientRequest applyMessagesToRequest(ChatClientRequest request, List<Message> memoryMessages) {
5671
if (memoryMessages == null || memoryMessages.isEmpty()) {
5772
return request;

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,20 @@ public ChatClientRequest before(ChatClientRequest chatClientRequest, AdvisorChai
114114
return processedChatClientRequest;
115115
}
116116

117+
/**
118+
* Get the conversation id for the current context.
119+
* @param context the context
120+
* @return the conversation id
121+
*/
122+
protected String doGetConversationId(Map<String, Object> context) {
123+
if (context == null || !context.containsKey(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY)) {
124+
logger.warn("No conversation ID found in context; using defaultConversationId '{}'.",
125+
this.defaultConversationId);
126+
}
127+
return context != null && context.containsKey(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY)
128+
? context.get(ChatMemory.CHAT_MEMORY_CONVERSATION_ID_KEY).toString() : this.defaultConversationId;
129+
}
130+
117131
@Override
118132
public ChatClientResponse after(ChatClientResponse chatClientResponse, AdvisorChain advisorChain) {
119133
List<Message> assistantMessages = new ArrayList<>();

0 commit comments

Comments
 (0)