Secure. Private. Offline. Intelligent.
Features • Architecture • Tech Stack • Installation • API • Contributors
WOFO.AI is a state-of-the-art Retrieval-Augmented Generation (RAG) system engineered for enterprises. It allows organizations to securely ingest internal documentation—policies, technical manuals, legal contracts—and empowers employees to query this knowledge base using natural language.
Unlike public AI tools, WOFO ensures total data privacy by running a localized RAG pipeline where your sensitive data never leaves the controlled environment until it's processed for your specific query.
- � Offline & Air-Gapped Ready: Can be deployed in completely disconnected environments using local LLMs.
- �🔐 Enterprise Security: Role-based access control (RBAC) ensures data is only accessible to authorized personnel.
- 🧠 Context-Aware AI: Uses advanced vector embeddings to understand the meaning of your queries, not just keywords.
- ⚡ High Performance: Powered by Qdrant for millisecond-latency vector searches.
- 📂 Universal Ingestion: Support for PDF, DOCX, TXT, and XLSX formats.
| Category | Features |
|---|---|
| 🧠 Intelligent Core | • RAG Pipeline: Advanced retrieval system combining semantic search with LLM generation. • Smart Chunking: Automatically processes and chunks documents for optimal context. • Hybrid AI Engine: Switch between cloud models (Gemini) and fully offline local models (LLaMA/Mistral) for zero-data-leakage environments. |
| 🛡️ Security & Access | • Fully Offline Capable: Run entirely on your local infrastructure without internet access. • Role-Based Access: Granular permissions for Admins, Employees, and Users. • Data Isolation: Enterprise-grade data separation protocols. • Secure Auth: JWT-based authentication with encrypted password storage. |
| ⚡ Performance | • Vector Search: High-speed similarity search using Qdrant (Runs Locally). • Scalable Architecture: Dockerized services for easy horizontal scaling. • Optimized Backend: Node.js & Express for non-blocking I/O. |
| 🖥️ User Interface | • Modern Dashboard: React-based UI with Tailwind CSS. • Chat History: Persistent conversation memory. • File Management: Drag-and-drop uploads with real-time status. |
The system follows a modular microservices-ready architecture:
graph TD
User[👤 User / Employee] -->|Queries| Frontend[💻 React Frontend]
Admin[👔 Admin] -->|Uploads Docs| Frontend
subgraph "Application Layer"
Frontend -->|API Requests| Backend[⚙️ Node.js/Express Server]
Backend -->|Auth| AuthDB[(🍃 MongoDB Users)]
end
subgraph "RAG Pipeline"
Backend -->|1. Extract Text| Parser[📄 Document Parser]
Parser -->|2. Chunk & Embed| Embedder[🧠 HF Sentence Transformer]
Embedder -->|3. Store/Retrieve vectors| VectorDB[(🦁 Qdrant Vector DB)]
Backend <-->|4. Get Context + History| VectorDB
Backend -->|5. Send Context + Prompt| LLM[🤖 Gemini / LLaMA]
LLM -->|6. Answer| Backend
end
- Framework: React 18
- Styling: Tailwind CSS, FontAwesome
- Animations: Framer Motion
- State/Routing: React Router DOM
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (Metadata, Chat Logs), Qdrant (Vector Embeddings)
- AI Integration:
@google/generative-ai,@xenova/transformers - File Processing:
pdf-parse,mammoth,multer
- Containerization: Docker
- Version Control: Git
- API Testing: Postman
Follow these steps to deploy WOFO locally.
- Node.js (v18+)
- Docker Desktop (for Qdrant)
- MongoDB (Local or Atlas URI)
git clone https://github.com/your-org/wofo-ai.git
cd wofo-aicd backend
npm installCreate a .env file in the backend directory:
PORT=5000
MONGO_URI=mongodb://localhost:27017/wofo_ai
JWT_SECRET=your_super_secret_key_here
GEMINI_API_KEY=your_google_gemini_api_keycd ../frontend
npm installStart Qdrant using Docker:
docker run -d -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
qdrant/qdrantBackend:
# In backend terminal
npm start
# Server will run on http://localhost:5000Frontend:
# In frontend terminal
npm start
# Client will open at http://localhost:3000Detailed documentation is available in backend/API_DOCUMENTATIONI.md.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/upload/ingestion |
Ingest: Upload PDF/DOCX, chunk, embed, and store in Qdrant. |
POST |
/api/search/retrieval |
Query: Retrieve relevant context and generate an AI answer. |
POST |
/api/chatbot/query |
Chat: Conversational endpoint with memory focus. |
GET |
/api/files |
List: Get all uploaded documents (Admin). |
Built with ❤️ for the Future of Enterprise Knowledge by Ahad Dangarvawala