Client
📱
iPad App
Swift / SwiftUI / MVVM
REST API calls → /api/v1/*
WebSocket → ws/transcribe/
Auth: JWT Bearer tokens
WebSocket → ws/transcribe/
Auth: JWT Bearer tokens
Orchestration
n8n Workflows
Agent orchestration (MVP)
NOT in backend code
Not Implemented
Edge Orchestrator
On-device Llama 3.5
Future â not for MVP
Anonymisation
PII/sensitive data masking
Designed, not coded
Emotion Engine
13-state tone adaptation
Prompts exist, no backend logic
Django Backend — 6 Apps /api/v1/
accounts
Auth & user profiles
User model (email-based auth)
built
JWT login + token refresh 5 endpoints
built
Outlook OAuth token storage
built
Password reset (sends to admins, not user)
issue
Celery task decorators commented out
issue
chats
AI pipeline & conversations
Conversations & Messages CRUD 8 endpoints
built
RAPTOR hierarchical retrieval (LLMRaptorView)
built
Query routing (Claude → classify)
built
General Q&A chain (Claude)
built
Internet search chain (Perplexity)
built
WebSocket audio transcription
built
QuestionLLM audit logging
built
Old AIAgent (routing) — dead code alongside RAPTOR
redundant
services
Projects, docs, files, config
Projects + Tasks + SubTasks 18 endpoints
built
File upload + folder hierarchy
built
RAPTOR indexing pipeline (Celery)
built
FalconiumConfig (prompt management)
built
PromptSetting (RAG tuning)
built
Documents (system/internal) admin-managed
built
Auto-creates project directory (signal)
built
mails
Outlook integration
OAuth callback + logout 18 endpoints
built
Inbox / Sent / Detail fetch
built
Send, reply, reply-all, forward
built
Bulk ops (delete, flag, read, importance)
built
No local models — fully stateless
no data
Emails not indexed in Weaviate / not searchable by AI
gap
meetings
Meeting records & tasks
Meeting CRUD + participants 9 endpoints
built
Meeting messages (speaker-attributed)
built
Meeting tasks + subtasks + attachments
built
Parts & roles per meeting
built
Transcript field exists but not indexed for RAG
gap
No auto-task generation from transcripts
planned
mcp_server
AI tool interface (JSON-RPC)
JSON-RPC endpoint 1 endpoint
built
6 MCP tools (docs, search, Q&A, list)
built
MCPToolConfig admin-managed registry
built
Duplicates RAPTOR agents from chats app
duplication
Separate Weaviate classes (RAPTORNode vs External_documents)
split
Query Pipeline — What happens when you ask Falconium a question
Input
iPad sends text
→
Router
Claude classifies query
→
Decision
Route to…
→
📚 Document retrieval → RAPTOR → Weaviate → Claude synthesises
🌐 Internet search → Perplexity sonar-pro → answer
💬 General Q&A → Claude direct → answer
All queries logged to QuestionLLM audit table · Prompts loaded from FalconiumConfig
Document Indexing Pipeline
Upload
File uploaded via API or admin
→
Extract
PDF / DOCX / TXT → text
→
Chunk
512 tokens, 50 overlap
→
RAPTOR
Build hierarchy tree (GMM clusters → summaries)
→
Index
Store in Weaviate
Two parallel pipelines:
User files →
External_documents class ·
System docs → RAPTORNode class ·
Runs as Celery background task
External Services
LLM Providers
Anthropic Claude
Routing, Q&A, RAPTOR synthesis
claude-3-5-haiku-latest
OpenAI
Embeddings + RAPTOR summaries
text-embedding-ada-002 · gpt-4o-mini
Perplexity
Web search + source attribution
sonar-pro
Data & Storage
Weaviate
Vector DB (hybrid search)
BS25 + vector
AWS S3
File storage (production)
Integrations
Microsoft Graph
Outlook email (OAuth 2.0)
Being replaced by WhisperKit
Being deprecated from critical path