From 2282320d412f04775bb2b5a20c7ba8741912043e Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Fri, 16 Jun 2023 23:51:20 +0800 Subject: [PATCH] fix bugs in MyFAISS.delete_doc --- vectorstores/MyFAISS.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vectorstores/MyFAISS.py b/vectorstores/MyFAISS.py index 0441789..a990be7 100644 --- a/vectorstores/MyFAISS.py +++ b/vectorstores/MyFAISS.py @@ -6,6 +6,7 @@ from langchain.docstore.base import Docstore from langchain.docstore.document import Document import numpy as np import copy +import os class MyFAISS(FAISS, VectorStore): @@ -113,8 +114,10 @@ class MyFAISS(FAISS, VectorStore): try: if isinstance(source, str): ids = [k for k, v in self.docstore._dict.items() if v.metadata["source"] == source] + vs_path = os.path.join(os.path.split(os.path.split(source)[0])[0], "vector_store") else: ids = [k for k, v in self.docstore._dict.items() if v.metadata["source"] in source] + vs_path = os.path.join(os.path.split(os.path.split(source[0])[0])[0], "vector_store") if len(ids) == 0: return f"docs delete fail" else: @@ -122,6 +125,9 @@ class MyFAISS(FAISS, VectorStore): index = list(self.index_to_docstore_id.keys())[list(self.index_to_docstore_id.values()).index(id)] self.index_to_docstore_id.pop(index) self.docstore._dict.pop(id) + # TODO: 从 self.index 中删除对应id + # self.index.reset() + self.save_local(vs_path) return f"docs delete success" except Exception as e: print(e)