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)