Skip to content

code0monkey1/RAG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 RAG Chat Assistant

A production-ready Retrieval-Augmented Generation (RAG) system that combines vector search with LLM capabilities to answer questions from your documents.

Node.js Pinecone Groq Express


PREVIEW: RAG

🎯 What is RAG?

Retrieval-Augmented Generation (RAG) is an AI architecture that enhances LLM responses by retrieving relevant context from a knowledge base before generating answers. This eliminates hallucinations and enables AI to answer questions about your private documents.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           RAG ARCHITECTURE                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    πŸ“„ Document                    πŸ” Query                      πŸ’¬ Response
        β”‚                              β”‚                              β–²
        β–Ό                              β–Ό                              β”‚
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Chunking β”‚                 β”‚  Embed    β”‚                 β”‚    LLM    β”‚
  β”‚  & Embed  β”‚                 β”‚  Query    β”‚                 β”‚  Generate β”‚
  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
        β”‚                              β”‚                              β”‚
        β–Ό                              β–Ό                              β”‚
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                    β”‚
  β”‚           πŸ—„οΈ PINECONE VECTOR DATABASE        β”‚β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  β”‚                                             β”‚     Retrieved
  β”‚   [β–ˆβ–ˆβ–ˆβ–ˆ] doc-1    similarity: 0.92         β”‚     Context
  β”‚   [β–ˆβ–ˆβ–ˆβ–ˆ] doc-2    similarity: 0.87         β”‚
  β”‚   [β–ˆβ–ˆβ–ˆβ–ˆ] doc-3    similarity: 0.81         β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✨ Features

Feature Description
πŸ“€ Document Upload Upload PDFs and text files via web UI
πŸ” Semantic Search Find relevant content using vector similarity
🎯 Reranking Improve search accuracy with BGE reranker
πŸ’¬ Chat Interface Modern, responsive chat UI
🧠 LLM Integration Groq's Llama 3.3 70B for fast responses
πŸ“Š Context Display View retrieved sources for transparency
πŸ”„ Session Memory Multi-turn conversations with context

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              SYSTEM OVERVIEW                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

                                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                   β”‚   Browser   β”‚
                                   β”‚  (Chat UI)  β”‚
                                   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                          β”‚
                           HTTP POST /api/chat, /api/ingest
                                          β”‚
                                          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           EXPRESS.JS SERVER                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”               β”‚
β”‚  β”‚   /api/chat     β”‚  β”‚  /api/ingest    β”‚  β”‚  /api/health    β”‚               β”‚
β”‚  β”‚                 β”‚  β”‚                 β”‚  β”‚                 β”‚               β”‚
β”‚  β”‚  β€’ Receive msg  β”‚  β”‚  β€’ Upload file  β”‚  β”‚  β€’ Index stats  β”‚               β”‚
β”‚  β”‚  β€’ RAG search   β”‚  β”‚  β€’ Chunk text   β”‚  β”‚  β€’ Health check β”‚               β”‚
β”‚  β”‚  β€’ LLM call     β”‚  β”‚  β€’ Store embeds β”‚  β”‚                 β”‚               β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚                     β”‚
            β–Ό                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     PINECONE      β”‚   β”‚    PDF LOADER     β”‚   β”‚       GROQ        β”‚
β”‚   Vector Store    β”‚   β”‚   Text Splitter   β”‚   β”‚   LLM (Llama 3)   β”‚
β”‚                   β”‚   β”‚                   β”‚   β”‚                   β”‚
β”‚ β€’ Store vectors   β”‚   β”‚ β€’ Parse PDFs      β”‚   β”‚ β€’ Generate answer β”‚
β”‚ β€’ Semantic search β”‚   β”‚ β€’ Chunk @ 500     β”‚   β”‚ β€’ Tool calling    β”‚
β”‚ β€’ BGE reranking   β”‚   β”‚ β€’ 100 overlap     β”‚   β”‚ β€’ Fast inference  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ installed
  • Pinecone account (free tier works)
  • Groq account (free tier works)

1. Clone & Install

git clone <your-repo-url>
cd RAG
npm install

2. Environment Setup

Create a .env file:

# Pinecone - Get from https://console.pinecone.io
PINECONE_API_KEY=pcsk_xxxxxxxxxxxxx

# Groq - Get from https://console.groq.com
GROQ_API_KEY=gsk_xxxxxxxxxxxxx

# Optional
OPENAI_API_KEY=sk-xxxxxxxxxxxxx

3. Create Pinecone Index

The index uses integrated embeddings (Pinecone generates embeddings automatically):

# First time only - creates index with llama-text-embed-v2 model
npm run dev

Or manually via Pinecone CLI:

pc index create -n rag-embedded-index -m cosine -c aws -r us-east-1 \
  --model llama-text-embed-v2 --field_map text=content

4. Start the Server

npm start
# or for development with hot reload:
npm run server

5. Open the App

Navigate to http://localhost:3000 and start chatting!


πŸ“ Project Structure

RAG/
β”œβ”€β”€ πŸ“„ server.js          # Express server with API endpoints
β”œβ”€β”€ πŸ“„ index.js           # Document ingestion utilities
β”œβ”€β”€ πŸ“ public/
β”‚   └── πŸ“„ index.html     # Chat interface (single-page app)
β”œβ”€β”€ πŸ“ data/              # Sample documents
β”œβ”€β”€ πŸ“ uploads/           # Temporary upload storage
β”œβ”€β”€ πŸ“„ package.json       # Dependencies
β”œβ”€β”€ πŸ“„ .env               # Environment variables
└── πŸ“„ README.md          # You are here!

