Compilatio - Passage v4 vers v5

Compilatio - Passage v4 vers v5

par Séverin Terrier,
Nombre de réponses : 12
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Je sais que nous ne sommes pas le seul établissement à utiliser les services (payants) de Compilatio pour la reconnaissance de similitudes (plagiat). Ces derniers évoluent et passent sur une nouvelle plateforme technique v5.

Nous sommes en pleine migration vers cette nouvelle version cette semaine, et rencontrons plusieurs problèmes (avec la toute dernière version 2.6.3 de leur plugin) :

  • depuis l'ENT, nous avions un lien direct qui permettait l’authentification unique pour les membres de notre établissement. Actuellement, ils nous renvoient vers la page générique d'authentification
  • depuis Moodle, leurs instructions de passage vers la v5 sont incomplètes, et actuellement, après appui sur le bouton "Lancer la mise à jour des données stockées dans Moodle", j'ai le message "Mise à jour en cours, veuillez patienter..." et après tout juste 5 minutes, je rencontre un blocage avec le message suivant :
    Error : Invalid API Key : Failed connect to app.compilatio.net:443; Operation now in progress

Je voulais savoir si d'autres établissements étaient déjà passés par cette étape, et auraient de bons conseils à nous fournir ?

Séverin

Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5

par Vincent Dalmeyda,
Bonjour,
Effectivement, nous devons (tous) y passer également, vu que Compilatio est leader des anti-plagiats dans l'Ens Sup français. Notre date de migration n'est pas encore arrêtée. Je suis preneur des conseils et expériences. je me suis abonné à ces échanges.
bonne journée
Vincent
En réponse à Vincent Dalmeyda

Re: Compilatio - Passage v4 vers v5

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Bonjour,
C'est fou qu'on dépende d'une société privée pour traquer les adeptes du plagiat ! 😒
Mais finalement ne sommes nous pas tous qu'une somme de "copier/coller" ?
Seuls les non-conformistes sont originaux... Les autres ne sont que de tristes reproducteurs à l'identique... 😀
Daniel 🇺🇦
Dit : Le vieux sage sous son manguier en Afrique sub-saharienne, ou le vieux chibani au Maghreb
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5 - précisions pour fonctionnement OK

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

