mirror of
https://github.com/open-webui/open-webui
synced 2025-05-13 18:13:35 +00:00
feat: clear memory
This commit is contained in:
parent
8f83f51c68
commit
6139d775ef
@ -96,6 +96,15 @@ class MemoriesTable:
|
|||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def delete_memories_by_user_id(self, user_id: str) -> bool:
|
||||||
|
try:
|
||||||
|
query = Memory.delete().where(Memory.user_id == user_id)
|
||||||
|
query.execute()
|
||||||
|
|
||||||
|
return True
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
def delete_memory_by_id_and_user_id(self, id: str, user_id: str) -> bool:
|
def delete_memory_by_id_and_user_id(self, id: str, user_id: str) -> bool:
|
||||||
try:
|
try:
|
||||||
query = Memory.delete().where(Memory.id == id, Memory.user_id == user_id)
|
query = Memory.delete().where(Memory.id == id, Memory.user_id == user_id)
|
||||||
|
@ -108,7 +108,26 @@ async def reset_memory_from_vector_db(
|
|||||||
|
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# DeleteUserById
|
# DeleteMemoriesByUserId
|
||||||
|
############################
|
||||||
|
|
||||||
|
|
||||||
|
@router.delete("/user", response_model=bool)
|
||||||
|
async def delete_memory_by_user_id(user=Depends(get_verified_user)):
|
||||||
|
result = Memories.delete_memories_by_user_id(user.id)
|
||||||
|
|
||||||
|
if result:
|
||||||
|
try:
|
||||||
|
CHROMA_CLIENT.delete_collection(f"user-memory-{user.id}")
|
||||||
|
except Exception as e:
|
||||||
|
log.error(e)
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
# DeleteMemoryById
|
||||||
############################
|
############################
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,3 +121,35 @@ export const deleteMemoryById = async (token: string, id: string) => {
|
|||||||
|
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const deleteMemoriesByUserId = async (token: string) => {
|
||||||
|
let error = null;
|
||||||
|
|
||||||
|
const res = await fetch(`${WEBUI_API_BASE_URL}/memories/user`, {
|
||||||
|
method: 'DELETE',
|
||||||
|
headers: {
|
||||||
|
Accept: 'application/json',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
authorization: `Bearer ${token}`
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (!res.ok) throw await res.json();
|
||||||
|
return res.json();
|
||||||
|
})
|
||||||
|
.then((json) => {
|
||||||
|
return json;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
error = err.detail;
|
||||||
|
|
||||||
|
console.log(err);
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
import Modal from '$lib/components/common/Modal.svelte';
|
import Modal from '$lib/components/common/Modal.svelte';
|
||||||
import AddMemoryModal from './AddMemoryModal.svelte';
|
import AddMemoryModal from './AddMemoryModal.svelte';
|
||||||
import { deleteMemoryById, getMemories } from '$lib/apis/memories';
|
import { deleteMemoriesByUserId, deleteMemoryById, getMemories } from '$lib/apis/memories';
|
||||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||||
import { error } from '@sveltejs/kit';
|
import { error } from '@sveltejs/kit';
|
||||||
|
|
||||||
@ -134,10 +134,20 @@
|
|||||||
showAddMemoryModal = true;
|
showAddMemoryModal = true;
|
||||||
}}>Add memory</button
|
}}>Add memory</button
|
||||||
>
|
>
|
||||||
<!-- <button
|
<button
|
||||||
class=" px-3.5 py-1.5 font-medium text-red-500 hover:bg-black/5 dark:hover:bg-white/5 outline outline-1 outline-red-300 dark:outline-red-800 rounded-3xl"
|
class=" px-3.5 py-1.5 font-medium text-red-500 hover:bg-black/5 dark:hover:bg-white/5 outline outline-1 outline-red-300 dark:outline-red-800 rounded-3xl"
|
||||||
>Clear memory</button
|
on:click={async () => {
|
||||||
> -->
|
const res = await deleteMemoriesByUserId(localStorage.token).catch((error) => {
|
||||||
|
toast.error(error);
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
toast.success('Memory cleared successfully');
|
||||||
|
memories = [];
|
||||||
|
}
|
||||||
|
}}>Clear memory</button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user