Integração dos Plugins Moodle
O GamiBot usa dois plugins Moodle. O block_gamibot apresenta o chat; o local_gamibot_manager fornece configuração, serviços AJAX do Moodle, dados de utilização e sincronização dos ficheiros das disciplinas. Ambos requerem Moodle 4.4 ou posterior.
Percurso dos pedidos de chat
O JavaScript do bloco Chat chama o módulo local_gamibot_manager/make_request do Manager. Este usa a API core/ajax do Moodle e a função externa registada local_gamibot_manager_post_query (db/services.php e classes/external/submit_query.php). Os pedidos incluem finalidade, texto, componente, ID do contexto e opções. O Manager valida o contexto Moodle, aplica as permissões do pedido e encaminha-o para a finalidade Langflow configurada. Os resultados dos quizzes e as estatísticas de gamificação usam funções externas próprias e a Gami API.
Este plugin não possui o endpoint /local/gamibot_manager/api/chat.php. As integrações devem usar o contrato de serviços Moodle em vez de criar um URL sem autenticação.
As finalidades padrão são Clarify, Summarize e Quiz, com uma única chave Langflow configurada pelo administrador do site. Os URLs dos fluxos e IDs dos campos são mantidos em classes/local/langflow_setup.php. Consulte Ligações Langflow e Configuração do Moodle.
Sincronização dos ficheiros das disciplinas
O Manager observa a criação, alteração e eliminação de módulos Moodle; edições de Pastas; alterações de secções, disciplinas e categorias. A integração com as definições da disciplina também trata da adição ou remoção do GamiBot. Apenas atividades Ficheiro e Pasta de disciplinas com bloco GamiBot próprio são elegíveis.
Os observadores e as alterações à disciplina colocam trabalho na tabela local_gamibot_manager_queue; não enviam pedidos de ingestão durante a edição. A tarefa agendada local_gamibot_manager\task\sync_resources deteta alterações de disponibilidade e envia lotes limitados. Um intervalo guardado na base de dados e um bloqueio do processo de envio limitam globalmente os pedidos entre disciplinas e processos de cron. As eliminações precedem os carregamentos de substituição. Consulte Ingestão de dados para o payload, limites, tentativas e comandos de consulta.
O secret do webhook está no corpo JSON, não num cabeçalho ou assinatura HMAC. O recetor deve autenticá-lo e tratar as eliminações de módulos de forma idempotente. Um envio bem-sucedido significa uma resposta HTTP 2xx do recetor, não a conclusão da indexação remota.
Administração e atualizações
A página Definições básicas do Manager contém a chave Langflow partilhada, credenciais separadas da Gami API e de ingestão, verificação TLS, tamanho do quiz e limites de ingestão. As ligações Langflow padrão são criadas automaticamente. A atualização preserva registos existentes, atribuições dos tenants e ligações personalizadas; chaves antigas diferentes exigem que o administrador escolha a chave partilhada.
Após instalar uma nova versão, execute a atualização normal do Moodle e confirme que o cron está ativo. A tarefa agendada Reset Gamibot manager user usage data é separada da ingestão.
Consulte Configuração do Moodle para a sequência de instalação.