Le fonctionnement de Compilatio depuis Moodle étant (enfin) réglé depuis vendredi soir, je reviens avec quelques précisions (qu'il aurait été utile que Compilatio fournisse directement).

Tout d'abord, quelques précisions sur cette mise à jour v5 (mes questions et réponses Compilatio) :

  • qu'est-ce que cette opération "Lancer la mise à jour des données stockées dans Moodle" fait exactement ?
    Cette opération met à jour l'identifiant Compilatio des documents pour qu'ils soient liés à la plateforme v5.
  • doit-elle être impérativement lancée sur chaque instance Moodle utilisant Compilatio ?
    Pour pouvoir analyser / indexer / supprimer les anciens document de v4, OUI 
  • la durée d'exécution est-elle (du coup) relative au nombre (et à la taille) des fichiers effectivement utilisés sur chaque plateforme ?
    Oui, le temps d'exécution est relatif au nombre de documents
  • l'opération peut-elle être relancée (plusieurs fois) sans aucun risque, et ce sur différentes plateformes ?
    Oui l'opération peut être lancée plusieurs fois sans risque et oui sur les différentes plateformes
Concernant le détail et l'ordre des opérations à effectuer :

  1. mettre à jour le plugin Compilatio à sa dernière version (2.6.3 actuellement)
  2. dans les paramètres Compilatio, depuis l'onglet "Plugin de détection de plagiat Compilatio", section "Configuration de l'API", saisir l'URL et la clé nouvelle version (indiqués par Compilatio), et appuyer sur le bouton "Enregistrer" en bas de page
  3. colonne "Activée", cocher cette nouvelle ligne, ainsi que "Activer le plug-in Compilatio" (en haut), et appuyer sur le bouton "Enregistrer" en bas de page (Oui, il aurait été pratique de pouvoir faire cela en une seule phase dès l'étape précédente, mais cela ne fonctionne pas correctement, actuellement en tout cas)
  4. si vous avez un message d'erreur en haut de page "Error : Invalid API Key : Failed connect to app.compilatio.net:443; Operation now in progress", il faut définir des autorisations dans le pare-feu pour la nouvelle URL
  5. ouvrir l'onglet "Migration v4 vers v5"
  6. indiquer la nouvelle clé puis appuyer sur le bouton "Lancer la mise à jour des données stockées dans Moodle"
  7. affichage du message "Mise à jour en cours, veuillez patienter..." avec un rond animé signalant une activité
  8. normalement, après "un certain temps" (disons 5/10 minutes), la mise à jour devrait être terminée
  9. si après environ 5 minutes de "traitement" vous obtenez le message d'erreur "Error : Invalid API Key : Failed connect to app.compilatio.net:443; Operation now in progress", il faut ajouter au pare-feu des autorisations pour les adresses IP des différents (5) serveurs utilisés par Compilatio, et revenir à l'étape 5.
  10. j'ai également parfois rencontré l'erreur "Error : Failed to get v5 documents" après quelques minutes ; j'ai simplement relancé (éventuellement plusieurs fois) la mise à jour depuis l'étape 5.
  11. la mise à jour terminée, un message s'affiche, de la forme "22508 / 22509 les documents ont été mis à jour" (je suppose une légère erreur de programmation, car sur toutes mes plateformes, cela affichait 1 de moins)

Une fois la nouvelle API définie et utilisée, et même le contenu mis à jour, je ne vois pas de moyen de supprimer les anciennes informations d'API (devenus obsolètes et inutiles).

J'espère que ces informations permettront à de nombreux collègues d'éviter de perdre autant de temps que nous sur cette mise à jour...

Séverin

Moyenne des évaluations Utile (5)
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5 - précisions pour fonctionnement OK

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
En fait, une fois la mise à jour terminée, les anciennes informations d'API sont automatiquement supprimées sourire

Séverin
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5 - précisions pour fonctionnement OK

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

Au final, nos soucis de fonctionnement du plugin Compilatio ont duré, et après plusieurs jours (plutôt semaines), de multiples échanges et versions de plugin, le fonctionnement s'est vraiment stabilisé (uniquement) à partir de la version 2.6.5 du plugin.

Nous avons ensuite (re)lancé la mise à jour des données vers la V5 afin d'être certain que tout était bien migré, y compris après être passé en 2.6.6.

Puis nous avons cherché à corriger un certain nombre de problèmes existants.

Je vais donc détailler dans un autre message différentes informations techniques utiles apprises au cours de ces échanges concernant le plugin Compilatio, ainsi que différentes requêtes SQL utilisées afin de mieux cibler le contenu, apporter des corrections...

Séverin
Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5

par Yves Moreau,
Bonjour,

nous venons de passer en V5 Compilatio à l'université Lyon 3 et n'avons pas constaté de problème technique. Le plugin 2.6.3. a bien été installé sur Moodle, et les données migrées (dont le volume était assez important). L'API a été saisie dans l'onglet correspondant et tout s'est bien déroulé...
En revanche, Compilatio a connu un petit raté : leur mail d'information contenant la clé API n'est pas parti à la fin de la migration ce week-end. Il a fallu un coup de fil à la société pour leur demander.

Bonne journée, Yves.
Moyenne des évaluations Utile (2)
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5 - informations techniques utiles

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Au cours de nos différents échanges avec Compilatio, j'ai appris différents éléments techniques, qui me paraissent utiles et que je partage donc.

Concernant les différents statuts possibles pour les fichiers déposés (champ 'statuscode' de la table mdl_plagiarism_compilatio_files), les constantes sont spécifiées dans /plagiarism/compilatio/constants.php :

define('COMPILATIO_STATUSCODE_ACCEPTED', '202');
define('COMPILATIO_STATUSCODE_ANALYSING', '203');
define('COMPILATIO_STATUSCODE_BAD_REQUEST', '400');
define('COMPILATIO_STATUSCODE_NOT_FOUND', '404');
define('COMPILATIO_STATUSCODE_UNSUPPORTED', '415');
define('COMPILATIO_STATUSCODE_UNEXTRACTABLE', '416');
define('COMPILATIO_STATUSCODE_TOO_SHORT', '412');
define('COMPILATIO_STATUSCODE_TOO_LARGE', '413');
define('COMPILATIO_STATUSCODE_TOO_LONG', '414');
define('COMPILATIO_STATUSCODE_FAILED', '418');
define('COMPILATIO_STATUSCODE_COMPLETE', 'Analyzed');
define('COMPILATIO_STATUSCODE_IN_QUEUE', 'In queue');
define('COMPILATIO_STATUSCODE_TOANALYZE', '201');

Et leur signification détaillée est :

  • pending : document en attente d'être envoyé vers Compilatio par la tâche programmée 'send_files'
  • 201 : document envoyé vers Compilatio, en attente de chargement sur le compte Magister
  • 202 : document chargé sur le compte Magister, prêt à être analysé
  • In queue : demande d'analyse prise en compte et mise en file d'attente des analyses
  • 203 : document en cours d'analyse
  • Analyzed : document dont l'analyse est terminée
  • 400 : mauvaise requête
  • 404 : document non trouvé
  • 412 : le document ne contient pas assez de mots
  • 413 : le fichier envoyé est trop volumineux
  • 414 : le document contient trop de mots
  • 415 : le format du fichier envoyé n'est pas supporté par Compilatio
  • 416 : le texte du document envoyé n'a pas pu être extrait
  • 418 : l'analyse du document a échouée
En résumé :
  • les valeurs 2xx signifient que les fichiers ont été transférés chez Compilatio, et leur traitement est géré (ou à venir)
  • les valeurs 4xx sont les erreurs
Si on modifie le 'statuscode' d'un fichier (en erreur) pour le remettre à 'pending', son analyse sera (automatiquement) relancée.

Un fichier analysé devrait avoir 'reporturl' spécifié. Donc, si 'reporturl' est spécifié, et que le 'statuscode' n'est pas à 'Analyzed', on le modifie pour cette valeur (afin que l'analyse soit visible dans Moodle).

Les identifiants de documents (champ 'identifier' de la table mdl_plagiarism_compilatio_files) v4 ont 32 caractères. Alors que la majorité des identifiants v5 ont 40 caractères de longueur. Ainsi, tous les identifiants comportant 40 caractères sont des identifiants v5.

Séverin

Moyenne des évaluations Utile (3)
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5 - requêtes SQL utiles

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Tenant compte de ces informations, j'ai utilisé plusieurs sortes de requêtes SQL, que je détaille ci-dessous.

Répartition des fichiers par code de statut :

SELECT statuscode, COUNT(1) AS Nb FROM mdl_plagiarism_compilatio_files
WHERE timesubmitted > UNIX_TIMESTAMP ('2021-09-01')
GROUP BY statuscode ORDER BY Nb DESC; +------------+-------+ | statuscode | Nb | +------------+-------+ | 202 | 16108 | | 415 | 7957 | | Analyzed | 3577 | | 413 | 485 | | 416 | 226 | | 412 | 148 | | In queue | 59 | | pending | 37 | | 418 | 36 | | 404 | 9 | +------------+-------+

Nombre de fichiers analysés mais dont le statut est incorrect (et donc l'affichage dans Moodle ne fait pas apparaitre le taux de similitude) :

SELECT COUNT(1) AS Nb FROM mdl_plagiarism_compilatio_files
WHERE reporturl IS NOT NULL AND statuscode <> 'Analyzed'
AND timesubmitted > UNIX_TIMESTAMP ('2021-09-01');

Et correction de ces cas :

UPDATE mdl_plagiarism_compilatio_files SET statuscode = 'Analyzed'
WHERE reporturl IS NOT NULL AND statuscode <> 'Analyzed'
AND timesubmitted > UNIX_TIMESTAMP ('2021-09-01');
Ce qui permet de voir apparaitre dans Moodle le statut correct ainsi que le taux de similitude.


Ensuite, j'ai cherché à faire ré-analyser les fichiers en erreur, afin une analyse à jour et correcte. Mais pour éviter de surcharger le serveur Compilatio, j'ai effectué ces modifications par lots.

Sélection du nombre de fichiers en erreur (dans une période) :

SELECT COUNT(1) AS Nb FROM mdl_plagiarism_compilatio_files
WHERE statuscode IN ('412', '413', '414', '415', '416', '418')
AND timesubmitted BETWEEN UNIX_TIMESTAMP ('2022-07-01') AND UNIX_TIMESTAMP ('2022-09-01');

et modification de ces fichiers (pour une période) pour les remettre à analyser :

UPDATE mdl_plagiarism_compilatio_files SET statuscode = 'pending'
WHERE statuscode IN ('412', '413', '414', '415', '416', '418')
AND timesubmitted BETWEEN UNIX_TIMESTAMP ('2022-07-01') AND UNIX_TIMESTAMP ('2022-09-01');

et on suit le nombre restant à traiter chez Compilatio :

SELECT COUNT(1) AS Nb FROM mdl_plagiarism_compilatio_files
WHERE statuscode='pending'
AND timesubmitted BETWEEN UNIX_TIMESTAMP ('2022-07-01') AND UNIX_TIMESTAMP ('2022-09-01');

on attend que ça tombe à 0 avant de relancer une autre période (en modifiant les dates).

J'ai donc découpé cela mois par mois pour ré-analyser tous les fichiers en erreur déposés depuis le 1er septembre 2021.

Une fois cela fait, j'ai relancé la première requête permettant d'avoir la répartition des statuts des fichiers, et constaté que la plupart des erreurs avaient disparues, hormis les codes 415 (type de fichier non supporté) qui restaient en très grand nombre.

Pour en savoir un peu plus, notamment sur les extensions utilisées, j'ai lancé :

SELECT RIGHT(filename, 4) AS Ext, COUNT(1) AS Nb FROM mdl_plagiarism_compilatio_files
WHERE statuscode='415' AND timesubmitted BETWEEN UNIX_TIMESTAMP ('2021-09-01') AND UNIX_TIMESTAMP ('2022-09-01')
GROUP BY Ext ORDER BY Nb DESC LIMIT 20;

Et j'ai effectivement constaté qu'il y a plein de fichiers .zip, .php, .java, .png, .rar, .sql, .jpg, .m4a... et qu'il est normal qu'ils ne soient pas analysés correctement.

Par ailleurs, afin de vérifier que les documents étaient bien migrés vers la v5 :

SELECT COUNT(1) AS Nb FROM mdl_plagiarism_compilatio_files
WHERE LENGTH (identifier) < 40
AND timesubmitted > UNIX_TIMESTAMP ('2021-09-01');

En toute logique, il n'en reste plus (dans toute la table) !

Séverin

Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Compilatio - Passage v4 vers v5 - requêtes SQL utiles

par François Lizotte,
Avatar Moodleurs particulièrement utiles Avatar Traducteurs
Bonjour Séverin,

Depuis ces manœuvres, as-tu eu d'autres problèmes avec Compilatio? Ici, beaucoup de collèges ont des problèmes avec l'envoi des fichiers vers Compilatio.

François
En réponse à François Lizotte

Re: Compilatio - Soucis depuis passage vers v5

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour François,

Oui, nous avons (malheureusement) continué à rencontrer des problèmes avec Compilatio, et je dois avouer que ce n'est toujours pas (totalement) réglé.

Si la migration des documents vers la V5 est terminée depuis un moment, d'autres problèmes ont continué, comme l'impossibilité d'analyser des documents de plus d'un certain nombre de mots (plus restreint qu'auparavant), l’impossibilité d'afficher les rapports de similitude lorsqu'il y a de nombreuses sources de similitudes...

Et Compilatio a fini par (nous) avouer que plusieurs gros établissements étant passés en V5 rencontraient des soucis, que cela surchargeait leurs serveurs... en gros, ils ont (eu) du mal à gérer leur succès et leur changement de version.

Apparemment nous serions un des seuls établissement à leur demander (ou fournir) des informations très techniques, opérer des vérifications et modifications directement dans la base de données, et ils n'auraient donc pas l'habitude de trop donner d'informations très techniques aux établissements utilisateurs...

Au fil des problèmes rencontrés, et des échanges, on en apprend un peu plus sur le fonctionnement exact du plugin, quoi regarder, et comment relancer des choses. Par exemple, dans la table des fichiers mdl_plagiarism_compilatio_files, la colonne attempt indique le nombre de tentatives d'analyses du document. Lorsque cela atteint (ou dépasse ?) 5, il n'y a plus de nouvelle tentative d'analyse. Pour des documents bloqués, ou dont l'analyse est en erreur, il faut parfois réinitialiser cette valeur à 0.

Séverin
Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Compilatio - Soucis depuis passage vers v5

par François Lizotte,
Avatar Moodleurs particulièrement utiles Avatar Traducteurs
Merci, je me sens moins seul. La plupart des collèges qu'on héberge et qui ont un abonnement au service Compilatio depuis Moodle nous ont rapporté des problèmes. On a eu quelques échanges avec leur soutien technique, mais pas encore de résultat vraiment probant. Le nombre d'erreurs est anormalement élevé.

François

Ajout: dans les logs de la tâche programmée d'envoi des fichiers vers Compilatio (/admin/tasklogs.php?filter=plagiarism_compilatio\task\send_files), on a beaucoup d'erreurs de ce type:

Execute scheduled task: Envoie les fichiers à Compilatio.net pour détection de plagiat (plagiarism_compilatio\task\send_files)
... started 16:30:03. Current memory use 41.7Mo.
sending file #121663
524169 bytes written.
invalid compilatio response received - will try again later.Error in function send_doc_v5 : request response's status not found / cURL params : array (
  10002 => 'https://app.compilatio.net/api/private/document/',
  19913 => true,
  10023 => 
  array (
    0 => 'X-Auth-Token: 094402b230xxxxxxxxxxxxxx9070b',
  ),
  47 => true,
  10015 => 
  array (
    'file' => 
    CURLFile::__set_state(array(
       'name' => '/opt/moodledata/temp/compilatio/2023-01-09 16-30-04.txt',
       'mime' => '',
       'postname' => '',
    )),
    'filename' => 'travail de session final.pdf',
    'title' => 'Remise du travail de session(311451)_travail de session final.pdf',
    'indexed' => true,
    'origin' => 'moodle',
  ),
) / cURL Error :  / cURL response : '<!DOCTYPE html>
<html>
  <head>
    <title>503 Backend fetch failed</title>
  </head>
  <body>
    <h1>Error 503 Backend fetch failed</h1>
    <p>Backend fetch failed</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 374499343</p>
    <hr>
    <p>Varnish cache server</p>
  </body>
</html>

En réponse à François Lizotte

Re: Compilatio - Soucis depuis passage vers v5

par François Lizotte,
Avatar Moodleurs particulièrement utiles Avatar Traducteurs
Bonjour,

Je tiens à faire un retour. Après plusieurs tests et échanges avec le soutien technique de Compilatio, les problèmes semblent s'être résorbés.