From 0be0dc487a002e5e0beb17da35ef5025b2f570b0 Mon Sep 17 00:00:00 2001 From: lhpqaq <657407891@qq.com> Date: Thu, 12 Sep 2024 14:20:04 +0800 Subject: [PATCH] remove MessageRepository --- .../ai/assistant/GeneralAssistantFactory.java | 25 +++--- .../provider/PersistentStoreProvider.java | 61 -------------- .../store/PersistentChatMemoryStore.java | 3 + .../store/PersistentMessageRepository.java | 80 ------------------- .../manager/ai/core/AbstractAIAssistant.java | 7 ++ .../core/provider/MessageStoreProvider.java | 29 ------- .../ai/core/repository/MessageRepository.java | 27 ------- .../ai/dashscope/DashScopeAssistant.java | 51 +++++++++--- .../manager/ai/openai/OpenAIAssistant.java | 3 +- .../service/impl/AIChatServiceImpl.java | 4 +- 10 files changed, 64 insertions(+), 226 deletions(-) delete mode 100644 bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/provider/PersistentStoreProvider.java delete mode 100644 bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentMessageRepository.java delete mode 100644 bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/provider/MessageStoreProvider.java delete mode 100644 bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/repository/MessageRepository.java diff --git a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/GeneralAssistantFactory.java b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/GeneralAssistantFactory.java index 7ff16bcf..31cc343b 100644 --- a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/GeneralAssistantFactory.java +++ b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/GeneralAssistantFactory.java @@ -19,7 +19,6 @@ package org.apache.bigtop.manager.ai.assistant; import org.apache.bigtop.manager.ai.assistant.provider.LocSystemPromptProvider; -import org.apache.bigtop.manager.ai.assistant.provider.PersistentStoreProvider; import org.apache.bigtop.manager.ai.core.AbstractAIAssistantFactory; import org.apache.bigtop.manager.ai.core.enums.PlatformType; import org.apache.bigtop.manager.ai.core.enums.SystemPrompt; @@ -27,36 +26,37 @@ import org.apache.bigtop.manager.ai.core.factory.AIAssistant; import org.apache.bigtop.manager.ai.core.factory.ToolBox; import org.apache.bigtop.manager.ai.core.provider.AIAssistantConfigProvider; -import org.apache.bigtop.manager.ai.core.provider.MessageStoreProvider; import org.apache.bigtop.manager.ai.core.provider.SystemPromptProvider; import org.apache.bigtop.manager.ai.dashscope.DashScopeAssistant; import org.apache.bigtop.manager.ai.openai.OpenAIAssistant; import org.apache.commons.lang3.NotImplementedException; +import dev.langchain4j.store.memory.chat.ChatMemoryStore; +import dev.langchain4j.store.memory.chat.InMemoryChatMemoryStore; + import java.util.Objects; public class GeneralAssistantFactory extends AbstractAIAssistantFactory { private final SystemPromptProvider systemPromptProvider; - private final MessageStoreProvider messageStoreProvider; + private final ChatMemoryStore chatMemoryStore; public GeneralAssistantFactory() { - this(new LocSystemPromptProvider(), new PersistentStoreProvider()); + this(new LocSystemPromptProvider(), new InMemoryChatMemoryStore()); } public GeneralAssistantFactory(SystemPromptProvider systemPromptProvider) { - this(systemPromptProvider, new PersistentStoreProvider()); + this(systemPromptProvider, new InMemoryChatMemoryStore()); } - public GeneralAssistantFactory(MessageStoreProvider messageStoreProvider) { - this(new LocSystemPromptProvider(), messageStoreProvider); + public GeneralAssistantFactory(ChatMemoryStore chatMemoryStore) { + this(new LocSystemPromptProvider(), chatMemoryStore); } - public GeneralAssistantFactory( - SystemPromptProvider systemPromptProvider, MessageStoreProvider messageStoreProvider) { + public GeneralAssistantFactory(SystemPromptProvider systemPromptProvider, ChatMemoryStore chatMemoryStore) { this.systemPromptProvider = systemPromptProvider; - this.messageStoreProvider = messageStoreProvider; + this.chatMemoryStore = chatMemoryStore; } @Override @@ -66,17 +66,18 @@ public AIAssistant createWithPrompt( Object id, SystemPrompt systemPrompts) { AIAssistant aiAssistant; + ChatMemoryStore memoryStore = (id == null) ? new InMemoryChatMemoryStore() : chatMemoryStore; if (Objects.requireNonNull(platformType) == PlatformType.OPENAI) { aiAssistant = OpenAIAssistant.builder() .id(id) - .memoryStore(messageStoreProvider.getChatMemoryStore()) + .memoryStore(memoryStore) .withConfigProvider(assistantConfig) .build(); } else if (Objects.requireNonNull(platformType) == PlatformType.DASH_SCOPE) { aiAssistant = DashScopeAssistant.builder() .id(id) .withConfigProvider(assistantConfig) - .messageRepository(messageStoreProvider.getMessageRepository()) + .messageRepository(memoryStore) .build(); } else { throw new PlatformNotFoundException(platformType.getValue()); diff --git a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/provider/PersistentStoreProvider.java b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/provider/PersistentStoreProvider.java deleted file mode 100644 index 3e24ced9..00000000 --- a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/provider/PersistentStoreProvider.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.bigtop.manager.ai.assistant.provider; - -import org.apache.bigtop.manager.ai.assistant.store.PersistentChatMemoryStore; -import org.apache.bigtop.manager.ai.assistant.store.PersistentMessageRepository; -import org.apache.bigtop.manager.ai.core.provider.MessageStoreProvider; -import org.apache.bigtop.manager.ai.core.repository.MessageRepository; -import org.apache.bigtop.manager.dao.repository.ChatMessageDao; -import org.apache.bigtop.manager.dao.repository.ChatThreadDao; - -import dev.langchain4j.store.memory.chat.ChatMemoryStore; -import dev.langchain4j.store.memory.chat.InMemoryChatMemoryStore; -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class PersistentStoreProvider implements MessageStoreProvider { - private final ChatThreadDao chatThreadDao; - private final ChatMessageDao chatMessageDao; - - public PersistentStoreProvider(ChatThreadDao chatThreadDao, ChatMessageDao chatMessageDao) { - this.chatThreadDao = chatThreadDao; - this.chatMessageDao = chatMessageDao; - } - - public PersistentStoreProvider() { - chatMessageDao = null; - chatThreadDao = null; - } - - @Override - public MessageRepository getMessageRepository() { - return new PersistentMessageRepository(chatThreadDao, chatMessageDao); - } - - @Override - public ChatMemoryStore getChatMemoryStore() { - if (chatThreadDao == null) { - return new InMemoryChatMemoryStore(); - } - return new PersistentChatMemoryStore(chatThreadDao, chatMessageDao); - } -} diff --git a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java index ba4fd95e..b3763db2 100644 --- a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java +++ b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentChatMemoryStore.java @@ -93,6 +93,9 @@ public List getMessages(Object threadId) { @Override public void updateMessages(Object threadId, List messages) { + if (threadId == null) { + return; + } ChatMessagePO chatMessagePO = convertToChatMessagePO(messages.get(messages.size() - 1), (Long) threadId); chatMessageDao.save(chatMessagePO); } diff --git a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentMessageRepository.java b/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentMessageRepository.java deleted file mode 100644 index 7b9c3715..00000000 --- a/bigtop-manager-ai/bigtop-manager-ai-assistant/src/main/java/org/apache/bigtop/manager/ai/assistant/store/PersistentMessageRepository.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.bigtop.manager.ai.assistant.store; - -import org.apache.bigtop.manager.ai.core.enums.MessageSender; -import org.apache.bigtop.manager.ai.core.repository.MessageRepository; -import org.apache.bigtop.manager.dao.po.ChatMessagePO; -import org.apache.bigtop.manager.dao.po.ChatThreadPO; -import org.apache.bigtop.manager.dao.repository.ChatMessageDao; -import org.apache.bigtop.manager.dao.repository.ChatThreadDao; - -public class PersistentMessageRepository implements MessageRepository { - private final ChatThreadDao chatThreadDao; - private final ChatMessageDao chatMessageDao; - - private boolean noPersistent() { - return chatThreadDao == null || chatMessageDao == null; - } - - public PersistentMessageRepository(ChatThreadDao chatThreadDao, ChatMessageDao chatMessageDao) { - this.chatThreadDao = chatThreadDao; - this.chatMessageDao = chatMessageDao; - } - - private ChatMessagePO getChatMessagePO(String message, Long threadId, MessageSender sender) { - if (noPersistent()) { - return null; - } - ChatThreadPO chatThreadPO = chatThreadDao.findById(threadId); - ChatMessagePO chatMessagePO = new ChatMessagePO(); - chatMessagePO.setUserId(chatThreadPO.getUserId()); - chatMessagePO.setThreadId(threadId); - chatMessagePO.setSender(sender.getValue()); - chatMessagePO.setMessage(message); - return chatMessagePO; - } - - @Override - public void saveUserMessage(String message, Long threadId) { - if (noPersistent()) { - return; - } - ChatMessagePO chatMessagePO = getChatMessagePO(message, threadId, MessageSender.USER); - chatMessageDao.save(chatMessagePO); - } - - @Override - public void saveAiMessage(String message, Long threadId) { - if (noPersistent()) { - return; - } - ChatMessagePO chatMessagePO = getChatMessagePO(message, threadId, MessageSender.AI); - chatMessageDao.save(chatMessagePO); - } - - @Override - public void saveSystemMessage(String message, Long threadId) { - if (noPersistent()) { - return; - } - ChatMessagePO chatMessagePO = getChatMessagePO(message, threadId, MessageSender.SYSTEM); - chatMessageDao.save(chatMessagePO); - } -} diff --git a/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/AbstractAIAssistant.java b/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/AbstractAIAssistant.java index d7b155f8..f76abee0 100644 --- a/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/AbstractAIAssistant.java +++ b/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/AbstractAIAssistant.java @@ -20,9 +20,16 @@ import org.apache.bigtop.manager.ai.core.factory.AIAssistant; +import dev.langchain4j.memory.ChatMemory; + public abstract class AbstractAIAssistant implements AIAssistant { protected static final Integer MEMORY_LEN = 10; + protected final ChatMemory chatMemory; + + protected AbstractAIAssistant(ChatMemory chatMemory) { + this.chatMemory = chatMemory; + } @Override public boolean test() { diff --git a/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/provider/MessageStoreProvider.java b/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/provider/MessageStoreProvider.java deleted file mode 100644 index 9e7fee15..00000000 --- a/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/provider/MessageStoreProvider.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.bigtop.manager.ai.core.provider; - -import org.apache.bigtop.manager.ai.core.repository.MessageRepository; - -import dev.langchain4j.store.memory.chat.ChatMemoryStore; - -public interface MessageStoreProvider { - MessageRepository getMessageRepository(); - - ChatMemoryStore getChatMemoryStore(); -} diff --git a/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/repository/MessageRepository.java b/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/repository/MessageRepository.java deleted file mode 100644 index 1ad582f1..00000000 --- a/bigtop-manager-ai/bigtop-manager-ai-core/src/main/java/org/apache/bigtop/manager/ai/core/repository/MessageRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.bigtop.manager.ai.core.repository; - -public interface MessageRepository { - default void saveUserMessage(String message, Long threadId) {} - - default void saveAiMessage(String message, Long threadId) {} - - default void saveSystemMessage(String message, Long threadId) {} -} diff --git a/bigtop-manager-ai/bigtop-manager-ai-dashscope/src/main/java/org/apache/bigtop/manager/ai/dashscope/DashScopeAssistant.java b/bigtop-manager-ai/bigtop-manager-ai-dashscope/src/main/java/org/apache/bigtop/manager/ai/dashscope/DashScopeAssistant.java index 538a6747..1129d5c8 100644 --- a/bigtop-manager-ai/bigtop-manager-ai-dashscope/src/main/java/org/apache/bigtop/manager/ai/dashscope/DashScopeAssistant.java +++ b/bigtop-manager-ai/bigtop-manager-ai-dashscope/src/main/java/org/apache/bigtop/manager/ai/dashscope/DashScopeAssistant.java @@ -19,10 +19,10 @@ package org.apache.bigtop.manager.ai.dashscope; import org.apache.bigtop.manager.ai.core.AbstractAIAssistant; +import org.apache.bigtop.manager.ai.core.enums.MessageSender; import org.apache.bigtop.manager.ai.core.enums.PlatformType; import org.apache.bigtop.manager.ai.core.factory.AIAssistant; import org.apache.bigtop.manager.ai.core.provider.AIAssistantConfigProvider; -import org.apache.bigtop.manager.ai.core.repository.MessageRepository; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationParam; @@ -50,7 +50,14 @@ import com.alibaba.dashscope.threads.runs.Run; import com.alibaba.dashscope.threads.runs.RunParam; import com.alibaba.dashscope.threads.runs.Runs; +import dev.langchain4j.data.message.AiMessage; +import dev.langchain4j.data.message.ChatMessage; +import dev.langchain4j.data.message.SystemMessage; +import dev.langchain4j.data.message.UserMessage; import dev.langchain4j.internal.ValidationUtils; +import dev.langchain4j.memory.ChatMemory; +import dev.langchain4j.memory.chat.MessageWindowChatMemory; +import dev.langchain4j.store.memory.chat.ChatMemoryStore; import io.reactivex.Flowable; import reactor.core.publisher.Flux; @@ -64,11 +71,10 @@ public class DashScopeAssistant extends AbstractAIAssistant { private final Messages messages = new Messages(); private final Threads threads = new Threads(); private final Runs runs = new Runs(); - private final MessageRepository messageRepository; private final DashScopeThreadParam dashScopeThreadParam; - public DashScopeAssistant(MessageRepository messageRepository, DashScopeThreadParam dashScopeThreadParam) { - this.messageRepository = messageRepository; + public DashScopeAssistant(ChatMemory chatMemory, DashScopeThreadParam dashScopeThreadParam) { + super(chatMemory); this.dashScopeThreadParam = dashScopeThreadParam; } @@ -84,6 +90,20 @@ private String getValueFromAssistantStreamMessage(AssistantStreamMessage assista return streamMessage.toString(); } + private void saveMessage(String message, MessageSender sender) { + ChatMessage chatMessage; + if (sender.equals(MessageSender.AI)) { + chatMessage = new AiMessage(message); + } else if (sender.equals(MessageSender.USER)) { + chatMessage = new UserMessage(message); + } else if (sender.equals(MessageSender.SYSTEM)) { + chatMessage = new SystemMessage(message); + } else { + return; + } + chatMemory.add(chatMessage); + } + @Override public PlatformType getPlatform() { return PlatformType.DASH_SCOPE; @@ -113,7 +133,7 @@ public void setSystemPrompt(String systemPrompt) { } catch (NoApiKeyException | InputRequiredException | InvalidateParameter e) { throw new RuntimeException(e); } - messageRepository.saveSystemMessage(systemPrompt, (Long) dashScopeThreadParam.getThreadId()); + saveMessage(systemPrompt, MessageSender.SYSTEM); } public static Builder builder() { @@ -127,7 +147,7 @@ public Object getId() { @Override public Flux streamAsk(String userMessage) { - messageRepository.saveUserMessage(userMessage, (Long) dashScopeThreadParam.getThreadId()); + saveMessage(userMessage, MessageSender.USER); TextMessageParam textMessageParam = TextMessageParam.builder() .apiKey(dashScopeThreadParam.getApiKey()) .role(Role.USER.getValue()) @@ -161,13 +181,13 @@ public Flux streamAsk(String userMessage) { return message; }) .doOnComplete(() -> { - messageRepository.saveAiMessage(finalMessage.toString(), (Long) dashScopeThreadParam.getThreadId()); + saveMessage(finalMessage.toString(), MessageSender.AI); }); } @Override public String ask(String userMessage) { - messageRepository.saveUserMessage(userMessage, (Long) dashScopeThreadParam.getThreadId()); + saveMessage(userMessage, MessageSender.USER); TextMessageParam textMessageParam = TextMessageParam.builder() .apiKey(dashScopeThreadParam.getApiKey()) .role(Role.USER.getValue()) @@ -231,7 +251,7 @@ public String ask(String userMessage) { ContentText contentText = (ContentText) content; finalMessage.append(contentText.getText().getValue()); } - messageRepository.saveAiMessage(finalMessage.toString(), (Long) dashScopeThreadParam.getThreadId()); + saveMessage(finalMessage.toString(), MessageSender.AI); return finalMessage.toString(); } @@ -282,7 +302,7 @@ public Map createThread() { public static class Builder { private Object id; private AIAssistantConfigProvider configProvider; - private MessageRepository messageRepository; + private ChatMemoryStore chatMemoryStore; public Builder() {} @@ -296,8 +316,8 @@ public Builder id(Object id) { return this; } - public Builder messageRepository(MessageRepository messageRepository) { - this.messageRepository = messageRepository; + public Builder messageRepository(ChatMemoryStore chatMemoryStore) { + this.chatMemoryStore = chatMemoryStore; return this; } @@ -316,10 +336,15 @@ public AIAssistant build() { if (assistantId != null) { param.setAssistantId(assistantId); } + MessageWindowChatMemory.Builder builder = MessageWindowChatMemory.builder() + .chatMemoryStore(chatMemoryStore) + .maxMessages(MEMORY_LEN); if (id != null) { + builder.id(id); param.setThreadId(id); } - return new DashScopeAssistant(messageRepository, param); + MessageWindowChatMemory chatMemory = builder.build(); + return new DashScopeAssistant(chatMemory, param); } } } diff --git a/bigtop-manager-ai/bigtop-manager-ai-openai/src/main/java/org/apache/bigtop/manager/ai/openai/OpenAIAssistant.java b/bigtop-manager-ai/bigtop-manager-ai-openai/src/main/java/org/apache/bigtop/manager/ai/openai/OpenAIAssistant.java index 59eba580..714047ab 100644 --- a/bigtop-manager-ai/bigtop-manager-ai-openai/src/main/java/org/apache/bigtop/manager/ai/openai/OpenAIAssistant.java +++ b/bigtop-manager-ai/bigtop-manager-ai-openai/src/main/java/org/apache/bigtop/manager/ai/openai/OpenAIAssistant.java @@ -44,7 +44,6 @@ public class OpenAIAssistant extends AbstractAIAssistant { private final ChatLanguageModel chatLanguageModel; private final StreamingChatLanguageModel streamingChatLanguageModel; - private final ChatMemory chatMemory; private static final String BASE_URL = "https://api.openai.com/v1"; @@ -52,9 +51,9 @@ public OpenAIAssistant( ChatLanguageModel chatLanguageModel, StreamingChatLanguageModel streamingChatLanguageModel, ChatMemory chatMemory) { + super(chatMemory); this.chatLanguageModel = chatLanguageModel; this.streamingChatLanguageModel = streamingChatLanguageModel; - this.chatMemory = chatMemory; } @Override diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/AIChatServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/AIChatServiceImpl.java index 025b4d48..c4336e8f 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/AIChatServiceImpl.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/AIChatServiceImpl.java @@ -20,7 +20,7 @@ import org.apache.bigtop.manager.ai.assistant.GeneralAssistantFactory; import org.apache.bigtop.manager.ai.assistant.provider.AIAssistantConfig; -import org.apache.bigtop.manager.ai.assistant.provider.PersistentStoreProvider; +import org.apache.bigtop.manager.ai.assistant.store.PersistentChatMemoryStore; import org.apache.bigtop.manager.ai.core.enums.MessageSender; import org.apache.bigtop.manager.ai.core.enums.PlatformType; import org.apache.bigtop.manager.ai.core.factory.AIAssistant; @@ -84,7 +84,7 @@ public class AIChatServiceImpl implements AIChatService { public AIAssistantFactory getAiAssistantFactory() { if (aiAssistantFactory == null) { aiAssistantFactory = - new GeneralAssistantFactory(new PersistentStoreProvider(chatThreadDao, chatMessageDao)); + new GeneralAssistantFactory(new PersistentChatMemoryStore(chatThreadDao, chatMessageDao)); } return aiAssistantFactory; }