Configuração do Moodle
O GamiBot requer Moodle 4.4 ou posterior e dois plugins: local_gamibot_manager (configuração e ingestão) e block_gamibot (interface de chat).
Instalar ou atualizar os plugins
- Descarregue o plugin GamiBot Manager e o bloco GamiBot Chat.
- Inicie sessão como administrador do site. Em Administração do site > Plugins > Instalar plugins, instale ou atualize ambos os ZIPs e conclua a atualização do Moodle. A versão do Manager documentada aqui é
2026091802; o bloco Chat também requer Moodle 4.4. - Confirme que o cron do Moodle é executado pelo menos uma vez por minuto e que a tarefa Synchronise GamiBot resource availability está ativa em Administração do site > Servidor > Tarefas > Tarefas agendadas.
Depois de instalar os dois plugins, também pode executar a atualização normal pela linha de comandos:
php admin/cli/upgrade.php --non-interactiveSe uma versão anterior do Manager parou com Undefined constant "XMLDB_TYPE_INT", instale o pacote corrigido e repita a atualização. Esse erro ocorreu antes da criação da tabela da fila ou do registo do ponto de atualização; não é necessária limpeza manual da base de dados.
As versões anteriores também podiam fazer falhar a tarefa horária Reset Gamibot manager user usage data com SELECT DISTINCT FROM ... quando não existia uma coluna de tenant configurada. Após a atualização, execute-a uma vez a partir da raiz do Moodle para confirmar a correção:
php admin/cli/scheduled_task.php --execute='\local_gamibot_manager\task\reset_user_usage'Configurar o plugin Manager
Aceda a Administração do site > Plugins > Plugins locais > GamiBot Manager > Definições básicas.
- Chave da API Langflow: Introduza uma única chave para Clarify, Summarize e Quiz. É uma definição mascarada do Moodle, partilhada por todas as finalidades e tenants Langflow. Solicite credenciais se utilizar o serviço CIP/INOV-Norte.
- Endpoint e segredo da Gami API: Configure-os em separado para a gamificação. Não são a chave Langflow.
- Endpoint de ingestão e segredo do webhook: Configure o serviço que recebe os ficheiros da disciplina. O segredo segue no payload JSON e é diferente da chave Langflow e do segredo da Gami API.
- Pedidos de ingestão por execução do cron: Por defeito, 5 passos de envio (intervalo 1–100); cada passo envia, no máximo, um pedido.
- Intervalo mínimo entre pedidos de ingestão: Por defeito, 5 segundos entre inícios de pedidos (intervalo 1–3600), para todas as disciplinas e processos.
- Verificar certificados SSL, tempo limite dos pedidos e número de perguntas do quiz continuam disponíveis. Mantenha a verificação SSL ativa nas ligações de produção.
Guarde as alterações. Numa instalação nova, as três finalidades Langflow são criadas automaticamente; não é necessário criar instâncias de ferramentas nem introduzir uma chave, endpoint e IDs de campos para cada finalidade. A página GamiBot na navegação mostra o estado de configuração. “Configured” significa que existem definições locais, não que a ligação ao serviço tenha sido testada.
O plugin mantém em código as seguintes definições dos fluxos padrão:
| Finalidade | Endpoint Langflow |
|---|---|
| Clarify | https://langflow.hub.inov-norte.ipp.pt/api/v1/run/f0be7594-16a8-459e-ae96-8b79637fcbbb |
| Summarize | https://langflow.hub.inov-norte.ipp.pt/api/v1/run/28ec36b5-0432-4072-8293-607a6efe1c09 |
| Quiz | https://langflow.hub.inov-norte.ipp.pt/api/v1/run/5fad50dc-438b-4deb-ad6d-274e5d1b8a6b |
Os três usam Domain TextInput-1NWCq, Course TextInput-8xdUH e Additional TextInput-VXxfq. Atualmente, o campo Additional transmite o número de perguntas configurado apenas para Quiz. Estes valores pertencem à versão do plugin, não ao formulário normal de configuração.
Instalações existentes
A atualização preserva os registos das ferramentas, atribuições dos tenants, finalidades desativadas, endpoints personalizados e IDs de campos personalizados. As ligações padrão são atualizadas sem alterar os respetivos IDs. Se todas as ligações Langflow existentes usarem uma única chave não vazia, esta é migrada para a definição partilhada. Se usarem chaves diferentes, as ligações continuam a usar as credenciais anteriores e o administrador recebe um aviso para escolher uma chave partilhada; ao guardá-la, esta passa a ser usada por todas as ligações Langflow. Reveja as ligações personalizadas antes de o fazer.
As ligações padrão são mantidas pelo plugin e não podem ser editadas ou eliminadas na antiga página de instâncias. As ligações personalizadas e atribuições antigas continuam acessíveis. Só os administradores do site podem editar endpoints Langflow personalizados, pois estes recebem a credencial partilhada.
Configurar o bloco Chat e ativar uma disciplina
Em Administração do site > Plugins > Blocos > GamiBot Chat, ajuste os tipos de página do botão flutuante, a substituição opcional do botão de ajuda e o tema de cores.
Para ativar uma disciplina, abra Definições, expanda Funcionalidades GamiBot, selecione Adicionar um Chat GamiBot a esta disciplina e guarde. É adicionado um bloco ao nível da disciplina e os recursos Ficheiro e Pasta elegíveis já existentes entram na fila para sincronização gradual. Remover o último bloco GamiBot da disciplina coloca a respetiva limpeza na fila. Um botão global ou bloco ao nível da categoria não ativa a ingestão dessa disciplina.
Os novos carregamentos e edições de disciplinas ativas usam a mesma fila global. Consulte Ingestão de dados para conhecer os limites, regras de visibilidade, tentativas e comandos de estado; depois, teste o GamiBot.