8000 GitHub - infiniflow/infinity at nightly
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

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

License

Notifications You must be signed in to change notification settings

infiniflow/infinity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Infinity logo

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

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.

๐Ÿ”ฎ Powerful search

  • 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.10+.

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.6.0.dev3

Run a vector search

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

0