vlite
一个简单且极速的向量数据库
无需设置数据库,无需运行服务器,也无需复杂配置。只需安装vlite即可开始使用。随身携带CTX文件到任何地方。它就像浏览器cookie,但存储的是嵌入向量。
特性
- 🔥 使用二进制嵌入实现最快的向量数据库检索,搜索50万文档不到1.1秒
- 🔋 为RAG而生 -- 内置mixedbread embed-large嵌入生成
- 🍪 CTX(上下文)文件格式,一种存储用户上下文的新型抽象,类似浏览器cookie
- 支持导入文本、PDF、CSV、PPTX和网页
- 支持分块、元数据过滤、PDF OCR提取扫描PDF中的文本
- 索引速度比Chroma快>77.95%,检索速度快>422%,磁盘占用小>3.6倍
- 🦜 自vlite v0.2.2起可在LangChain中使用
安装
pip install vlite
安装带PDF OCR支持的版本
要启用PDF OCR支持(使用surya),请安装vlite[ocr]
额外包:
pip install vlite[ocr]
使用方法
from vlite import VLite
from vlite.utils import process_pdf
vdb = VLite()
vdb.add("hello world", metadata={"artist": "adele"})
vdb.add(process_pdf("attention-is-all-you-need.pdf", use_ocr=True))
results = vdb.retrieve("how do transformers work?")
print(results)
在LangChain中使用
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import VLite
# 加载文档并分割成块
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)
关于
vlite是为代理、ChatGPT插件和其他需要快速简单数据库存储向量的AI应用而构建的向量数据库。它的开发是为了支持ChatWith+ ChatGPT插件生成、索引和排序的数十亿嵌入向量,该插件服务于数百万用户。大多数向量数据库要么每天反复崩溃,要么对于所需的高吞吐量来说太昂贵。
vlite引入了CTX文件格式,它像浏览器cookie一样用于用户嵌入向量,提供高效的存储、嵌入向量检索、可组合性、可移植性和用户上下文。
许可证
AGPL-3.0 许可证