From 9b004f3d2f04f4ecbffad5b24325e2f9fe2d66a3 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Fri, 24 Oct 2025 17:38:22 +0800 Subject: [PATCH] feat: update document retrieval to include limit and offset parameters --- astrbot/core/db/vec_db/faiss_impl/embedding_storage.py | 1 + astrbot/core/knowledge_base/retrieval/sparse_retriever.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py b/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py index 581032aa7..2c0cc8dfe 100644 --- a/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +++ b/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py @@ -51,6 +51,7 @@ class EmbeddingStorage: f"向量维度不匹配, 期望: {self.dimension}, 实际: {vectors.shape[1]}" ) self.index.add_with_ids(vectors, np.array(ids)) + await self.save_index() async def search(self, vector: np.ndarray, k: int) -> tuple: """搜索最相似的向量 diff --git a/astrbot/core/knowledge_base/retrieval/sparse_retriever.py b/astrbot/core/knowledge_base/retrieval/sparse_retriever.py index 4275c3ef4..75ed8738b 100644 --- a/astrbot/core/knowledge_base/retrieval/sparse_retriever.py +++ b/astrbot/core/knowledge_base/retrieval/sparse_retriever.py @@ -73,7 +73,9 @@ class SparseRetriever: vec_db: FaissVecDB = kb_options.get(kb_id, {}).get("vec_db") if not vec_db: continue - result = await vec_db.document_storage.get_documents(metadata_filters={}) + result = await vec_db.document_storage.get_documents( + metadata_filters={}, limit=None, offset=None + ) chunk_mds = [json.loads(doc["metadata"]) for doc in result] result = [ {