Skip to content

Commit 0d14311

Browse files
authored
Return metadata from MongoRepository (#4830)
* Return metadata from MongoRepository * chore: review fixes Signed-off-by: Łukasz Jernaś <lukasz.jernas@allegro.com>
1 parent c03a485 commit 0d14311

File tree

1 file changed

+14
-6
lines changed
  • memory/repository/spring-ai-model-chat-memory-repository-mongodb/src/main/java/org/springframework/ai/chat/memory/repository/mongo

1 file changed

+14
-6
lines changed

memory/repository/spring-ai-model-chat-memory-repository-mongodb/src/main/java/org/springframework/ai/chat/memory/repository/mongo/MongoChatMemoryRepository.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.springframework.data.mongodb.core.MongoTemplate;
3333
import org.springframework.data.mongodb.core.query.Criteria;
3434
import org.springframework.data.mongodb.core.query.Query;
35-
import org.springframework.lang.Nullable;
3635

3736
/**
3837
* An implementation of {@link ChatMemoryRepository} for MongoDB.
@@ -80,14 +79,23 @@ public void deleteByConversationId(String conversationId) {
8079
this.mongoTemplate.remove(Query.query(Criteria.where("conversationId").is(conversationId)), Conversation.class);
8180
}
8281

83-
public static @Nullable Message mapMessage(Conversation conversation) {
82+
public static Message mapMessage(Conversation conversation) {
8483
return switch (conversation.message().type()) {
85-
case "USER" -> new UserMessage(conversation.message().content());
86-
case "ASSISTANT" -> new AssistantMessage(conversation.message().content());
87-
case "SYSTEM" -> new SystemMessage(conversation.message().content());
84+
case "USER" -> UserMessage.builder()
85+
.text(conversation.message().content())
86+
.metadata(conversation.message().metadata())
87+
.build();
88+
case "ASSISTANT" -> AssistantMessage.builder()
89+
.content(conversation.message().content())
90+
.properties(conversation.message().metadata())
91+
.build();
92+
case "SYSTEM" -> SystemMessage.builder()
93+
.text(conversation.message().content())
94+
.metadata(conversation.message().metadata())
95+
.build();
8896
default -> {
8997
logger.warn("Unsupported message type: {}", conversation.message().type());
90-
yield null;
98+
throw new IllegalStateException("Unsupported message type: " + conversation.message().type());
9199
}
92100
};
93101
}

0 commit comments

Comments
 (0)