Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Transparence de l’IA et tenue des registres

Après cette leçon: Je peux signaler l’IA, étiqueter ce qu’elle produit et tenir les enregistrements qu’une revue demande.

Leçon de 65 min7 commandesLab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Une personne ou un programme ?

La transparence de l’IA consiste à dire aux gens qu’ils ont affaire à un système d’IA, et à montrer ce qu’il a produit. Elle compte, car on ne fait pas la même confiance à une réponse écrite par un programme.

La tenue des registres en est l’autre moitié. Quand un incident arrive, une revue doit savoir ce qui a été demandé, quel modèle a répondu et qui a validé.

À la fin de cette leçon

Remarque

Je peux signaler l’IA, étiqueter ce qu’elle produit et tenir les enregistrements qu’une revue demande.

Mots clés

MotCe que ça veut direExemple
Mentiondire à une personne qu’elle a affaire à une IA
Étiquetteune marque visible indiquant que l’IA l’a produit
Enregistrementla note gardée d’une réponse de l’IA
Version du modèlele modèle exact qui a réponduv3
Conservationla durée pendant laquelle on garde un enregistrement
Fiche systèmeune page courte qui décrit une fonction IA

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Dire aux gens qu’ils parlent à une IA

Dites-le avant que la personne ne s’appuie sur la réponse, là où elle le verra. Placez la mention au début d’une discussion, à côté d’une réponse ou dans les premiers mots d’un appel.

Ajoutez en une ligne ce qu’elle sait faire ou non, et comment joindre une personne. Fixer les attentes en détail est l’objet de la leçon Fixer les attentes pour une fonction d’IA.

Étiqueter ce que l’IA a produit

Un texte, une image ou un résumé produit par un modèle porte une courte étiquette visible. L’étiquette dit qui l’a produit, pas si c’est bon.

Quand un fichier sort de votre produit, ajoutez aussi une note dans ses propriétés. L’étiquette reste ainsi présente quand quelqu’un copie le fichier.

Exemple détaillé : où le dire

EndroitCe que la personne voit
Début d’une discussionVous discutez avec un assistant d’IA. Une personne peut prendre le relais.
Sous une imageCréée avec l’IA
Bas d’un brouillon de courrielRédigé par l’IA, relu par Louis Martin
Premiers mots d’un appelVous parlez à un assistant automatique.

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Ce que doit contenir un enregistrement

Un enregistrement garde la question posée, la version du modèle qui a répondu et la personne qui a validé une action. Sans la version, personne ne peut dire quel modèle s’est trompé.

Gardez un enregistrement aussi longtemps qu’une revue en a besoin, sans les données personnelles inutiles. Voir aussi Journaliser sobrement une application d’IA, et le module Vie privée et protection des données.

Une erreur courante

Attention

Beaucoup pensent que plus d’enregistrements, c’est toujours plus sûr, et gardent tout pour toujours. Un enregistrement plein de données personnelles, gardé des années, est un risque en soi. Gardez seulement les champs utiles à une revue, le temps qu’elle en a besoin.

Une courte fiche système décrit la fonction

Une fiche système, ou fiche de modèle, est une page courte sur une fonction IA ou un modèle. Elle donne son objectif, ses limites, la façon dont elle a été évaluée, son responsable et un contact.

Écrivez-la pour quelqu’un qui n’a jamais vu la fonction. Un champ vide est un manque, comme un manque dans une revue.

Les règles le demandent de plus en plus

Dans l’UE et au Royaume-Uni, les règles en demandent de plus en plus aux concepteurs. Elles visent la mention de l’IA, l’étiquetage de ce qu’elle produit et la tenue d’enregistrements. Ce qu’une règle demande, et depuis quand, varie selon le lieu et évolue.

Ceci est une information générale, pas un conseil juridique : consultez le texte officiel en vigueur ou une personne qualifiée. Faire ces choses ne suffit pas, à soi seul, à rendre un produit conforme à une règle.

Exemple détaillé : une courte fiche système

