refac: tagging behaviour

This commit is contained in:
Timothy J. Baek 2024-10-21 01:30:22 -07:00
parent 8d71323009
commit fc6dc43a19
2 changed files with 13 additions and 6 deletions

View File

@ -644,12 +644,12 @@ async def delete_tag_by_id_and_tag_name(
############################ ############################
# DeleteAllChatTagsById # DeleteAllTagsById
############################ ############################
@router.delete("/{id}/tags/all", response_model=Optional[bool]) @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) chat = Chats.get_chat_by_id_and_user_id(id, user.id)
if chat: if chat:
Chats.delete_all_tags_by_id_and_user_id(id, user.id) 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: 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) Tags.delete_tag_by_name_and_user_id(tag, user.id)
chat = Chats.get_chat_by_id_and_user_id(id, user.id) return True
tags = chat.meta.get("tags", [])
return Tags.get_tags_by_ids_and_user_id(tags, user.id)
else: else:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED, detail=ERROR_MESSAGES.NOT_FOUND status_code=status.HTTP_401_UNAUTHORIZED, detail=ERROR_MESSAGES.NOT_FOUND

View File

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