From 72577519930b5daeb2aae7aa2ee40c54c923b9cf Mon Sep 17 00:00:00 2001 From: Thuc Pham <51660321+thucpn@users.noreply.github.com> Date: Fri, 1 Mar 2024 15:04:10 +0700 Subject: [PATCH] fix: empty store bugs (#592) Co-authored-by: Marcus Schiesser <mail@marcusschiesser.de> --- .changeset/healthy-penguins-pretend.md | 5 +++++ packages/core/src/storage/docStore/KVDocumentStore.ts | 8 ++++---- packages/core/src/storage/kvStore/SimpleKVStore.ts | 3 +++ .../core/src/storage/vectorStore/SimpleVectorStore.ts | 3 +++ 4 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 .changeset/healthy-penguins-pretend.md diff --git a/.changeset/healthy-penguins-pretend.md b/.changeset/healthy-penguins-pretend.md new file mode 100644 index 000000000..531e2f8bc --- /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 a14c1c5cd..c18d233c1 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 b0ba190d5..5af9d719a 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 355838b2b..6caa439f4 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(); } -- GitLab