Core Technologies
GamiBot separates Moodle integration from the services that process course files and generate chat responses.
| Component | Current technology | Role |
|---|---|---|
| Moodle integration | local_gamibot_manager and block_gamibot | Course chat, settings and a paced queue for File and Folder changes |
| Workflow tool | Langflow | Clarify, Summarize and Quiz flows |
| Language model | Qwen3.5 served by vLLM | Generates responses for the hosted flows |
| File processing | Docling | Processes course files at the ingestion service |
| Embeddings | nomic-text model served by Ollama | Converts processed text into vectors |
| Vector database | Qdrant | Stores and searches indexed course material |
How the components connect
- In an enabled Moodle course, File and Folder changes enter the Manager plugin's site-wide queue. Moodle cron gradually sends notifications to the configured ingestion endpoint.
- The receiving service retrieves the file from Moodle, uses Docling for file processing, produces nomic-text embeddings through Ollama and maintains the index in Qdrant.
- The Chat block sends a Clarify, Summarize or Quiz request through the Manager plugin to Langflow. The hosted flows use Qwen3.5 served by vLLM. Retrieval of indexed course material is controlled by those flows.
The Moodle plugin owns the standard Langflow endpoints and input IDs. An administrator configures one shared Langflow API key; the ingestion endpoint and webhook secret are separate settings. See Moodle setup and Langflow connections.
This component list does not specify a Qwen3.5 model size, a precise Ollama model identifier, supported document formats, vector dimensions, chunking rules, prompts or server sizing. Those details depend on the deployed services and must be checked there.
See Data ingestion for queue behavior and deployment architecture for the system boundary.