Aquiles-ai
Aquiles-RAG
Python

Is a high-performance Augmented Recovery-Generation (RAG) solution based on Redis, Qdrant or PostgreSQL. It offers a high-level interface using FastAPI REST APIs

Last updated Jan 23, 2026
30
Stars
2
Forks
0
Issues
0
Stars/day
Attention Score
26
Language breakdown
Python 64.8%
HTML 35.2%
โ–ธ Files click to expand
README

Aquiles-RAG

Aquiles-RAG

Self-hosted RAG infrastructure with MCP Server support
๐Ÿš€ FastAPI โ€ข Redis / Qdrant / PostgreSQL โ€ข Async โ€ข Embedding-agnostic โ€ข MCP Ready

PyPI Version Documentation PyPI Downloads Ask DeepWiki

๐ŸŽฏ What is Aquiles-RAG?

Aquiles-RAG is a production-ready RAG (Retrieval-Augmented Generation) API server that brings high-performance vector search to your applications. Choose your backend (Redis, Qdrant, or PostgreSQL), connect your embedding model, and start building intelligent search systems in minutes.

Why Aquiles-RAG?

| Challenge | Aquiles-RAG Solution | |-----------|----------------------| | ๐Ÿ’ธ Expensive vector databases | Use Redis, Qdrant, or PostgreSQL you already have | | ๐Ÿ”’ Data leaves your infrastructure | Everything runs on your servers | | ๐Ÿ”ง Complex RAG setup | Interactive wizard configures everything | | ๐ŸŒ Slow integrations | Async clients, batch operations, optimized pipelines | | ๐Ÿšซ Vendor lock-in | Switch backends without changing code |

Key Features

  • ๐Ÿ”Œ Backend Flexibility - Redis HNSW, Qdrant, or PostgreSQL pgvector
  • โšก High Performance - Async operations, batch processing, optimized search
  • ๐Ÿค– MCP Server Built-in - Native Model Context Protocol support for AI assistants
  • ๐Ÿ› ๏ธ Interactive Setup - CLI wizard configures your entire stack
  • ๐Ÿ”„ Sync & Async Clients - Python and TypeScript/JavaScript SDKs included
  • ๐Ÿ“Š Optional Re-ranking - Improve results with semantic re-scoring

๐Ÿš€ Quick Start

Installation

pip install aquiles-rag

Interactive Setup

Configure your vector database in seconds:

aquiles-rag configs

The wizard guides you through:

  • Backend selection (Redis, Qdrant, or PostgreSQL)
  • Connection settings (host, port, credentials)
  • TLS/gRPC options
  • Optional re-ranker configuration

Start Server

aquiles-rag serve --host "0.0.0.0" --port 5500

Your First RAG Query

from aquiles.client import AquilesRAG

client = AquilesRAG(host="http://127.0.0.1:5500", apikey="YOURAPI_KEY")

Create index

client.createindex("documents", embeddingsdim=768, dtype="FLOAT32")

Store document with your embedding function

def get_embedding(text): return yourembeddingmodel.encode(text)

client.send_rag( embeddingfunc=getembedding, index="documents", name_chunk="intro", raw_text="Your document text here..." )

Query

results = client.query("documents", queryembedding, topk=5) print(results)

That's it! You now have a working RAG system.

๐ŸŽจ Supported Backends

| Backend | Features | Best For | |---------|----------|----------| | Redis | HNSW indexing, fast in-memory search | Speed-critical applications | | Qdrant | HTTP/gRPC, collections, filters | Scalable production systems | | PostgreSQL | pgvector extension, SQL integration | Existing Postgres infrastructure |

All backends support:

  • Vector similarity search (cosine, inner product)
  • Metadata filtering
  • Batch operations
  • Optional re-ranking

๐Ÿค– MCP Server Integration

Aquiles-RAG includes a built-in Model Context Protocol server for seamless AI assistant integration.

Start MCP Server

aquiles-rag mcp-serve --host "0.0.0.0" --port 5500 --transport "sse"

Example with OpenAI Agent

from agents import Agent, Runner
from agents.mcp import MCPServerSse

Connect to MCP server

mcp_server = MCPServerSse({ "url": "http://localhost:5500/sse", "headers": {"X-API-Key": "YOURAPIKEY"} }) await mcp_server.connect()

Create agent with RAG tools

agent = Agent( name="RAG Assistant", instructi, mcpservers=[mcpserver], model="gpt-4" )

Agent now has access to:

- create_index

- send_info (store documents)

- query_rag (semantic search)

- list_indexes

- delete_index

result = await Runner.run(agent, "Store this document and find similar content")

MCP Tools Available:

  • Index management (create, list, delete)
  • Document ingestion with automatic chunking
  • Semantic search with configurable parameters
  • Metadata filtering

๐Ÿ’ป Client SDKs

Python - Async Client

from aquiles.client import AsyncAquilesRAG

client = AsyncAquilesRAG(host="http://127.0.0.1:5500", apikey="YOURAPI_KEY")

async def main(): # Create index await client.createindex("docs", embeddingsdim=1536) # Store documents (parallel chunking) await client.send_rag( embeddingfunc=asyncget_embedding, index="docs", namechunk="document1", rawtext=longtext, metadata={ "author": "John Doe", "source": "documentation" } ) # Query results = await client.query("docs", queryembedding, topk=5) print(results)

