Skip to content

infiniflow/infinity

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
December 24, 2023 17:12
December 22, 2023 12:06
December 22, 2023 20:42
December 20, 2023 21:29
December 22, 2023 20:42
src
December 22, 2023 21:48
December 18, 2023 14:13
December 22, 2023 20:42
December 20, 2023 21:29
December 21, 2023 15:11
November 8, 2023 21:07

The AI-native database built for LLM applications, providing incredibly fast vector and full-text search

Roadmap 2024 | Twitter | Discord | YouTube |

Infinity is a cutting-edge AI-native database that provides a wide range of search capabilities for rich data types such as vectors, 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.

๐ŸŒŸ 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 on million-scale vector datasets.
  • Up to 10K QPS on million-scale vector datasets.

See the Benchmark.

๐Ÿ”ฎ Fused search

Supports a fused search of multiple embeddings and full text, in addition to filtering.

๐Ÿ” 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.

๐ŸŽฎ Get Started

Docker pull

docker pull infiniflow/infinity
docker run -d --name infinity -v /tmp/infinity/:/tmp/infinity --network=host infiniflow/infinity bash ./opt/bin/infinity

Install Infinity's Python client

pip install infinity_sdk 

Import necessary modules

import infinity
import infinity.index as index
from infinity.common import REMOTE_HOST

Connect to the remote server

infinity_obj = infinity.connect(REMOTE_HOST)

Get a database

db = infinity_obj.get_database("default")

Create a table

# Drop my_table if it already exists
db.drop_table("my_table", if_exists=True)
# Create a table named "my_table"
table=db.create_table("my_table", {"num": "integer", "body": "varchar", "vec": "vector, 4, float"}, None)

Insert two records

table.insert([{"num": 1, "body": "unnecessary and harmful", "vec": [1.0, 1.2, 0.8, 0.9]}])
table.insert([{"num": 2, "body": "Office for Harmful Blooms", "vec": [4.0, 4.2, 4.3, 4.5]}])

Execute a vector search

res = table.output(["*"]).knn("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2).to_pl()
print(res)

๐Ÿ’ก For more information about the Python API, see the Python API Reference.

๐Ÿ› ๏ธ Build from Source

See Build from Source.

๐Ÿ“œ Roadmap

See the Infinity Roadmap 2024

๐Ÿ™Œ Community