Apache License 2.0

项目介绍

infiniflow/infinity 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 Apache License 2.0 许可证,目前获得 4.8k 个 Star、458 次 Fork。

仓库全名
infiniflow/infinity
开源许可证
Apache License 2.0
Star 数
4.8k
Fork 数
458
未关闭 Issue
150

README 摘要

The AI-native database built for LLM applications, providing incredibly fast hybrid search of dense embedding, sparse embedding, tensor and full-text Document | Benchmark | Twitter | Discord Infinity is a cutting-edge AI-native database that provides a wide range of search capabilities for rich data types such as dense vector, sparse vector, tensor, full-text, and structured data. It provides robust support for…

完整内容见 GitHub 原始 README 或本页 。

常见问题

infinity 用什么语言开发?

主要使用 C++ 编写,采用 Apache License 2.0 许可证,目前有 4.8k 个 Star。

infinity 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 infinity 的源码?

可以直接克隆仓库:git clone https://github.com/infiniflow/infinity.git;安装与运行步骤见仓库 README。

infinity 最近还在维护吗?

仓库最近一次更新为 1 天前,当前有 150 个未关闭 Issue;Star 数为 4.8k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

The AI-native database built for LLM applications, providing incredibly fast hybrid search of dense vector, sparse vector, tensor (multi-vector), and full-text.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

C
C++
CMake
CSS
Go
JavaScript
Lex
Python
Shell
Thrift
TypeScript
Yacc

Release

README

Infinity logo

The AI-native database built for LLM applications, providing incredibly fast hybrid search of dense embedding, sparse embedding, tensor and full-text

Document | Benchmark | Twitter | Discord

Infinity is a cutting-edge AI-native database that provides a wide range of search capabilities for rich data types such as dense vector, sparse vector, tensor, full-text, and structured data. It provides robust support for various LLM applications, including search, recommenders, question-answering, conversational AI, copilot, content generation, and many more RAG (Retrieval-augmented Generation) applications.

⚡️ Performance

Infinity performance comparison

🌟 Key Features

Infinity comes with high performance, flexibility, ease-of-use, and many features designed to address the challenges facing the next-generation AI applications:

🚀 Incredibly fast

  • Achieves 0.1 milliseconds query latency and 15K+ QPS on million-scale vector datasets.
  • Achieves 1 millisecond latency and 12K+ QPS in full-text search on 33M documents.

See the Benchmark report for more information.

  • Supports a hybrid search of dense embedding, sparse embedding, tensor, and full text, in addition to filtering.
  • Supports several types of rerankers including RRF, weighted sum and ColBERT.

🍔 Rich data types

Supports a wide range of data types including strings, numerics, vectors, and more.

🎁 Ease-of-use

  • Intuitive Python API. See the Python API
  • A single-binary architecture with no dependencies, making deployment a breeze.
  • Embedded in Python as a module and friendly to AI developers.

🎮 Get Started

This section provides guidance on deploying the Infinity database using Docker, with the client and server as separate processes.

Prerequisites

  • CPU: x86_64 with AVX2 support.
  • OS:
    • Linux with glibc 2.17+.
    • Windows 10+ with WSL/WSL2.
    • MacOS
  • Python: Python 3.11+.

Install Infinity server

Linux x86_64 & MacOS x86_64
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

If you are on Windows 10+, you must enable WSL or WSL2 to deploy Infinity using Docker. Suppose you’ve installed Ubuntu in WSL2:

  1. Follow this to enable systemd inside WSL2.

  2. Install docker-ce according to the instructions here.

  3. If you have installed Docker Desktop version 4.29+ for Windows: Settings > Features in development, then select Enable host networking.

  4. Pull the Docker image and start 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
    

Install Infinity client

pip install infinity-sdk==0.7.5
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)

🔧 Deploy Infinity using binary

If you wish to deploy Infinity using binary with the server and client as separate processes, see the Deploy infinity using binary guide.

🔧 Build from Source

See the Build from Source guide.

📚 Document

📜 Roadmap

See the Infinity Roadmap 2025

🙌 Community

评论

暂无评论