asyncio.run(main())

TypeScript/JavaScript

npm install @aquiles-ai/aquiles-rag-client
import { AsyncAquilesRAG } from '@aquiles-ai/aquiles-rag-client';
import OpenAI from 'openai';

const openai = new OpenAI({ apiKey: process.env.OPENAIAPIKEY });

async function getEmbedding(text: string): Promise<number[]> { const resp = await openai.embeddings.create({ model: "text-embedding-3-small", input: text, }); return resp.data[0].embedding; }

const client = new AsyncAquilesRAG({ host: 'http://127.0.0.1:5500', apiKey: 'your-api-key', });

// Create index (1536 dimensions for text-embedding-3-small) await client.createIndex('my_docs', 1536, 'FLOAT32');

// Store document await client.sendRAG( getEmbedding, 'my_docs', 'doc_1', 'Your document text...', { embeddingModel: 'text-embedding-3-small', metadata: { author: 'John Doe' } } );

// Query const queryEmb = await getEmbedding('What is this about?'); const results = await client.query('my_docs', queryEmb, { topK: 5 }); console.log(results);

๐Ÿ› ๏ธ Advanced Features

Optional Re-ranking

Improve search results with semantic re-scoring:

# Enable during setup wizard
aquiles-rag configs

Re-ranking refines results after vector search by scoring (query, document) pairs for better relevance.

Web UI Playground

Access the interactive UI:

http://localhost:5500/ui

Features:

  • Test index creation and queries
  • Inspect live configurations
  • Protected Swagger UI documentation
  • Real-time request/response monitoring

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         Clients                              โ”‚
โ”‚  HTTP/HTTPS โ€ข Python SDK โ€ข TypeScript SDK โ€ข MCP Server       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    FastAPI Server                            โ”‚
โ”‚  โ€ข Request validation                                        โ”‚
โ”‚  โ€ข Business logic orchestration                              โ”‚
โ”‚  โ€ข Optional re-ranking                                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   Vector Store                               โ”‚
โ”‚  Redis HNSW  โ€ข  Qdrant Collections  โ€ข  PostgreSQL pgvector  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Flow:

  • Client sends embedding + query parameters
  • Server validates and routes to vector store
  • Vector store returns top-k candidates
  • Optional re-ranker refines results
  • Formatted response returned to client

๐ŸŽฏ Use Cases

| Who | What | |-----|------| | ๐Ÿš€ AI Startups | Build RAG features without vendor costs | | ๐Ÿ‘จโ€๐Ÿ’ป Developers | Prototype semantic search quickly | | ๐Ÿข Enterprises | Private, scalable document search | | ๐Ÿ”ฌ Researchers | Experiment with embeddings and retrieval |

๐Ÿ“‹ Requirements

  • Python 3.9+
  • One of: Redis, Qdrant, or PostgreSQL with pgvector
  • pip or uv
Quick Redis Setup (Docker):
docker run -d --name redis-stack -p 6379:6379 redis/redis-stack-server:latest

PostgreSQL Note: Aquiles-RAG doesn't run automatic migrations. Create the pgvector extension and required tables manually before use.

๐Ÿ› ๏ธ Tech Stack

  • FastAPI - High-performance async API framework
  • Redis / Qdrant / PostgreSQL - Vector storage backends
  • NumPy - Efficient array operations
  • Pydantic - Request/response validation
  • HTTPX - Async HTTP client
  • Click - CLI framework

๐Ÿ“š REST API Examples

Create Index

curl -X POST http://localhost:5500/create/index \
  -H "X-API-Key: YOURAPIKEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "indexname": "documents",
    "embeddings_dim": 768,
    "dtype": "FLOAT32"
  }'

Insert Document

curl -X POST http://localhost:5500/rag/create \
  -H "X-API-Key: YOURAPIKEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "index": "documents",
    "namechunk": "doc1part1",
    "raw_text": "Document content...",
    "embeddings": [0.12, 0.34, ...]
  }'

Query

curl -X POST http://localhost:5500/rag/query-rag \
  -H "X-API-Key: YOURAPIKEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "index": "documents",
    "embeddings": [0.78, 0.90, ...],
    "top_k": 5,
    "cosinedistancethreshold": 0.6
  }'

โš ๏ธ Backend Notes

Redis:

  • Fast in-memory HNSW indexing
  • Full metrics via /status/ram
  • Supports HASH storage with COSINE search
Qdrant:
  • HTTP or gRPC connections
  • Collection-based organization
  • Limited metrics compared to Redis
PostgreSQL:
  • Requires manual pgvector setup
  • No automatic migrations
  • SQL-native filtering and joins
  • Check Postgres monitoring for metrics

๐Ÿ“– Documentation

๐Ÿค Contributing

We welcome contributions! See the test suite in test/ for examples:

  • Client SDK tests
  • API endpoint tests
  • Deployment validation

๐Ÿ“„ License

Apache License

โญ Star this project โ€ข ๐Ÿ› Report issues

Built with โค๏ธ for the AI community

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท Aquiles-ai/Aquiles-RAG ยท Updated daily from GitHub