vlite
VLite 是一个简单且极速的向量数据库,它允许您使用嵌入(embeddings)以语义方式存储和检索数据。VLite 使用 numpy 构建,是一个轻量级的“自带电池”数据库,可用于实现 RAG(检索增强生成)、相似性搜索和将嵌入集成到您的项目中。
您需要安装 langchain-community 才能使用此集成:pip install -qU langchain-community
安装
要在 LangChain 中使用 VLite,您需要安装 vlite 包:
!pip install vlite
导入 VLite
from langchain_community.vectorstores import VLite
API Reference:VLite
基本示例
在此基本示例中,我们加载一个文本文档,并将其存储在 VLite 向量数据库中。然后,我们执行相似性搜索以根据查询检索相关文档。
VLite 会为您处理文本分块和嵌入,您可以通过预先分块文本和/或将这些分块嵌入到 VLite 数据库中来更改这些参数。
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
# 加载文档并将其分割成块
loader = TextLoader("path/to/document.txt")
documents = loader.load()
# 创建一个 VLite 实例
vlite = VLite(collection="my_collection")
# 将文档添加到 VLite 向量数据库
vlite.add_documents(documents)
# 执行相似性搜索
query = "What is the main topic of the document?"
docs = vlite.similarity_search(query)
# 打印最相关的文档
print(docs[0].page_content)
API Reference:TextLoader | CharacterTextSplitter
添加文本和文档
您可以使用 add_texts 和 add_documents 方法分别将文本或文档添加到 VLite 向量数据库。
# 将文本添加到 VLite 向量数据库
texts = ["This is the first text.", "This is the second text."]
vlite.add_texts(texts)
# 将文档添加到 VLite 向量数据库
documents = [Document(page_content="This is a document.", metadata={"source": "example.txt"})]
vlite.add_documents(documents)