AI 原生数据库,专为 LLM 应用打造,提供极速的稠密向量、稀疏向量、张量与全文混合搜索能力。
Infinity 是一款尖端的 AI 原生数据库,为稠密向量、稀疏向量、张量、全文及结构化数据等丰富数据类型提供全面的搜索能力。它强力支撑各种大型语言模型(LLM)应用,包括搜索、推荐、问答、对话式 AI、辅助编程、内容生成以及众多 RAG(检索增强生成)应用。
Infinity 集高性能、灵活性、易用性于一身,并具备众多旨在解决下一代 AI 应用挑战的特性:
更多详情请参阅基准测试报告。
支持广泛的数据类型,包括字符串、数值、向量等。
本章节指导您使用 Docker 部署 Infinity 数据库,以独立的客户端和服务器进程方式运行。
sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity
docker pull infiniflow/infinity:nightly
docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly
如果您使用 Windows 10+,必须启用 WSL 或 WSL2 才能使用 Docker 部署 Infinity。假设您已在 WSL2 中安装 Ubuntu:
bash
sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity
docker pull infiniflow/infinity:nightly
docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly
pip install infinity-sdk==0.7.0
import infinity
infinity_obj = infinity.connect(infinity.NetworkAddress("<SERVER_IP_ADDRESS>", 23817))
db_object = infinity_object.get_database("default_db")
table_object = db_object.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})
table_object.insert([{"num": 1, "body": "unnecessary and harmful", "vec": [1.0, 1.2, 0.8, 0.9]}])
table_object.insert([{"num": 2, "body": "Office for Harmful Blooms", "vec": [4.0, 4.2, 4.3, 4.5]}])
res = table_object.output(["*"])
.match_dense("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2)
.to_pl()
print(res)
如果您希望使用独立进程的服务器和客户端二进制文件来部署 Infinity,请参阅使用二进制文件部署 Infinity 指南。
请参阅从源码构建指南。