Home

Awesome

<div align="center"> <a href="https://aquila.network"> <img src="https://user-images.githubusercontent.com/19545678/133918727-5a37c6be-676f-427b-8c86-dd50f58d1287.png" alt="Aquila Network Logo" height="64" /> </a> <br /> <p> <h3> <b> Aquila DB </b> </h3> </p> <p> <b> Easy to use Neural Search Engine </b> </p> <br/> </div>

Aquila DB is a Neural search engine. In other words, it is a database to index Latent Vectors generated by ML models along with JSON Metadata to perform k-NN retrieval. It is dead simple to set up, language-agnostic, and drop in addition to your Machine Learning Applications. Aquila DB, as of current features is a ready solution for Machine Learning engineers and Data scientists to build Neural Information Retrieval applications out of the box with minimal dependencies.

This project is still in alpha version & we're already using it in production to power semantic search at https://aquila.network.

Wanna support this project? Yes, we love getting a star ⭐ and shout-out 🗣️ 🤗

Join Community chat and get support: discord chatroom for discussions

Who is this for

Technology

Aquila DB powers search features of Aquila Network. Here is where Aquila DB fits in the entire ecosystem:

<div align="center"> <img src="https://user-images.githubusercontent.com/19545678/133918438-997af8ec-67ef-4f7c-95ab-16d2f28e79e3.png" alt="Aquila DB Architecture" height="400" /> <br/> </div>

If you are serious and wanna dive down the rabbit hole, read our whitepapers and technical specifications (being actively worked on).

As a side note, everything in Aquila Network is defined by the specifications and a large chunk of our efforts goes into it. We also maintain quality implementations of those specifications with non-technical users in mind. This is to make sure that - Aquila Network is fully open, decentralized by design, and Fair. You can follow those specifications to implement your alternative software and still interact with the network without any restrictions.

Install

Debian

Run curl -s -L https://raw.githubusercontent.com/Aquila-Network/AquilaDB/master/install.sh | /bin/bash -s -- -d 1 .

Docker

You need docker installed in your system

Build image (lite): docker build https://raw.githubusercontent.com/Aquila-Network/AquilaDB/master/Dockerfile -t aquiladb:local

Build image (big data): docker build https://raw.githubusercontent.com/Aquila-Network/AquilaDB/master/DockerfileBig -t aquiladb:localbg

Run image (to deploy Aquila DB lite): docker run -p 5001:5001 -d aquiladb:local

Run image (to deploy Aquila DB big): docker run -p 5001:5001 -d aquiladb:localbg

Client SDKs

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

Python

Node JS

Where to get private key (wallet key) for client authentication

When you use a client library to authenticate with AquilaDB, you might need access the same private key (wallet key) used by AquilaDB. This key is located inside /ossl/ directory within AquilaDB docker container (in your computer if you have installed AquilaDB directly without docker). To access the keys inside your AquilaDB container, follow below steps:

tips for advanced users

If your pipeline requires the private keys to be generated in advance, you can do it in your host machine and then mount it to the container's /ossl/ directory.

Run:

mkdir -p <host>/ossl/
openssl genrsa -passout pass:1234 -des3 -out <host>/ossl/private.pem 2048
openssl rsa -passin pass:1234 -in <host>/ossl/private.pem -outform PEM -pubout -out <host>/ossl/public.pem
openssl rsa -passin pass:1234 -in <host>/ossl/private.pem -out <host>/ossl/private_unencrypted.pem -outform PEM

Progress

This project is still and will be under active development with intermediate production releases. It can either be used as a standalone database or as a participating node in Aquila Network. Please note, Aquila Port (peer-peer network layer for Aquila DB nodes) is also a work in progress. Currently, you need to deploy your custom models to feed vector embeddings to Aquila DB, until Aquila Hub developments get started.

Contribute

We have prepared a document to get anyone interested to contribute, immediately started with Aquila DB. Here is our high-level release roadmap.

Learn

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

Video:

<img alt="introduction to Neural Information retrieval with AquilaDB" src="http://img.youtube.com/vi/-VYpjpLXU5Q/0.jpg" width="300" />

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:

<br/><br/>

<h1 align="center">Our Sponsors</h1> <p align="center"><b></b></p> <br/>

email us to sponsor this project adbadmin@protonmail.ch.

<br/><br/>

Citing Aquila DB

If you use Aquila DB in an academic paper, we would 😍 to be cited. Here are the two ways of citing Aquila DB:

\footnote{https://github.com/Aquila-Network/AquilaDB}
@misc{AquilaNetwork2019AquilaDB,
  title={AquilaDB: Neural Search Engine},
  author={Jubin Jose, Nibin Peter},
  howpublished={\url{https://github.com/Aquila-Network/AquilaDB}},
  year={2019}
}

License

Apache License 2.0 license file

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