Skip to content

Knexa is an open-source, enterprise-grade Retrieval-Augmented Generation (RAG) search engine designed to provide "Perplexity-like" capabilities for internal enterprise knowledge bases. It features a scalable microservices-ready architecture, hybrid search (Dense + Sparse), and a modular pipeline for custom embedding and generation strategies.

Notifications You must be signed in to change notification settings

Alkamal01/Knexa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Knexa - Enterprise Distributed RAG Search Engine

License: MIT Python FastAPI

Knexa is an open-source, enterprise-grade Retrieval-Augmented Generation (RAG) search engine designed to provide "Perplexity-like" capabilities for internal enterprise knowledge bases. It features a scalable microservices-ready architecture, hybrid search (Dense + Sparse), and a modular pipeline for custom embedding and generation strategies.

🚀 Key Features

  • Hybrid Search: Combines semantic understanding (Dense Vector Search via FAISS) with keyword precision (Sparse BM25).
  • Custom Pipeline: Flexible ingestion engine with intelligent chunking (Recursive Character Split).
  • Enterprise Ready: Built-in Audit Logging, configurable Pydantic settings, and structured error handling.
  • RAG Integration: Plug-and-play support for LLMs (OpenAI, standard integrations coming for vLLM/Ollama).
  • High Performance: Optimized for low-latency retrieval and generic async FastAPI endpoints.

🛠️ Tech Stack

  • Backend: Python 3.9+, FastAPI, Uvicorn
  • Vector Database: FAISS (Facebook AI Similarity Search)
  • NLP & Embeddings: SentenceTransformers (HuggingFace), NumPy, Scikit-learn
  • Storage: SQLite (Audit Logs), Local File Storage (Index)

📦 Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/knexa.git
    cd knexa
  2. Set up a virtual environment:

    python3 -m venv venv
    source venv/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Environment Variables: Create a .env file in the root directory:

    OPENAI_API_KEY=your_key_here
    DEBUG=True

⚡ Quick Start

Run the API server:

uvicorn app.main:app --reload

The API will be available at http://localhost:8000. You can access the automatic documentation at http://localhost:8000/docs.

Ingest Documents

curl -X POST "http://localhost:8000/ingest" \
     -H "Content-Type: application/json" \
     -d '[{"content": "Knexa is a great tool for enterprise search.", "metadata": {"source": "manual"}}]'

Search

curl -X POST "http://localhost:8000/search" \
     -H "Content-Type: application/json" \
     -d '{"query": "What is Knexa?", "top_k": 3}'

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to help build Knexa.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ by Kaftandev

About

Knexa is an open-source, enterprise-grade Retrieval-Augmented Generation (RAG) search engine designed to provide "Perplexity-like" capabilities for internal enterprise knowledge bases. It features a scalable microservices-ready architecture, hybrid search (Dense + Sparse), and a modular pipeline for custom embedding and generation strategies.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages