ChatGPT pour aider à faire des modules

Bonjour,

Je viens de m’amuser à utiliser ChatGPT pour créer un module à partir d’un plan à deux niveaux :

  • on fait un plan du module, basé sur deux niveaux
  • on demande à ChatGPT de créer un module (donc un fichier XML) qui place le plan en introduction et ensuite crée une division par titre de niveau un et un grain par titre de niveau 2

Voici le prompt que j’ai écrit, et qui a fonctionné. Après avoir généré le code XML, il faut enregistrer ça dans un fichier XML qu’on importe dans Scenari. Attention à l’encodage des caractères.
C’est sans doute améliorable !

Tu es un créateur de modules utilisant la chaîne documentaire Scenari-Opale : Opale
Un module est un fichier XML.
Tu vas créer un module à partir d’un plan à deux niveaux. Ton rôle sera de me demander :

  • le titre du module
  • le plan
    Ensuite tu créeras le module en créant :
  • une division par titre de niveau 1
  • un grain de contenu par titre de niveau 2.
    Puis tu me donneras le fichier XML du module.

Voici un exemple.
A partir du titre « Titre du module » et du plan
« 1. Titre 1
1.1 Titre 1.1
1.2 Titre 1.2
2. Titre 2
2.1 Titre 2.1
2.2 Titre 2.2 »

j’ai créé le module

<?xml version="1.0"?>
<sc:item xmlns:op="utc.fr:ics/opale3" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive">
	<op:ue>
		<op:ueM>
			<sp:title>
				<op:title>
					<sc:para xml:space="preserve">Titre du module</sc:para>
				</op:title>
			</sp:title>
		</op:ueM>
		<sp:intro>
			<op:res>
				<sp:txt>
					<op:txt>
						<sc:para xml:space="preserve">Plan</sc:para>
						<sc:orderedList>
							<sc:listItem>
								<sc:para xml:space="preserve">Titre 1</sc:para>
								<sc:orderedList>
									<sc:listItem>
										<sc:para xml:space="preserve">Titre 1.1</sc:para>
									</sc:listItem>
									<sc:listItem>
										<sc:para xml:space="preserve">Titre 1.2</sc:para>
									</sc:listItem>
								</sc:orderedList>
							</sc:listItem>
							<sc:listItem>
								<sc:para xml:space="preserve">Titre 2</sc:para>
								<sc:orderedList>
									<sc:listItem>
										<sc:para xml:space="preserve">Titre 2.1</sc:para>
									</sc:listItem>
									<sc:listItem>
										<sc:para xml:space="preserve">Titre 2.2</sc:para>
									</sc:listItem>
								</sc:orderedList>
							</sc:listItem>
						</sc:orderedList>
					</op:txt>
				</sp:txt>
			</op:res>
		</sp:intro>
		<sp:div>
			<op:ueDiv>
				<op:ueDivM>
					<sp:title>
						<op:title>
							<sc:para xml:space="preserve">Titre 1</sc:para>
						</op:title>
					</sp:title>
				</op:ueDivM>
				<sp:courseUc>
					<op:expUc>
						<op:uM>
							<sp:title>
								<op:title>
									<sc:para xml:space="preserve">Titre 1.1</sc:para>
								</op:title>
							</sp:title>
						</op:uM>
					</op:expUc>
				</sp:courseUc>
				<sp:courseUc>
					<op:expUc>
						<op:uM>
							<sp:title>
								<op:title>
									<sc:para xml:space="preserve">Titre 1.2</sc:para>
								</op:title>
							</sp:title>
						</op:uM>
					</op:expUc>
				</sp:courseUc>
			</op:ueDiv>
		</sp:div>
		<sp:div>
			<op:ueDiv>
				<op:ueDivM>
					<sp:title>
						<op:title>
							<sc:para xml:space="preserve">Titre 2</sc:para>
						</op:title>
					</sp:title>
				</op:ueDivM>
				<sp:courseUc>
					<op:expUc>
						<op:uM>
							<sp:title>
								<op:title>
									<sc:para xml:space="preserve">Titre 2.1</sc:para>
								</op:title>
							</sp:title>
						</op:uM>
					</op:expUc>
				</sp:courseUc>
				<sp:courseUc>
					<op:expUc>
						<op:uM>
							<sp:title>
								<op:title>
									<sc:para xml:space="preserve">Titre 2.2</sc:para>
								</op:title>
							</sp:title>
						</op:uM>
					</op:expUc>
				</sp:courseUc>
			</op:ueDiv>
		</sp:div>
	</op:ue>
</sc:item>

Il faut que je teste à nouveau sous Opale, mais en tout cas si j’importe du XML, à ce jour, le code est affiché (interprété comme du texte pur).
Encore une fois, à voir sous Opale, car j’ai fait le test (assez succinctement) sous Dokiel.

En tout cas, ce n’est pas rassurant de voir que ChatGPT gagne du terrain dans le domaine de la formation.

J’ai reformaté ton message pour que le code xml ne soit pas modifié par le forum.
En effet, j’ai copié collé ça dans une fichier xml que j’ai ensuite importé dans opale et ça donne ce qui est attendu :

1 « J'aime »

Bonjour Loïc,
Est-ce un simple import ou y a-t-il une autre manip à faire pour avoir le résultat ?
Merci :slight_smile:

J’ai copié le code, collé dans un fichier texte, que j’ai sauvegardé avec l’extention .xml, et j’ai importé le fichier dans un atelier Opale.

1 « J'aime »

Je déterre pour l’anniversaire.
Il est capable de fournir un fichier .scar mais il ne donne rien de directement exploitable après import.
A+

1 « J'aime »

Avec @claudel on a fait quelques tests (sur Mistral et chatGPT).

Si on lui fournit le xml du module simple Opale sur le café et qu’ensuite on lui demande de faire un contenu sur un autre sujet, il arrive à créer un module bien formé (modulo quelques petites choses inventées comme un type de qui en marche pas ou une ressource image inexistante).

Module-simple-Coffee.xml (23,9 Ko)

Mais si on lui demande d’ajouter un quiz, il donne n’importe quoi puisqu’il n’y a pas de quiz dans ce module d’exemple.

Plus précisément on a :

  1. fait un prompt qui dit « Étudie ce module Opale pour en apprendre le formalisme et la structuration : » en collant en-dessous l’intégralité du code xml du module exemple sur le café
  2. ensuite prompt : « Maintenant crée un module Opale de formation sur l’algèbre. »
  3. on a copié le xml fournit, collé dans un logiciel type notepad, enregistré au format xml.
  4. dans Opale on a fait « importer un fichier » en prenant le fichier xml précédemment enregistré.

Si on veut aller plus loin, il faudrait que l’IA puisse étudier la DTD (les fichiers qui explicitent le formalisme du XML des item Opale). @sam elle est quelque part cette DTD d’Opale ?

1 « J'aime »

Une « DTD » standard ne permet pas de de décrire un modèle SCENARI.
Par contre tous les modèles libres proposent une définition Relax NG dans le groupe Autres téléchargements :

1 « J'aime »

Est-ce que ces fichiers sont en ligne quelque part ?

Heu… oui, sur scenari.software non?

Sur scenari.software, ce que je peux avoir c’est un zip de ces fichiers (sauf si j’ai loupé un truc). Je voulais savoir si on peut accéder à chacun de ces fichiers via url.

non, il y a pas d’accès direct à l’intérieur du zip.

Intéressant.
Si on leur demande (indifféremment GPT, Mistral, Grok, etc) de rédiger un module, elle savent l’organiser en respectant les blocs Opale (objectif, intro, divisons, grain, conclusion). Elles proposent des quiz souvent pertinents mais hélas quasi exclusivement des QCU, pour lesquels on peut demander le nombre de propositions et la bonne réponse.
Ça peut être intéressant pour initier quelqu’un au modèle en faisant un simple copier/coller ou avoir une base que l’on peut perfectionner (quand on demande des illustrations c’est n’importe quoi).
Je m’en suis servi pour élaborer un petit complément que j’avais la flemme de rédiger dans un module Topaze, cela m’a fait gagner du temps, j’ai juste eu à corriger le tropisme US de certaines formulations.

2 « J'aime »

Bonjour,

Je n’arrive pas à reproduire ce que tu fais dans Mistral, je bloque quand j’essaie d’ajouter le module Thé, qu’il refuse. J’ai essayé avec un module à moi, pareil. Comme as-tu réussi à mettre le module ?

C’est parce que ce n’est pas le module sur le thé que je lui donne, mais celui sur le café. C’est le contenu d’exemple simple.
Dans ma méthodologie, il faut mettre un module qui tient en un seul fichier.
Pas vraiment tenté de lui faire avaler tout un ensemble d’items qui se référencent les uns les autres.

Bonjour,
Je venais justement sur le forum pour voir si de tels essais avaient déjà été entrepris.
J’ai fait de nombreux essais de création de ressources avec l’IA pour Moodle. Pour la création de questions cela fonctionne bien. ChatGPT (entre autre) connais la structure du code XML ou GIFT et crée à la volée la quasi totalité des 6 types de questions natives à Moodle. Des outils basés sur l’IA tels que Quiz Wizard (gratuit) ou Nolej (payant) font cela très bien. Pour un cours complet c’est plus compliqué, aucune IA n’en est, pour le moment, capable. Pour autant c’est possible. Par exemple avec le plugin Edunao et d’après une vidéo du MoodleLab dans un futur proche nativement dans Moodle. On peut bien sur également faire créer à une IA une page html sur le thème et avec la mise en forme désirée, importable dans n’importe quel LMS.
Donc, d’après moi, créer un cours Opale avec l’IA doit être possible. Pour cela il faudrait que l’on puisse fournir à l’IA, en RAG ou via un lien, la structure XML de chaque item et la façon dont ils sont imbriqués dans une structure linéaire (cela éliminerait sans doute certains items), libre à l’auteur d’ensuite les agencer à sa convenance et/ou de créer les items séparément. C’est presque à coup sur ainsi que procède Edunao.
Il est très certainement possible d’extraire la structure XML de chaque item à partir d’exports scar (comme c’est possible de mbz) mais c’est un travail long et laborieux. Cela n’est-il pas disponible quelque part ?

Opale, comme tous les modèles documentaires SCENARI, propose en téléchargement le schéma en sous format RelaxNG. Sur la page de téléchargement Opale dans le groupe « Autres téléchargements » en bas vous trouverez un ZIP avec le schéma RelaxNG de chaque type d’item.