Skip to main content

infinity

Project description

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

🌟 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

Infinity supports two working modes, embedded mode and client-server mode. Infinity's embedded mode enables you to quickly embed Infinity into your Python applications, without the need to connect to a separate backend server. The following shows how to operate in embedded mode:

pip install infinity-embedded-sdk==0.5.0.dev2
  1. Use Infinity to conduct a dense vector search:
    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)
    

🔧 Deploy Infinity in client-server mode

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

🔧 Build from Source

See the Build from Source guide.

💡 For more information about Infinity's Python API, see the Python API Reference.

📚 Document

📜 Roadmap

See the Infinity Roadmap 2024

🙌 Community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

infinity_embedded_sdk-0.5.0.dev2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ x86-64

infinity_embedded_sdk-0.5.0.dev2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.11+ manylinux: glibc 2.17+ x86-64

infinity_embedded_sdk-0.5.0.dev2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ x86-64

File details

Details for the file infinity_embedded_sdk-0.5.0.dev2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for infinity_embedded_sdk-0.5.0.dev2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 415956b6ede30f129304d1b8f2d0be0f3e8376f459233356c97160fe7f5a9934
MD5 6748852880b1e75cf9f02e9e912b88f1
BLAKE2b-256 f4e2fdce58349f514b93d38ab6b67487d757b7f1926e31ab0ce30fbabd0e128a

See more details on using hashes here.

File details

Details for the file infinity_embedded_sdk-0.5.0.dev2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for infinity_embedded_sdk-0.5.0.dev2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15f0483fc4a16ec95678c1eb8b73037b0e4ee6931613548b4ebfa3e97598ec64
MD5 5613516e59f3c6955d90b9690145e9ac
BLAKE2b-256 facfa5412082a2d357c8ff1a6fae4f89c591ce398cd8cf674641a4db15f76ab6

See more details on using hashes here.

File details

Details for the file infinity_embedded_sdk-0.5.0.dev2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for infinity_embedded_sdk-0.5.0.dev2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0e4c6b9241c44591f0ab1f38055e0c0bdfbd3b3678901649014fb1ad67f68b2a
MD5 112eea9faa8136bc0e705df4b12d7436
BLAKE2b-256 fe7dc9d87fbdd5645aae34b0f607fc9f3251d0ed01e5eba422ffbf68e3de87c4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page