使用向量存储索引(VectorStoreIndex)
概念解释
向量存储(Vector Stores)是检索增强生成(RAG)的关键组件,因此你几乎会在使用LlamaIndex构建的每个应用程序中直接或间接地使用它们。
向量存储接受一组节点对象,并从中构建索引。
将数据加载到索引中
基本用法
使用向量存储的最简单方法是加载一组文档并使用from_documents
方法从中构建索引:
from llama_index import VectorStoreIndex, SimpleDirectoryReader
# 加载文档并构建索引
documents = SimpleDirectoryReader('data_directory').load_data()
index = VectorStoreIndex.from_documents(documents)
提示:
如果你在命令行中使用from_documents
,可以通过传递show_progress=True
来显示索引构建过程中的进度条。
当你使用from_documents
时,你的文档会被分割成块并解析为节点对象,这些节点对象是文本字符串的轻量级抽象,用于跟踪元数据和关系。
有关如何加载文档的更多信息,请参阅[理解加载](Understanding Loading)。
默认情况下,VectorStoreIndex会将所有内容存储在内存中。有关如何使用持久向量存储的更多信息,请参阅下面的“使用向量存储”部分。
提示:
默认情况下,VectorStoreIndex将以2048个节点的批次生成和插入向量。如果你内存受限(或有充足的内存),可以通过传递insert_batch_size=2048
和你所需的批次大小来修改这一点。
这在插入到远程托管的向量数据库时特别有用。
使用摄取管道创建节点
如果你想要更多控制文档的索引方式,我们建议使用摄取管道。这允许你自定义分块、元数据和节点的嵌入。
from llama_index import Document