Skip to content

The Redis of Machine Learning. Drop in solution for Neural Information Retrieval. Index latent vectors along with JSON metadata and do efficient k-NN search.

License

Notifications You must be signed in to change notification settings

sopaoglu/AquilaDB

 
 

Repository files navigation

version GitHub license Apache 2.0

docker build docker build ststus docker stars docker pulls

github open issues github closed issues github stars

Build Status

Do you like this project? We love getting a star ⭐ and shout-out 🗣️from you in return! 🤗

Community support: discord chatroom for discussions

Documentation

AquilaDB

AquilaDB is a vector database to store Feature Vectors along with JSON Document Metadata. Do k-NN retrieval from anywhere, even from the darkest rifts of Aquila (in progress). It is dead simple to set up, language agnostic and drop in addition for your Machine Learning Applications. AquilaDB, as of current features is ready solution for Machine Learning engineers and Data scientists to build Neural Information Retrieval applications out of the box with minimal dependencies (visit wiki page for use case examples).

AquilaDB 1.0 release is a distant goal to achieve. Visit contribute section below to see detailed development plan and milestones. We make sure that each release and AquilaDB Master branch are stable with all features planned up to date. All new pull requests are made to develop branch. So, develop is the default and bleeding edge branch with all the latest updates.

Github, Docker Hub, Documentation (dedicated Wiki page)

Who is this for

  • If you are working on a data science project and need to store a hell lot of data and retrieve similar data based on some feature vector, this will be a useful tool to you, with extra benefits a real world web application needs.
  • Are you dealing with a lot of images and related metadata? Want to find the similar ones? You are at the right place.
  • If you are looking for a document database, this is not the right place for you.

Technology

AquilaDB is not built from scratch. Thanks to OSS community, it is based on a couple of cool open source projects out there. We took a couch and added some wheels and jetpacks to make it a super cool butt rest for Data Science Engineers. While CouchDB provides us network and scalability benefits, FAISS and Annoy provides superfast similarity search. Along with our peer management service, AquilaDB provides a unique solution.

Prerequisites

You need docker installed.

Usage

AquilaDB is quick to setup and run as docker a container. All you need to do is either build it from source or pull it from Docker hub.

Option 1: build from source

  • clone this repository
  • build image: docker build -t ammaorg/aquiladb:latest .

Option 2: pull from dockerhub

  • pull image: docker pull ammaorg/aquiladb:latest

Finally, deploy

  • deploy: docker run -d -i -p 50051:50051 -v "<local data persist directory>:/data" -t ammaorg/aquiladb:latest

Client SDKs

We currently have multiple client libraries in progress to abstract the communication between deployed AquilaDB and your applications.

Python

Node JS

AquilaDB exposes gRPC APIs for the clients. Which means, you can communicate directly to AquilaDB from your favourite language (API reference). Above clients makes use of that to abstract the communication details from end user. If you are familiar with gRPC and would like to contribute a new client library in any other language, please let us know. Protocol buffers API reference. Example usage of APIs in node js.

Benchmark

For benchmark results, visit https://aquiladb.xyz/docs/adb-benchmarks

Progress

This project is still under active development (pre-release). It can be used as a standalone database now. Peer manager is a work in progress, so networking capabilities are not available now. With release v1.0 we will release pre-optimized version of AquilaDB.

Contribute

We have prepared a document to get anyone interested to contribute, immediately started with AquilaDB.

Here is our high level release roadmap.

Learn

We have started meeting developers and do small talks on AquilaDB. Here are the slides that we use on those occasions: http://bit.ly/AquilaDB-slides

Video:

introduction to Neural Information retrieval with AquilaDB

As of current AquilaDB release features, you can build Neural Information Retrieval applications out of the box without any external dependencies. Here are some useful links to learn more about it and start building:

License

Apache License 2.0 license file

created with ❤️ a-mma.indic (a_മ്മ)

About

The Redis of Machine Learning. Drop in solution for Neural Information Retrieval. Index latent vectors along with JSON metadata and do efficient k-NN search.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 58.9%
  • JavaScript 40.9%
  • Shell 0.2%