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)