一、软件介绍
文末提供程序及源码下载
Infinity开源程序包 是一个尖端的 AI 原生数据库,为密集向量、稀疏向量、张量、全文和结构化数据等丰富的数据类型提供广泛的搜索功能。它为各种LLM应用程序提供强大的支持,包括搜索、推荐、问答、对话式 AI、副驾驶、内容生成以及更多 RAG(检索增强生成)应用程序。
二、主要特点
Infinity 具有高性能、灵活性、易用性和许多功能,旨在应对下一代 AI 应用程序面临的挑战:
速度极快
- 在百万级向量数据集上实现 0.1 毫秒的查询延迟和 15K+ QPS。
- 在 33M 文档的全文搜索中实现 1 毫秒的延迟和 12K+ QPS。
有关更多信息,请参阅 Benchmark 报告。
强大的搜索功能
- 除了筛选之外,还支持密集嵌入、稀疏嵌入、张量和全文的混合搜索。
- 支持多种类型的重新排名器,包括 RRF、加权和和 ColBERT。
丰富的数据类型
支持多种数据类型,包括字符串、数字、矢量等。
易用性
- 直观的 Python API。请参阅 Python API
- 无依赖项的单二进制架构,使部署变得轻而易举。
- 作为模块嵌入到 Python 中,对 AI 开发人员友好。
开始使用
Infinity 支持两种工作模式:嵌入式模式和客户端-服务器模式。Infinity 的嵌入式模式使您能够快速将 Infinity 嵌入到 Python 应用程序中,而无需连接到单独的后端服务器。下面显示了如何在嵌入式模式下作:
pip install infinity-embedded-sdk==0.6.0.dev3
使用 Infinity 执行密集向量搜索:
import infinity_embedded
# Connect to infinity
infinity_object = infinity_embedded.connect("/absolute/path/to/save/to")
# Retrieve a database object named default_db
db_object = infinity_object.get_database("default_db")
# Create a table with an integer column, a varchar column, and a dense vector column
table_object = db_object.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})
# Insert two rows into the table
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]}])
# Conduct a dense vector search
res = table_object.output(["*"])
.match_dense("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2)
.to_pl()
print(res)
💡有关 Infinity 的 Python API 的更多信息,请参阅 Python API 参考。
三、软件下载
本文信息来源于GitHub作者地址:https://github.com/infiniflow/infinity