enh: restore tags from chat import

This commit is contained in:
Timothy J. Baek 2024-10-20 18:02:41 -07:00
parent 30eb43f5b8
commit d23252b8a9
4 changed files with 16 additions and 1 deletions

View File

@ -65,6 +65,7 @@ class ChatForm(BaseModel):
class ChatImportForm(ChatForm):
meta: Optional[dict] = {}
pinned: Optional[bool] = False
folder_id: Optional[str] = None
@ -139,6 +140,7 @@ class ChatTable:
else "New Chat"
),
"chat": form_data.chat,
"meta": form_data.meta,
"pinned": form_data.pinned,
"folder_id": form_data.folder_id,
"created_at": int(time.time()),

View File

@ -110,6 +110,16 @@ async def create_new_chat(form_data: ChatForm, user=Depends(get_verified_user)):
async def import_chat(form_data: ChatImportForm, user=Depends(get_verified_user)):
try:
chat = Chats.import_chat(user.id, form_data)
if chat:
tags = chat.meta.get("tags", [])
for tag_id in tags:
tag_id = tag_id.replace(" ", "_").lower()
if (
tag_id != "none"
and Tags.get_tag_by_name_and_user_id(tag_id, user.id) is None
):
Tags.insert_new_tag(tag_id, user.id)
return ChatResponse(**chat.model_dump())
except Exception as e:
log.exception(e)

View File

@ -35,6 +35,7 @@ export const createNewChat = async (token: string, chat: object) => {
export const importChat = async (
token: string,
chat: object,
meta: object | null,
pinned?: boolean,
folderId?: string | null
) => {
@ -49,6 +50,7 @@ export const importChat = async (
},
body: JSON.stringify({
chat: chat,
meta: meta ?? {},
pinned: pinned,
folder_id: folderId
})

View File

@ -211,8 +211,9 @@
const importChatHandler = async (items, pinned = false, folderId = null) => {
console.log('importChatHandler', items, pinned, folderId);
for (const item of items) {
console.log(item);
if (item.chat) {
await importChat(localStorage.token, item.chat, pinned, folderId);
await importChat(localStorage.token, item.chat, item?.meta ?? {}, pinned, folderId);
}
}