LLamaindex:如何将新文档添加到现有索引

问题描述 投票:0回答:1

我正在测试 RAG 系统,我有这段代码,它需要一个 pdf 文件,创建一个 lancedb 并查询它

from llama_index.core import VectorStoreIndex, Settings, StorageContext, Document, SimpleDirectoryReader, \
    load_index_from_storage
from llama_index.vector_stores.lancedb import LanceDBVectorStore
from llama_index.embeddings.huggingface import HuggingFaceEmbedding


vector_store = LanceDBVectorStore(lancedb)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
documents = SimpleDirectoryReader(input_files=["csr.pdf"]).load_data()
index = VectorStoreIndex.from_documents(
        documents, storage_context=storage_context, uri=lancedb
    )
query_engine = index.as_query_engine()
response = query_engine.query("Installation Example for CSR1000V Router")
print(response)

代码工作正常,但我的问题是:

如何向其中添加更多文档???

我知道我可以在这里传递多个文件:

documents = SimpleDirectoryReader(input_files=["csr.pdf"]).load_data()

甚至是完整的文件夹,但我想稍后添加文档。

如果我再写一遍:

documents = SimpleDirectoryReader(input_files=["new.pdf"]).load_data()
index = VectorStoreIndex.from_documents(
        documents, storage_context=storage_context, uri=lancedb
    )

这将始终覆盖之前的信息。

所以我的问题是如何将越来越多的pdf添加到我的lancedb???

我已经尝试过:

documents = SimpleDirectoryReader(input_files=["new.pdf"]).load_data()

但这会覆盖之前的索引

python-3.x
1个回答
0
投票

vector_store_lancedb = LanceDBVectorStore(uri=LANCEDB_URI, mode="append") “append”关键字成功了

© www.soinside.com 2019 - 2024. All rights reserved.