ChampAssistant commandes
ObjectifRépond aux questions sur les commandes
LimitesNe peut changer ni paiement ni adresse
Évaluations40 cas enregistrés, 37 réussis
ResponsableCamille Roux
Contact[email protected]

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Écrire l’assistant du modèle, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const base = process.env.AI_URL || \"http://ai:4000\";' '// Les jetons d’une réponse, ou null si elle n’en donne pas.' 'function compter(donnees, nom) {' '  return donnees.usage && typeof donnees.usage[nom] === \"number\" ? donnees.usage[nom] : null;' '}' > model.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire l’assistant du modèle, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function demander(messages, echantillon, max) {' '  try {' '    const res = await fetch(base + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: messages, max_tokens: max || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"statut \" + res.status);' '    const d = await res.json();' '    return { texte: d.choices[0].message.content, entree: compter(d, \"prompt_tokens\"), sortie: compter(d, \"completion_tokens\"), enregistre: false };' '  } catch (erreur) {' '    console.log(\"Échantillon enregistré : aucun modèle n’a répondu (\" + erreur.message + \").\");' '    return { texte: echantillon, entree: null, sortie: null, enregistre: true };' '  }' '}' 'module.exports = { demander };' >> model.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire la vérification des enregistrements, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { demander } = require(\"./model\");' '' 'const GARDER_JOURS = 90; // au-delà, un enregistrement est effacé' '// Enregistrements inventés d’un assistant client. L’âge est un nombre de jours, pas une horloge.' 'const enregistrements = [' '  { id: 1, question: \"Où est ma commande ?\", version: \"v3\", action: false, validePar: \"\", age: 12, personnel: false },' '  { id: 2, question: \"Remboursez la commande 88\", version: \"v3\", action: true, validePar: \"\", age: 30, personnel: false },' '  { id: 3, question: \"Changez mon adresse\", version: \"\", action: true, validePar: \"Louis Martin\", age: 120, personnel: false },' '  { id: 4, question: \"Pourquoi deux prélèvements ?\", version: \"v2\", action: false, validePar: \"\", age: 5, personnel: true },' '];' > registre.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire la vérification des enregistrements, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function problemes(e) {' '  const trouves = [];' '  if (e.question.trim() === \"\") trouves.push(\"pas de question\");' '  if (e.version.trim() === \"\") trouves.push(\"pas de version du modèle\");' '  if (e.action && e.validePar.trim() === \"\") trouves.push(\"pas de validateur\");' '  if (e.age > GARDER_JOURS) trouves.push(\"durée de conservation dépassée\");' '  if (e.personnel) trouves.push(\"données personnelles inutiles\");' '  return trouves;' '}' >> registre.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire la vérification des enregistrements, partie 3

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Une courte fiche pour la fonction. Chaque champ doit contenir des mots.' 'const fiche = { objectif: \"Répondre sur les commandes\", limites: \"Ne touche pas aux paiements\", evaluations: \"\", responsable: \"Camille Roux\", contact: \"[email protected]\" };' >> registre.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire la vérification des enregistrements, partie 4

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  enregistrements.forEach(function (e) {' '    const p = problemes(e);' '    console.log(\"Enregistrement \" + e.id + \" : \" + (p.length === 0 ? \"ok\" : p.join(\", \")));' '  });' '  const vides = Object.keys(fiche).filter(function (k) { return fiche[k].trim() === \"\"; });' '  console.log(\"Champs vides de la fiche : \" + (vides.length === 0 ? \"aucun\" : vides.join(\", \")));' '  const q = \"Écrivez une phrase courte qu’une fenêtre de discussion affiche pour dire qu’on parle à un système d’IA.\";' '  const r = await demander([{ role: \"user\", content: q }], \"Vous discutez avec un assistant d’IA. Il peut se tromper, et une personne peut prendre le relais.\", 60);' '  console.log(\"Un avis possible : \" + r.texte);' '}' 'main();' >> registre.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lancer la vérification des enregistrements

Commande
docker exec -w /home/node/project agent node registre.js

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une sortie possible

LigneCe qu’elle montre
Enregistrement 1 : okRien ne manque
Enregistrement 2 : pas de validateurUn remboursement sans personne nommée
Enregistrement 3 : pas de version du modèle, durée de conservation dépasséeOn ignore quel modèle a répondu, et il est trop ancien
Enregistrement 4 : données personnelles inutilesIl garde plus que ce qu’une revue demande
Champs vides de la fiche : evaluationsLa fiche ne dit rien des tests
Un avis possible : ...Votre propre appel. Il change à chaque exécution, ou affiche Échantillon enregistré

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À propos de ce labo et de sa source: Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.