RagsApp solves a common startup problem: most important updates are shared on WhatsApp first as PDFs, screenshots, invoices, notes, policies, client docs, and voice updates.
But the AI workflow is still broken for daily use. People keep doing this loop:
- Download from WhatsApp.
- Open ChatGPT/Gemini/Claude/NotebookLM.
- Upload file again.
- Ask questions.
- Repeat for every new message/document.
That loop kills speed, breaks context, and creates friction for teams that need answers now.
RagsApp is built to remove that friction with a WhatsApp-native RAG experience:
- Forward the file or image to RagsApp.
- Ask your question in the same chat.
- Get context-grounded answers instantly.
- Use text or voice notes, whichever is faster.
No extra app-hopping. No repeated download-upload cycle. Just forward and ask where work already happens.
In a college group, teachers/monitors share notes, PDFs, notices, and screenshots regularly.
Instead of downloading each file and uploading to multiple AI tools every time, students can forward documents directly to RagsApp on WhatsApp and ask:
- "Summarize Unit 3"
- "What are important 10-mark questions?"
- "Where is the assignment deadline mentioned?"
Accountants, finance teams, managers, and operations teams receive invoices, statements, policy docs, and reports daily.
Instead of repeatedly downloading and re-uploading those files to external tools, they can forward documents to RagsApp and ask:
- "Give me payment due dates"
- "List all penalties and clauses"
- "Summarize this report for leadership"
For many users, opening a banking website or navigating app menus for every query is frustrating. WhatsApp is faster and already familiar.
With RagsApp-style support workflows, a customer can:
- Share bank-related documents (policy PDFs, statements, loan terms) and ask questions in WhatsApp.
- Ask direct questions without uploading documents when they only need quick help.
Examples:
- "What is the foreclosure charge in this loan document?"
- "Summarize my credit card statement fees."
- "How can I update my registered mobile number?"
- "What are the current home loan interest rate options?"
- Turns WhatsApp into an AI knowledge interface for real team workflows.
- Reduces turnaround time from "find + download + upload" to "forward + ask".
- Keeps context in one place instead of splitting work across multiple tools.
- Useful for students, startup teams, finance/ops roles, and document-heavy collaboration.
Based on publicly visible positioning on Puch AI (multi-language chat, fact-checking, image/video generation, stickers, games), the product appears focused on broad assistant and entertainment use cases.
RagsApp is intentionally focused on a different core problem: document-grounded, workflow-centric Q&A inside WhatsApp.
- Instead of generic chat, RagsApp is built for file-driven knowledge retrieval.
- Instead of "download, upload, ask" across multiple tools, users can forward and ask in one WhatsApp thread.
- It supports practical support workflows, including:
- doc-based Q&A (policies, statements, invoices, notes, reports)
- question-only support when no document upload is needed
In short: general WhatsApp AI assistants are great for broad conversational help, while RagsApp is optimized for WhatsApp-native RAG on real business and support documents.
- Star the repo
- Fork the repo
- Clone and open project
git clone https://github.com/negativenagesh/RagsApp.git
cd RagsApp- Install uv (if not installed)
- Initialize uv project files (only if needed)
uv init- Create and activate virtual environment
uv venv
source .venv/bin/activate- Sync dependencies
uv sync- RAG service: 8001
- Ingestion service: 8002
- WhatsApp gateway: 8003
-
OpenAI
- Required: API key
- Get: OpenAI API Keys
-
Elasticsearch Cloud
- Required: Elasticsearch URL and API key
- Get: Elastic Cloud
-
Twilio WhatsApp (optional mode)
- Required:
TWILIO_ACCOUNT_SID,TWILIO_AUTH_TOKEN,TWILIO_PHONE_NUMBER - Get: Twilio Console
- Docs: Twilio WhatsApp Docs
- Required:
-
Meta WhatsApp Cloud API (optional mode)
- Required:
WHATSAPP_META_ACCESS_TOKEN,WHATSAPP_META_PHONE_NUMBER_ID,WHATSAPP_META_VERIFY_TOKEN - Get: Meta WhatsApp Docs
- Required:
Root .env example:
OPEN_AI_KEY=xxxxxxxxxx
OPENAI_MODEL=gpt-4o-mini-2024-07-18
OPENAI_SUMMARY_MODEL=gpt-4.1-nano-2025-04-14
OPENAI_EMBEDDING_MODEL=text-embedding-3-large
OPENAI_EMBEDDING_DIMENSIONS=3072
RAG_UPLOAD_ELASTIC_URL=xxxxxxxxxx
ELASTICSEARCH_API_KEY=xxxxxxxxxx
INGESTION_API_URL=http://localhost:8002/ingest
RAG_API_URL=http://localhost:8001/rag-search
WHATSAPP_PROVIDER=meta
WHATSAPP_META_ACCESS_TOKEN=xxxxxxxxxx
WHATSAPP_META_PHONE_NUMBER_ID=xxxxxxxxxx
WHATSAPP_META_WABA_ID=xxxxxxxxxx
WHATSAPP_META_GRAPH_VERSION=v25.0
WHATSAPP_META_VERIFY_TOKEN=xxxxxxxxxx
TWILIO_ACCOUNT_SID=xxxxxxxxxx
TWILIO_AUTH_TOKEN=xxxxxxxxxx
TWILIO_PHONE_NUMBER=whatsapp:+xxxxxxxxxxservices/whatsapp_gateway/.env example:
TWILIO_ACCOUNT_SID=xxxxxxxxxx
TWILIO_AUTH_TOKEN=xxxxxxxxxx
TWILIO_PHONE_NUMBER=whatsapp:+xxxxxxxxxx
WHATSAPP_PROVIDER=meta
WHATSAPP_META_ACCESS_TOKEN=xxxxxxxxxx
WHATSAPP_META_PHONE_NUMBER_ID=xxxxxxxxxx
WHATSAPP_META_WABA_ID=xxxxxxxxxx
WHATSAPP_META_GRAPH_VERSION=v25.0
WHATSAPP_META_VERIFY_TOKEN=xxxxxxxxxx
INGESTION_API_URL=http://localhost:8002/ingest
RAG_API_URL=http://localhost:8001/rag-search
SUPERVISOR_ENABLED=true
SUPERVISOR_FAIL_OPEN=true
SUPERVISOR_USE_LLM_ROUTER=true
SUPERVISOR_NONRAG_MODEL=gpt-4o-mini
SUPERVISOR_CONFIDENCE_THRESHOLD=0.65
SUPERVISOR_MEMORY_ENABLED=true
SUPERVISOR_MEMORY_INDEX=ragsapp_conversation_memory
SUPERVISOR_MEMORY_TTL_SECONDS=3600
RETRIEVAL_TOP_K_DEFAULT=6
RETRIEVAL_TOP_K_MIN=2
RETRIEVAL_TOP_K_MAX=20
RAG_SYNC_TIMEOUT_SECONDS=120
RAG_STREAM_TIMEOUT_SECONDS=180Supervisor behavior summary:
- The gateway routes greetings/date-time/small talk without calling RAG.
- Document-grounded prompts route to retrieval.
- Recent repeated queries can be served from conversation memory.
- If routing confidence is low and
SUPERVISOR_FAIL_OPEN=true, the gateway falls back to RAG for safety.
- Open root
.envandservices/whatsapp_gateway/.env. - Set
WHATSAPP_PROVIDERto one of:
WHATSAPP_PROVIDER=twilioWHATSAPP_PROVIDER=meta
- Save files.
- Restart
services/whatsapp_gatewayservice.
Run each service in a separate terminal.
- RAG service
cd services/rag_service
uv run --active uvicorn app.main:app --host 0.0.0.0 --port 8001- Ingestion service
cd services/ingestion_service
uv run --active uvicorn app.main:app --host 0.0.0.0 --port 8002- WhatsApp gateway
cd services/whatsapp_gateway
uv run --active uvicorn app.main:app --host 0.0.0.0 --port 8003This project has one root Dockerfile that is reused by all services in docker-compose.yml.
Start all services:
docker compose up --build -dStop all services:
docker compose downCheck status:
docker compose psCheck logs:
docker compose logs -fHealth checks:
curl http://localhost:8001/health
curl http://localhost:8002/health
curl http://localhost:8003/healthngrok is a separate process. It is not started automatically by Dockerfile or docker compose.
Run ngrok in a separate terminal after your services are up:
ngrok http 8003Copy the HTTPS forwarding URL shown by ngrok and build:
https://<your-ngrok-domain>/webhook
Keep ngrok running while you test.
- Set
WHATSAPP_PROVIDER=twilio. - Set Twilio credentials in env.
- Restart
services/whatsapp_gatewayafter env changes.
- Open Twilio Console > Messaging > Try it out > WhatsApp Sandbox.
- In Sandbox settings, find When a message comes in.
- Set webhook URL to:
https://<your-ngrok-domain>/webhook
- Set method to
HTTP POST. - Click Save.
- In Twilio Sandbox page, copy your join instruction.
- Send the exact join text to Twilio Sandbox number from your phone:
join <your-sandbox-keyword>
Example: if Twilio shows join camera-pour, send exactly that text.
- Wait for Twilio's confirmation reply that your number is connected.
- Open WhatsApp chat with the Twilio Sandbox number.
- Send a text question like:
Summarize my uploaded document. - Send a file/image/document in the same chat (PDF, DOCX, image, etc.).
- Ask follow-up questions in the same thread.
- Set
WHATSAPP_PROVIDER=meta. - Set Meta credentials in env.
- Restart
services/whatsapp_gatewayafter env changes.
- Open Meta Developers > Your App > WhatsApp > Configuration.
- Open Webhooks configuration.
- Set Callback URL to:
https://<your-ngrok-domain>/webhook
- Set Verify token equal to
WHATSAPP_META_VERIFY_TOKENfrom your env. - Click Verify and Save.
- Subscribe webhook fields:
messagesmessage_status
- Open WhatsApp chat with your Meta-connected business number.
- Send a text question to start a conversation.
- Send a file/image/document in the same chat.
- Ask follow-up questions in text (or voice note if enabled in your setup).
http://localhost:8001/healthhttp://localhost:8002/healthhttp://localhost:8003/health


