diff --git a/README.md b/README.md index e1a4831..791bb55 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,7 @@ Web UI 可以实现如下功能: - [x] VUE 前端 ## 项目交流群 -二维码 +二维码 🎉 langchain-ChatGLM 项目微信交流群,如果你也对本项目感兴趣,欢迎加入群聊参与讨论交流。 diff --git a/img/qr_code_33.jpg b/img/qr_code_33.jpg new file mode 100644 index 0000000..c9d9bde Binary files /dev/null and b/img/qr_code_33.jpg differ diff --git a/vectorstores/MyFAISS.py b/vectorstores/MyFAISS.py index bc8b85e..9e0ae17 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): @@ -53,10 +54,10 @@ class MyFAISS(FAISS, VectorStore): # This happens when not enough docs are returned. continue if i in self.index_to_docstore_id: - _id = self.index_to_docstore_id[i] + _id = self.index_to_docstore_id[i] # 执行接下来的操作 else: - continue + continue doc = self.docstore.search(_id) if (not self.chunk_conent) or ("context_expand" in doc.metadata and not doc.metadata["context_expand"]): # 匹配出的文本如果不需要扩展上下文则执行如下代码 @@ -117,8 +118,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: @@ -126,6 +129,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)