HyperDB

HyperDB 是一个超快的本地向量数据库,主要用于与大型语言模型LLM)代理进行交互。这个项目的目标是提供一个简单的接口,与所有大型语言模型代理兼容,同时优化了 C++ 后端向量存储,并通过 MKL BLAS 实现硬件加速操作。

高级功能

HyperDB 允许用户使用高级功能对文档进行索引。这些功能包括 ids 和元数据,可以帮助你更好地理解和管理你的文档。

输入和输出

HyperDB 的输入通常是一组文档,这些文档可以是任何形式的文本数据,比如新闻文章、博客帖子、产品评论等。这些文档被转换成向量并存储在数据库中。保存的形式是一个文件,这个文件包含了所有的文档向量以及它们的元数据。

词嵌入技术

HyperDB 内部集成了词嵌入技术,如 Word2VecGloVeBERT 等,用于将文本转换为向量形式。这些向量能够捕捉到文本中的语义信息,使得相似的词或短语在向量空间中的距离更近。

示例

以下是使用 HyperDB 的一个示例,这个示例展示了如何使用 HyperDB 存储和查询包含所有 151 种原始宠物小精灵信息的文档。

import json
from hyperdb import HyperDB

# Load documents from the JSONL file
documents = []
with open("demo/pokemon.jsonl", "r") as f:
	for line in f:
		documents.append(json.loads(line))

# Instantiate HyperDB with the list of documents
db = HyperDB(documents, key="info.description")
# Save the HyperDB instance to a file
db.save("demo/pokemon_hyperdb.pickle.gz")
# Load the HyperDB instance from the save file
db.load("demo/pokemon_hyperdb.pickle.gz")
# Query the HyperDB instance with a text input
results = db.query("Likes to sleep.", top_k=5)

本文作者:Maeiee

本文链接:HyperDB

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!