diff --git a/.changeset/healthy-penguins-pretend.md b/.changeset/healthy-penguins-pretend.md new file mode 100644 index 0000000000000000000000000000000000000000..531e2f8bcc8e0a6c00754eb34e845f3b4019023c --- /dev/null +++ b/.changeset/healthy-penguins-pretend.md @@ -0,0 +1,5 @@ +--- +"llamaindex": patch +--- + +fixed removeRefDocNode and persist store on delete diff --git a/packages/core/src/storage/docStore/KVDocumentStore.ts b/packages/core/src/storage/docStore/KVDocumentStore.ts index a14c1c5cda348162e4c996ba7142a0815cddb46f..c18d233c1fad966874719a351491095093ebdc75 100644 --- a/packages/core/src/storage/docStore/KVDocumentStore.ts +++ b/packages/core/src/storage/docStore/KVDocumentStore.ts @@ -1,4 +1,4 @@ -import _, * as lodash from "lodash"; +import _ from "lodash"; import type { BaseNode } from "../../Node.js"; import { ObjectType } from "../../Node.js"; import { DEFAULT_NAMESPACE } from "../constants.js"; @@ -123,10 +123,10 @@ export class KVDocumentStore extends BaseDocumentStore { const refDocInfo = await this.kvstore.get(refDocId, this.refDocCollection); if (!_.isNil(refDocInfo)) { - lodash.pull(refDocInfo.docIds, docId); + !_.pull(refDocInfo.nodeIds, docId); - if (refDocInfo.docIds.length > 0) { - this.kvstore.put(refDocId, refDocInfo.toDict(), this.refDocCollection); + if (refDocInfo.nodeIds.length > 0) { + this.kvstore.put(refDocId, refDocInfo, this.refDocCollection); } this.kvstore.delete(refDocId, this.metadataCollection); } diff --git a/packages/core/src/storage/kvStore/SimpleKVStore.ts b/packages/core/src/storage/kvStore/SimpleKVStore.ts index b0ba190d5d9caf7f1377fe59dcfd305c8c3933b1..5af9d719aefaa5243459d6efcf0c302687d1fc9a 100644 --- a/packages/core/src/storage/kvStore/SimpleKVStore.ts +++ b/packages/core/src/storage/kvStore/SimpleKVStore.ts @@ -54,6 +54,9 @@ export class SimpleKVStore extends BaseKVStore { ): Promise<boolean> { if (key in this.data[collection]) { delete this.data[collection][key]; + if (this.persistPath) { + await this.persist(this.persistPath, this.fs); + } return true; } return false; diff --git a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts index 355838b2b949150139aa99a2124ede3b0e4c8a36..6caa439f4ae20abdd44e4c3082248d33cedd1eaa 100644 --- a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts +++ b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts @@ -82,6 +82,9 @@ export class SimpleVectorStore implements VectorStore { delete this.data.embeddingDict[textId]; delete this.data.textIdToRefDocId[textId]; } + if (this.persistPath) { + await this.persist(this.persistPath, this.fs); + } return Promise.resolve(); }