πŸ”Œ API Reference

Chat Endpoint

POST /api/chat
Content-Type: application/json

{
  "message": "What are the key ML concepts?",
  "sessionId": "optional-session-id"
}

Response:

{
  "response": "Based on the knowledge base, key ML concepts include...",
  "toolsUsed": ["rag_search"],
  "context": "[Source 1] (Score: 0.92)\nML basics include..."
}

Document Ingestion

POST /api/ingest
Content-Type: multipart/form-data

file: <PDF or TXT file>

Response:

{
  "success": true,
  "message": "Successfully ingested document.pdf",
  "chunksCreated": 15,
  "totalRecords": 24
}

Health Check

GET /api/health

Response:

{
  "status": "ok",
  "index": "rag-embedded-index",
  "records": 24
}

🎨 Data Flow Diagrams

Document Ingestion Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        DOCUMENT INGESTION PIPELINE                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

  πŸ“„ PDF/TXT File
       β”‚
       β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚   Upload    │───▢│   Parse     │───▢│   Chunk     │───▢│   Store     β”‚
  β”‚   (Multer)  β”‚    β”‚ (PDFLoader) β”‚    β”‚ (500 chars) β”‚    β”‚ (Pinecone)  β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                              β”‚
                                              β–Ό
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚  Chunk 1: "..."  β”‚
                                    β”‚  Chunk 2: "..."  β”‚
                                    β”‚  Chunk 3: "..."  β”‚
                                    β”‚      ...         β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                              β”‚
                                              β–Ό
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚    Pinecone     β”‚
                                    β”‚  Auto-Embeds    β”‚
                                    β”‚  (llama-text)   β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Query Processing Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          QUERY PROCESSING FLOW                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

  πŸ‘€ User: "What is transformer architecture?"
       β”‚
       β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Groq LLM   │──── Decides to call rag_search tool
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚                     PINECONE SEARCH                              β”‚
  β”‚                                                                  β”‚
  β”‚   Query: "transformer architecture"                              β”‚
  β”‚                           β”‚                                      β”‚
  β”‚                           β–Ό                                      β”‚
  β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
  β”‚   β”‚              SEMANTIC SEARCH (Top 6)                     β”‚   β”‚
  β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
  β”‚                           β”‚                                      β”‚
  β”‚                           β–Ό                                      β”‚
  β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
  β”‚   β”‚           BGE RERANKER (Top 3)                          β”‚   β”‚
  β”‚   β”‚                                                          β”‚   β”‚
  β”‚   β”‚   #1 [0.92] "Transformer architecture uses attention..." β”‚   β”‚
  β”‚   β”‚   #2 [0.87] "Attention mechanism allows the model..."    β”‚   β”‚
  β”‚   β”‚   #3 [0.81] "Tokenization is the process of..."          β”‚   β”‚
  β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Groq LLM   │──── Generates answer using retrieved context
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  πŸ’¬ "Transformer architecture is a neural network design that uses
      self-attention mechanisms to process sequences..."

πŸ› οΈ Tech Stack

Category Technology Purpose
Runtime Node.js 18+ JavaScript runtime
Server Express 5.x HTTP server & routing
Vector DB Pinecone Vector storage & search
Embeddings llama-text-embed-v2 Text to vectors (integrated)
Reranker bge-reranker-v2-m3 Result reranking
LLM Groq (Llama 3.3 70B) Response generation
PDF Parsing LangChain PDFLoader Document extraction
Chunking RecursiveCharacterTextSplitter Text segmentation
File Upload Multer Multipart form handling

πŸ“Š Performance Characteristics

Metric Value Notes
Embedding Dimension 1024 llama-text-embed-v2
Chunk Size 500 chars With 100 char overlap
Search + Rerank ~200ms Pinecone serverless
LLM Response ~1-3s Groq inference
Max Upload ~10MB PDF/TXT files

πŸ”§ Configuration Options

Chunking Strategy

Modify in server.js:

const splitter = new RecursiveCharacterTextSplitter({
    chunkSize: 500,      // Characters per chunk
    chunkOverlap: 100    // Overlap between chunks
});

Search Parameters

const results = await index.namespace(NAMESPACE).searchRecords({
    query: {
        topK: 6,  // Initial candidates
        inputs: { text: query }
    },
    rerank: {
        model: "bge-reranker-v2-m3",
        topN: 3,  // Final results after reranking
        rankFields: ["content"]
    }
});

🚧 Future Improvements

  • Multi-file batch upload - Upload multiple documents at once
  • Document management - Delete/update specific documents
  • Namespace support - Separate knowledge bases per user/topic
  • Streaming responses - Real-time token streaming
  • Authentication - User login and access control
  • Analytics dashboard - Query logs and usage metrics
  • Hybrid search - Combine semantic + keyword search

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing)
  5. Open a Pull Request

πŸ“œ License

MIT License - feel free to use this project for learning or production!


πŸ™ Acknowledgments

  • Pinecone for vector database infrastructure
  • Groq for blazing-fast LLM inference
  • LangChain for document processing utilities

Built with ❀️ for the AI Engineering community

⭐ Star this repo β€’ πŸ› Report Bug β€’ ✨ Request Feature

About

AI chatbot using RAG

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published