From 04775fa34ea679eea2667146b48536399943baec Mon Sep 17 00:00:00 2001 From: conql <2365252385@qq.com> Date: Mon, 23 Jun 2025 01:52:50 +0800 Subject: [PATCH] fix: dates not preserved after importing chat --- backend/open_webui/models/chats.py | 14 ++++++++++++-- src/lib/apis/chats/index.ts | 8 ++++++-- src/lib/components/chat/Settings/Chats.svelte | 6 +++--- src/lib/components/layout/Sidebar.svelte | 2 +- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/backend/open_webui/models/chats.py b/backend/open_webui/models/chats.py index 0ac53a023..e9f1b6377 100644 --- a/backend/open_webui/models/chats.py +++ b/backend/open_webui/models/chats.py @@ -72,6 +72,8 @@ class ChatImportForm(ChatForm): meta: Optional[dict] = {} pinned: Optional[bool] = False folder_id: Optional[str] = None + created_at: Optional[int] = None + updated_at: Optional[int] = None class ChatTitleMessagesForm(BaseModel): @@ -147,8 +149,16 @@ class ChatTable: "meta": form_data.meta, "pinned": form_data.pinned, "folder_id": form_data.folder_id, - "created_at": int(time.time()), - "updated_at": int(time.time()), + "created_at": ( + form_data.created_at + if hasattr(form_data, "created_at") and form_data.created_at + else int(time.time()) + ), + "updated_at": ( + form_data.updated_at + if hasattr(form_data, "updated_at") and form_data.updated_at + else int(time.time()) + ), } ) diff --git a/src/lib/apis/chats/index.ts b/src/lib/apis/chats/index.ts index 9d24b3971..1c4d6e09e 100644 --- a/src/lib/apis/chats/index.ts +++ b/src/lib/apis/chats/index.ts @@ -37,7 +37,9 @@ export const importChat = async ( chat: object, meta: object | null, pinned?: boolean, - folderId?: string | null + folderId?: string | null, + createdAt?: number, + updatedAt?: number ) => { let error = null; @@ -52,7 +54,9 @@ export const importChat = async ( chat: chat, meta: meta ?? {}, pinned: pinned, - folder_id: folderId + folder_id: folderId, + created_at: createdAt, + updated_at: updatedAt }) }) .then(async (res) => { diff --git a/src/lib/components/chat/Settings/Chats.svelte b/src/lib/components/chat/Settings/Chats.svelte index f11897d6e..110bab06d 100644 --- a/src/lib/components/chat/Settings/Chats.svelte +++ b/src/lib/components/chat/Settings/Chats.svelte @@ -6,7 +6,7 @@ import { archiveAllChats, - createNewChat, + importChat, deleteAllChats, getAllChats, getAllUserChats, @@ -58,9 +58,9 @@ console.log(chat); if (chat.chat) { - await createNewChat(localStorage.token, chat.chat); + await importChat(localStorage.token, chat.chat, chat.meta ?? {}, false, null, chat.created_at, chat.updated_at); } else { - await createNewChat(localStorage.token, chat); + await importChat(localStorage.token, chat, chat.meta ?? {}, false, null, chat.created_at, chat.updated_at); } } diff --git a/src/lib/components/layout/Sidebar.svelte b/src/lib/components/layout/Sidebar.svelte index e0ebfab88..5d9868503 100644 --- a/src/lib/components/layout/Sidebar.svelte +++ b/src/lib/components/layout/Sidebar.svelte @@ -202,7 +202,7 @@ for (const item of items) { console.log(item); if (item.chat) { - await importChat(localStorage.token, item.chat, item?.meta ?? {}, pinned, folderId); + await importChat(localStorage.token, item.chat, item?.meta ?? {}, pinned, folderId, item.created_at, item.updated_at); } }