Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/infiniflow/infinity
The AI-native database built for LLM applications, providing incredibly fast full-text and vector search
https://github.com/infiniflow/infinity
ai-native approximate-nearest-neighbor-search bm25 cpp20 cpp20-modules database embedding full-text-search hnsw hybrid-search information-retrival llms nearest-neighbor-search operational-analytics rag retrieval-augmented-generation search-engine sql vector-database vector-search
Last synced: 15 days ago
JSON representation
The AI-native database built for LLM applications, providing incredibly fast full-text and vector search
- Host: GitHub
- URL: https://github.com/infiniflow/infinity
- Owner: infiniflow
- License: apache-2.0
- Created: 2022-07-18T13:52:38.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-15T01:30:54.000Z (2 months ago)
- Last Synced: 2024-04-15T02:06:12.945Z (2 months ago)
- Topics: ai-native, approximate-nearest-neighbor-search, bm25, cpp20, cpp20-modules, database, embedding, full-text-search, hnsw, hybrid-search, information-retrival, llms, nearest-neighbor-search, operational-analytics, rag, retrieval-augmented-generation, search-engine, sql, vector-database, vector-search
- Language: C++
- Homepage: https://infiniflow.org
- Size: 36.3 MB
- Stars: 1,570
- Watchers: 20
- Forks: 119
- Open Issues: 66
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- trackawesomelist - Infinity (⭐807) - The AI-native database built for LLM applications, providing incredibly fast vector and full-text search. \[Apache2] (Recently Updated / [Jan 12, 2024](/content/2024/01/12/README.md))
- my-awesome - infiniflow/infinity - The AI-native database built for LLM applications, providing incredibly fast vector and full-text search (C++)
- fucking-awesome-cpp - Infinity - The AI-native database built for LLM applications, providing incredibly fast vector and full-text search. [Apache2] (Database)
- awesome-cpp - Infinity - The AI-native database built for LLM applications, providing incredibly fast vector and full-text search. [Apache2] (Database)
- awesome-vector-search - Infinity - The AI-native database built for LLM applications, providing incredibly fast vector and full-text search
- awesome-vector-database - infinity
- awesome-machine-learning - Infinity - The AI-native database built for LLM applications, providing incredibly fast vector and full-text search. Developed using C++20 (Tools / General-Purpose Machine Learning)
- awesome-llmops - Infinity - native database built for LLM applications, providing incredibly fast vector and full-text search | ![GitHub Badge](https://img.shields.io/github/stars/infiniflow/infinity.svg?style=flat-square) | (Search / Vector search)
- awesome-list - infiniflow/infinity - The AI-native database built for LLM applications, providing incredibly fast full-text and vector search (C++)
- awesome-stars - infiniflow/infinity - The AI-native database built for LLM applications, providing incredibly fast full-text and vector search (sql)
README
![]()
The AI-native database built for LLM applications, providing incredibly fast full-text and vector search
Document |
Benchmark |
Twitter |
DiscordInfinity 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](#-key-features)
- [Get Started](#-get-started)
- [Document](#-document)
- [Roadmap](#-roadmap)
- [Community](#-community)## 🌟 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](https://infiniflow.org/docs/dev/benchmark) for more information.
### 🔮 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](https://infiniflow.org/docs/dev/python_api_reference)
- A single-binary architecture with no dependencies, making deployment a breeze.## 🎮 Get Started
### Deploy Infinity database
#### Deploy Infinity using Docker on Linux x86_64 and MacOS x86_64
```bash
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
```#### Deploy Infinity using binary package on Linux x86_64
You can download the binary package (deb, rpm, or tgz) for your respective host operating system from https://github.com/infiniflow/infinity/releases. The prebuilt packages are compatible with Linux distributions based on glibc 2.17 or later, for example, RHEL 7, Debian 8, Ubuntu 14.04.
Fedora/RHEL/CentOS/OpenSUSE
```bash
sudo rpm -i infinity-0.2.0-dev-x86_64.rpm
sudo systemctl start infinity
```Ubuntu/Debian
```bash
sudo dpkg -i infinity-0.2.0-dev-x86_64.deb
sudo systemctl start infinity
```
#### 🛠️ Build from SourceSee [Build from Source](https://infiniflow.org/docs/dev/build_from_source).
### Install Infinity's Python client
`infinity-sdk` requires Python 3.10+.
```bash
pip3 install infinity-sdk==0.2.0.dev4
```### Import necessary modules
```python
import infinity
import infinity.index as index
from infinity.common import REMOTE_HOST
from infinity.common import ConflictType
```### Connect to the remote server
```python
infinity_obj = infinity.connect(REMOTE_HOST)
```### Get a database
```python
db = infinity_obj.get_database("default_db")
```### Create a table
```python
# Drop my_table if it already exists
db.drop_table("my_table", ConflictType.Ignore)
# Create a table named "my_table"
table = db.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})
```### Insert two records
```python
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
```python
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](https://infiniflow.org/docs/dev/python_api_reference).
## Document
- [Quickstart](https://infiniflow.org/docs/dev/)
- [Python API](https://infiniflow.org/docs/dev/python_api_reference)
- [HTTP API](https://infiniflow.org/docs/dev/http_api_reference)
- [References](https://infiniflow.org/docs/dev/category/references)
- [FAQ](https://infiniflow.org/docs/dev/FAQ)## 📜 Roadmap
See the [Infinity Roadmap 2024](https://github.com/infiniflow/infinity/issues/338)
## 🙌 Community
- [Discord](https://discord.gg/jEfRUwEYEV)
- [Twitter](https://twitter.com/infiniflowai)
- [GitHub Discussions](https://github.com/infiniflow/infinity/discussions)