Flask, RabbitMQ, Qdrant, Docling and Grafana deployed on your infrastructure. Students use it via web, Telegram or WhatsApp —without a single byte leaving your network.
For CIOs / Rectors
In business terms: your data in your own data centre, integrated with your LMS in weeks, with no dependency on any cloud provider. Your institution owns the technology.
Click each step to see exactly what happens. From when the student types to when they get the answer, everything is traceable.
How does the answer reach the student?
In under two seconds, a query passes through seven different services. Here's the detail.
Each service has a clear responsibility and communicates via authenticated contracts. The system scales —and fails— predictably.
The platform's web interface: chat, document upload and admin panel, in Spanish, Catalan and English from day one.
The command centre. Authenticates users, decides which agent handles each query and coordinates with the LMS, Qdrant and the message queue.
Analyses the intent of each query and routes it to the right agent: one for the LMS, one for documents, one for support. Every decision is logged.
Processes documents uploaded by teachers: applies OCR, extracts text and tables, generates vectors and indexes them in Qdrant for the assistant to query.
The messaging entry points. They receive student messages, forward them to the Backend and return the response to the originating channel.
The queue that makes sure no job is ever lost. If a hundred documents arrive at once, RabbitMQ lines them up and processes them one by one without overloading the system.
The assistant's memory. Stores institutional knowledge as vectors and retrieves it in milliseconds when a document-related query arrives.
The source of truth. Users, conversation history, the status of every processed document and the audit logs all live here.
The system's eyes. Prometheus collects metrics from every component every 15 seconds; Grafana turns them into dashboards any technical manager can read.
Every tool has years of production use and operates without connecting to external services. This isn't a prototype —it's the stack that handles a real institution's daily load.
When a student asks about the topic 3 notes, the system finds them even if they don't use the exact words in the document.
The system knows whether a student is asking about their tasks, their grades or the content of a PDF. And it routes the query to the agent that can answer that.
You know what the system responds, how long it takes and what it costs —all from your own servers, without sending data to any external service.
From the cost of each LLM call to the state of the document queue. Grafana deployed on your servers, no external data.
How many calls does the system make and how long do they take? This panel shows P50/P95/P99 latencies by query type so you can control inference spend.
How many queries each agent resolves, what percentage it answers correctly and how long it takes. You spot a degrading agent in seconds.
How many queries arrive ambiguous? How many trigger a fallback? This panel measures whether the LLM classifier is still accurate or needs retuning.
HTTP endpoint latency and per-agent latency. Identify whether the bottleneck is in the Backend, the LMS or Qdrant before the user notices.
Web, Telegram and WhatsApp compared in the same panel. Messages per minute and error rate per channel at a glance.
How many documents are waiting to be processed and whether the dead-letter queue is growing. An alert here means the RAG Worker needs attention.
Queries per collection, vector search latency and routing quality. If assistant responses slow down, this panel shows you why.
How many documents are processed per hour, which formats and how many fail. Catch OCR issues before the teacher notices.
Whether you use Moodle or Canvas: the system detects each student's provider automatically. Switching LMS in the future won't require touching the AI engine.
How does the Provider Factory work?
Each user has their LMS stored in the lms_type field. When they make a query, the system picks the right connector at that moment —without conditional logic scattered across the code.
REST API + Web Services
The most complete connector. Real-time access to tasks, exams, schedules, events and downloadable resources. In production since the first release.
Canvas API v1
Same integration depth as Moodle: courses, grades, modules and student profile. The orchestrator doesn't know or care which one is behind it.
Blackboard REST API
In active development. The architecture already has the space reserved: adding Blackboard won't require changes to the orchestrator or the agents.
All LMS endpoints are provider-agnostic
Backend endpoints like /lms/events or /lms/subjects work the same regardless of the LMS. The right connector is resolved internally based on the authenticated user.
We analyse the feasibility of On-Premise deployment in your environment and design the architecture adapted to your institution.