/infinity

AI-native database

Primary LanguageC++MIT LicenseMIT

The AI-native database for next-generation AI apps

What is Infinity

Infinity is an AI-native database that can be used with large language models (LLMs) to meet typical To B (business-to-business) applications such as internal enterprise search, specific industry search, internal AI assistants, and chatbots.

Key features

  • Mixed data type query: Besides embeddings generated by LLMs, Infinity also stores structured and semi-structured data and supports mixed data type queries on top of them.

  • Multi-collection query: Traditional vector databases only supports queries on one collection.

  • Multi-embedding query

  • Unified APIs

  • High concurrency query

Build Infinity from source

Requirements

  • Operating system: Ubuntu 22.04, openSUSE Tumbleweed 20230828 or higher

  • GCC 13 / Clang-18 or higher to support C++23

  • CMake 3.10 or higher

  • Git

Step1 Download Infinity source code

$ git clone https://github.com/infiniflow/infinity.git

Step2 Install dependency

On Ubuntu,

$ sudo apt install g++-13 bison flex cmake libomp-18-dev libblas-dev liblapack-dev libboost1.81-dev liburing-dev
# if use clang++
$ wget https://apt.llvm.org/llvm.sh
$ chmod +x llvm.sh
$ sudo ./llvm.sh 18

On OpenSUSE Tumbleweed,

$ sudo zypper install ccache gcc-c++ gcc-fortran flex bison boost-devel libopenblas_pthreads-devel blas-devel lapack-devel cblas-devel libomp16-devel liburing-devel
$ export CC=/usr/lib64/ccache/gcc
$ export CXX=/usr/lib64/ccache/g++

Step3 Build source code

$ cd infinity && mkdir build && cd build
$ cmake ..
$ make -j 6

Step4 Start up Infinity server

$ ./src/infinity_main