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.2
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
Metadata
Release files for infinity-embedded-sdk 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| infinity_embedded_sdk-0.5.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| infinity_embedded_sdk-0.5.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| infinity_embedded_sdk-0.5.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
Total release size: 50.6 MB
Release files / infinity_embedded_sdk-0.5.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | infinity_embedded_sdk-0.5.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 16.9 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
e34deca6c5e9c728197eb68951c4e8e5cfb4ce936d76e395bfcaf15ba7fc8a05
|
|
BLAKE2b-256 checksum How to use checksums |
16911ad29e96d150cd88c26ce1735e223d08cb1161b29cef1c942ad12182a792
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Release files / infinity_embedded_sdk-0.5.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | infinity_embedded_sdk-0.5.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 16.9 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
75a1d6b73877a2b8ae7b0bedd9538eebf68901ea9d179b9487a1dbd36c490147
|
|
BLAKE2b-256 checksum How to use checksums |
9e425cace9edd4976f1566106ee44ac2818f8a26a279235fd3742323de46380a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Release files / infinity_embedded_sdk-0.5.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | infinity_embedded_sdk-0.5.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 16.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f67d793af5c08751e23fdaafba22ec6d1ce2600d82f92f8e93d6279c763874fd
|
|
BLAKE2b-256 checksum How to use checksums |
365be63658bd31afe892b63e225377dbafe55a9941a279d8953b4d164a87a163
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|