Guests get a private workspace tied to this browser. Sign in to sync across devices.
Backend not connected. Start your local backend or set the Backend URL.
Guest mode: your chat conversations are temporary and won't be saved.
Disclaimer: protoRAG⁺ can make mistakes.Tip: Type @filename to target a document · Shift+Enter for new line
Settings
Configuration & Storage
Running locally? Use http://localhost:8000 after
docker compose -f docker-compose.local.yml up.
Tunneling? Paste your tailscale / cloudflared URL. Blank = same-origin.
Path on the backend host where vector DB and documents are stored. Will be created if it doesn't exist.
Leave blank or "none" for local providers
Diagnostics
Provider quick-reference
Provider
Default base URL
API key
Ollama
http://localhost:11434
none
LM Studio
http://localhost:1234
lm-studio
LiteLLM
http://localhost:4000
any
OpenAI
https://api.openai.com/v1
sk-…
Anthropic
embed service URL (e.g. Ollama)
sk-ant-…
Custom
your endpoint
as needed
ℹ️ You don't need to add /v1 for Ollama or LM Studio — the backend appends it automatically.
Documentation
How protoRAG⁺ works
Dynamic RAG
protoRAG⁺ is a dynamic RAG system: each chat session has its own vector index that you can grow,
shrink, or empty at any time. Retrieval automatically engages or disengages based on whether the
session currently holds any documents — you never flip a mode switch yourself.
Quick Start — run locally with your own Ollama
Use the deployed website with your own LLM and your own storage. Run the backend on your machine
in one command — your documents and embeddings stay on your disk; the backend talks to Ollama on
localhost.
Install Ollama and pull a model: ollama pull gemma3
Remote URL → http://localhost:8000 (click Test to verify)
Base URL → http://localhost:11434
Provider → Ollama, then fill in your model names
Upload documents and chat. Everything stays on your machine — stop the container any time with docker stop protorag.
No Docker? Clone the repo and run pip install -r requirements.txt && python -m backend instead.
On Chrome, if the Test button fails, enable Insecure origins treated as secure for the site at
chrome://flags, or use Firefox.
1 · Session lifecycle
A new session starts in chat-only mode. Messages go straight to the LLM with no
retrieval — useful for plain conversation, brainstorming, or coding help.
The moment you upload your first document, the session promotes itself to
RAG mode. Every subsequent question is answered using context retrieved from your
documents.
Delete documents one by one and the index shrinks live. Once all documents are removed,
the session quietly drops back to chat-only mode — same chat, same history, no retrieval.
The chat / RAG indicator next to each session in the sidebar reflects this state.
2 · Document workflow
Upload one at a time or select many files at once — both work. Files are chunked,
embedded, and appended to the session's vector store on the fly.
Add more anytime. New uploads merge into the existing index without rebuilding —
ask questions immediately after.
Delete individually from the document list and only that file's chunks are removed
from the index. Other documents stay searchable.
Use @filename
in your message to restrict retrieval to specific documents in the session.
3 · Per-session isolation
Every session has its own vector collection and document folder under
./data/. Documents
uploaded in one session are never visible to another — switch sessions to switch corpora.
Tips
If you change the embedding model in Settings, re-upload documents — old vectors won't match the new model.
Supported formats: txt, csv, pdf, json, yaml, docx, xlsx, pptx, and more.
Configure provider, models, and remote backend URL from the Settings panel.