Skip to content

Commit

Permalink
Merge pull request #5765 from ConnectAI-E/feature/onfinish
Browse files Browse the repository at this point in the history
feat: update real 'currentSession'
  • Loading branch information
lloydzhou authored Nov 5, 2024
2 parents 14f7519 + e49466f commit e49fe97
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
2 changes: 1 addition & 1 deletion app/components/chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1607,7 +1607,7 @@ function _Chat() {
title={Locale.Chat.Actions.RefreshTitle}
onClick={() => {
showToast(Locale.Chat.Actions.RefreshToast);
chatStore.summarizeSession(true);
chatStore.summarizeSession(true, session);
}}
/>
</div>
Expand Down
31 changes: 22 additions & 9 deletions app/store/chat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -352,13 +352,13 @@ export const useChatStore = createPersistStore(
return session;
},

onNewMessage(message: ChatMessage) {
get().updateCurrentSession((session) => {
onNewMessage(message: ChatMessage, targetSession: ChatSession) {
get().updateTargetSession(targetSession, (session) => {
session.messages = session.messages.concat();
session.lastUpdate = Date.now();
});
get().updateStat(message);
get().summarizeSession();
get().summarizeSession(false, targetSession);
},

async onUserInput(content: string, attachImages?: string[]) {
Expand Down Expand Up @@ -428,7 +428,7 @@ export const useChatStore = createPersistStore(
botMessage.streaming = false;
if (message) {
botMessage.content = message;
get().onNewMessage(botMessage);
get().onNewMessage(botMessage, session);
}
ChatControllerPool.remove(session.id, botMessage.id);
},
Expand Down Expand Up @@ -598,9 +598,12 @@ export const useChatStore = createPersistStore(
});
},

summarizeSession(refreshTitle: boolean = false) {
summarizeSession(
refreshTitle: boolean = false,
targetSession: ChatSession,
) {
const config = useAppConfig.getState();
const session = get().currentSession();
const session = targetSession;
const modelConfig = session.mask.modelConfig;
// skip summarize when using dalle3?
if (isDalle3(modelConfig.model)) {
Expand Down Expand Up @@ -651,7 +654,8 @@ export const useChatStore = createPersistStore(
},
onFinish(message, responseRes) {
if (responseRes?.status === 200) {
get().updateCurrentSession(
get().updateTargetSession(
session,
(session) =>
(session.topic =
message.length > 0 ? trimTopic(message) : DEFAULT_TOPIC),
Expand Down Expand Up @@ -719,7 +723,7 @@ export const useChatStore = createPersistStore(
onFinish(message, responseRes) {
if (responseRes?.status === 200) {
console.log("[Memory] ", message);
get().updateCurrentSession((session) => {
get().updateTargetSession(session, (session) => {
session.lastSummarizeIndex = lastSummarizeIndex;
session.memoryPrompt = message; // Update the memory prompt for stored it in local storage
});
Expand All @@ -745,7 +749,16 @@ export const useChatStore = createPersistStore(
updater(sessions[index]);
set(() => ({ sessions }));
},

updateTargetSession(
targetSession: ChatSession,
updater: (session: ChatSession) => void,
) {
const sessions = get().sessions;
const index = sessions.findIndex((s) => s.id === targetSession.id);
if (index < 0) return;
updater(sessions[index]);
set(() => ({ sessions }));
},
async clearAllData() {
await indexedDBStorage.clear();
localStorage.clear();
Expand Down

0 comments on commit e49fe97

Please sign in to comment.