我正在测试 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()
但这会覆盖之前的索引
vector_store_lancedb = LanceDBVectorStore(uri=LANCEDB_URI, mode="append") “append”关键字成功了