浏览代码

refac: tagging behaviour

Timothy J. Baek 6 月之前
父节点
当前提交
fc6dc43a19
共有 2 个文件被更改,包括 13 次插入6 次删除
  1. 3 5
      backend/open_webui/apps/webui/routers/chats.py
  2. 10 1
      src/lib/components/chat/Chat.svelte

+ 3 - 5
backend/open_webui/apps/webui/routers/chats.py

@@ -644,12 +644,12 @@ async def delete_tag_by_id_and_tag_name(
 
 
 ############################
-# DeleteAllChatTagsById
+# DeleteAllTagsById
 ############################
 
 
 @router.delete("/{id}/tags/all", response_model=Optional[bool])
-async def delete_all_chat_tags_by_id(id: str, user=Depends(get_verified_user)):
+async def delete_all_tags_by_id(id: str, user=Depends(get_verified_user)):
     chat = Chats.get_chat_by_id_and_user_id(id, user.id)
     if chat:
         Chats.delete_all_tags_by_id_and_user_id(id, user.id)
@@ -658,9 +658,7 @@ async def delete_all_chat_tags_by_id(id: str, user=Depends(get_verified_user)):
             if Chats.count_chats_by_tag_name_and_user_id(tag, user.id) == 0:
                 Tags.delete_tag_by_name_and_user_id(tag, user.id)
 
-        chat = Chats.get_chat_by_id_and_user_id(id, user.id)
-        tags = chat.meta.get("tags", [])
-        return Tags.get_tags_by_ids_and_user_id(tags, user.id)
+        return True
     else:
         raise HTTPException(
             status_code=status.HTTP_401_UNAUTHORIZED, detail=ERROR_MESSAGES.NOT_FOUND

+ 10 - 1
src/lib/components/chat/Chat.svelte

@@ -49,6 +49,8 @@
 	import {
 		addTagById,
 		createNewChat,
+		deleteTagById,
+		deleteTagsById,
 		getAllTags,
 		getChatById,
 		getChatList,
@@ -1912,6 +1914,14 @@
 
 	const setChatTags = async (messages) => {
 		if (!$temporaryChatEnabled) {
+			const currentTags = await getTagsById(localStorage.token, $chatId);
+			if (currentTags.length > 0) {
+				const res = await deleteTagsById(localStorage.token, $chatId);
+				if (res) {
+					allTags.set(await getAllTags(localStorage.token));
+				}
+			}
+
 			let generatedTags = await generateTags(
 				localStorage.token,
 				selectedModels[0],
@@ -1922,7 +1932,6 @@
 				return [];
 			});
 
-			const currentTags = await getTagsById(localStorage.token, $chatId);
 			generatedTags = generatedTags.filter(
 				(tag) => !currentTags.find((t) => t.id === tag.replaceAll(' ', '_').toLowerCase())
 			);