Quick Start¶
This guide walks you through the core workflow: start the app, create a notebook, upload a document, and get your first AI-powered answer with citations.
Step 0: Start the App¶
If you haven't already started the services:
cd beyond-retrieval-pythonv
cp .env.example .env # defaults to fully self-hosted (local Supabase)
python start_services.py --profile cpu --build
See Installation for details on profiles and configuration.
Step 1: Open the Dashboard¶
Navigate to your Beyond Retrieval instance:
- Docker: http://localhost:3000
- Bare-metal: http://localhost:5173
If authentication is bypassed (default in dev), you land directly on the Dashboard.
Step 2: Create a Notebook¶
- Click Create Notebook on the Dashboard.
- Fill in:
- Title — e.g., "Product Docs"
- Embedding Model — select
text-embedding-3-small(recommended) - Click Create.
Embedding Model is Permanent
The embedding model is locked after notebook creation. All documents in the notebook must share the same vector space. Choose carefully.
Step 3: Upload Documents¶
- Open your new notebook and navigate to the Documents page.
- Drag and drop files onto the upload area, or click to browse.
- Supported formats: PDF, DOCX, TXT, MD, CSV, XLSX.
- After uploading, click Ingest to start the processing pipeline.
The pipeline runs in the background:
Watch the status column — it progresses from Pending → Processing → Success.
Step 4: Ask a Question¶
- Navigate to the Chat page.
- Click + New Chat to create a conversation.
- Type your question, e.g.: "What is the cancellation policy?"
- Press Enter.
The RAG pipeline searches your documents, retrieves relevant chunks, and generates a cited answer:
Click on citation numbers to see the source text.
Step 5: Explore¶
Now that you have a working notebook, explore the other features:
| Feature | What to Try |
|---|---|
| Search Playground | Compare Fusion vs Semantic search on the same query |
| AI Enhancer | Enrich document chunks with AI-generated context |
| Intelligence Settings | Switch between OpenRouter, OpenAI, or Ollama |
| System Monitor | Check the health score of your knowledge base |
Using the API¶
You can also interact with Beyond Retrieval programmatically. Here's a complete example using Python:
import httpx
BASE = "http://localhost:8000/api"
# 1. Create a notebook
nb = httpx.post(f"{BASE}/notebooks/", json={
"title": "My API Notebook",
"embedding_model": "openai/text-embedding-3-small"
}).json()["data"]
notebook_id = nb["notebook_id"]
print(f"Created notebook: {notebook_id}")
# 2. Upload a file
with open("document.pdf", "rb") as f:
upload = httpx.post(
f"{BASE}/notebooks/{notebook_id}/documents/upload",
files={"files": ("document.pdf", f, "application/pdf")}
).json()["data"]
file_info = upload[0]
print(f"Uploaded: {file_info['file_name']}")
# 3. Start ingestion
httpx.post(f"{BASE}/notebooks/{notebook_id}/documents/ingest", json={
"files": [file_info],
"settings": {
"parser": "Docling Parser",
"chunking_strategy": "Recursive Chunking",
"chunk_size": 1000,
"chunk_overlap": 200
},
"notebook_name": "My API Notebook"
})
# 4. Wait for ingestion, then create a conversation
import time
time.sleep(10) # Wait for background processing
conv = httpx.post(f"{BASE}/notebooks/{notebook_id}/conversations", json={
"title": "First Chat"
}).json()["data"]
# 5. Ask a question
response = httpx.post(
f"{BASE}/notebooks/{notebook_id}/conversations/{conv['conversation_id']}/messages",
json={"content": "What are the main topics in this document?"}
).json()["data"]
print(response["assistant_message"]["content"])
See the API Reference for the complete endpoint catalog.
Next Steps¶
- Configuration — Environment variables and deployment options
- API Reference — Full endpoint documentation
- User Guide — Complete walkthrough of every feature