Tecnologias Base
O GamiBot separa a integração Moodle dos serviços que processam os ficheiros das disciplinas e geram respostas no chat.
| Componente | Tecnologia atual | Função |
|---|---|---|
| Integração Moodle | local_gamibot_manager e block_gamibot | Chat da disciplina, definições e fila com limites de envio para alterações de Ficheiros e Pastas |
| Ferramenta de fluxos | Langflow | Fluxos Clarify, Summarize e Quiz |
| Modelo de linguagem | Qwen3.5 servido por vLLM | Gera respostas nos fluxos alojados |
| Processamento de ficheiros | Docling | Processa ficheiros da disciplina no serviço de ingestão |
| Embeddings | Modelo nomic-text servido por Ollama | Converte texto processado em vetores |
| Base de dados vetorial | Qdrant | Guarda e pesquisa materiais indexados da disciplina |
Como os componentes se ligam
- Numa disciplina Moodle ativa, as alterações a Ficheiros e Pastas entram na fila global do plugin Manager. O cron do Moodle envia gradualmente notificações ao endpoint de ingestão configurado.
- O serviço recetor obtém o ficheiro no Moodle, usa Docling para o processar, produz embeddings nomic-text através de Ollama e mantém o índice em Qdrant.
- O bloco Chat envia pedidos Clarify, Summarize ou Quiz através do plugin Manager para Langflow. Os fluxos alojados usam Qwen3.5 servido por vLLM. A recuperação dos materiais indexados é controlada por esses fluxos.
O plugin Moodle mantém os endpoints e IDs de campos dos fluxos Langflow padrão. O administrador configura uma única chave Langflow partilhada; o endpoint de ingestão e o segredo do webhook são definições separadas. Consulte Configuração do Moodle e Ligações Langflow.
Esta lista não define o tamanho do modelo Qwen3.5, o identificador exato do modelo Ollama, os formatos de documento suportados, as dimensões dos vetores, as regras de segmentação, os prompts ou os recursos do servidor. Esses detalhes dependem dos serviços instalados e devem ser verificados neles.
Consulte Ingestão de dados para o funcionamento da fila e arquitetura de implantação para os limites entre componentes.