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

Rendre les fonctions d’IA accessibles

Après cette leçon: Je peux rendre une fonction d’IA utilisable par des gens aux besoins différents.

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

Juste, et pourtant inutile

Une fonction de banque donne une réponse correcte, en un long paragraphe de mots difficiles. Un client lit lentement. Un autre utilise un lecteur d’écran. Un troisième a un mauvais réseau et attend dix secondes.

Une bonne réponse qu’une personne ne peut pas utiliser reste un échec. L’accessibilité fait partie de la qualité d’une fonction.

À la fin de cette leçon

Remarque

Je peux rendre une fonction d’IA utilisable par des gens aux besoins différents.

Mots clés

MotCe que ça veut direExemple
Lecteur d’écranun logiciel qui lit une page à voix haute
Langage simpledes phrases courtes et des mots de tous les jours
Jargonun mot difficile que seuls les experts connaissentultérieurement
Temps de lecturele temps qu’il faut pour lire une réponse
Autre voieune autre façon de faire la même chose

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

Le langage simple se contrôle par des règles

Le langage simple n’est pas une impression. Vous pouvez fixer des règles. Aucune phrase de plus de 12 mots. Aucun mot d’une courte liste de jargon. Aucune réponse de plus de 40 mots.

On peut passer une règle sur chaque réponse enregistrée. Celles qui l’enfreignent sont celles à réécrire.

Le temps, l’attente et les autres voies

Calculez le temps de lecture : les mots fois 60, divisés par les mots par minute. Une réponse de 40 mots à 120 mots par minute prend 20 secondes. Les lecteurs lents ont besoin de plus.

Montrez une attente visible pour une réponse lente, et laissez la personne l’arrêter. Proposez une autre voie que la discussion : un bouton, un formulaire ou un numéro de téléphone.

Une erreur courante

Attention

Beaucoup pensent que l’accessibilité ne concerne que le handicap, donc qu’elle peut attendre. Elle concerne tout le monde : une personne fatiguée, un lecteur débutant, un mauvais réseau. Testez les règles sur chaque réponse et proposez une autre voie qu’une zone de discussion.

É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 le contrôleur de langage simple, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { demander } = require(\"./model\");' 'const REGLES = { maxPhrase: 12, maxMots: 40, jargon: [\"subséquemment\", \"paramétrer\", \"ultérieurement\"], mpm: 120 };' 'const REPONSES = [' '  { id: \"r1\", texte: \"Appuyez sur le bouton vert. Puis choisissez une date.\" },' '  { id: \"r2\", texte: \"Vous devrez ultérieurement paramétrer le menu pour changer la date avant de confirmer.\" },' '  { id: \"r3\", texte: \"Votre commande est en route. Elle devrait arriver vendredi. Sinon, dites-le-nous et nous regarderons ce qui s’est passé.\" },' '];' > acces.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 le contrôleur de langage simple, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function mots(texte) {' '  return texte.split(\" \").filter(function (m) { return m.length > 0; });' '}' 'function phrases(texte) {' '  return texte.split(\".\").map(function (p) { return p.trim(); }).filter(function (p) { return p.length > 0; });' '}' >> acces.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 le contrôleur de langage simple, partie 3

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function problemes(texte) {' '  const sortie = [];' '  const plus = Math.max.apply(null, phrases(texte).map(function (p) { return mots(p).length; }));' '  if (plus > REGLES.maxPhrase) sortie.push(\"phrase longue\");' '  if (mots(texte).length > REGLES.maxMots) sortie.push(\"trop long\");' '  const durs = mots(texte.toLowerCase()).filter(function (m) { return REGLES.jargon.includes(m); });' '  if (durs.length > 0) sortie.push(\"mots difficiles\");' '  return sortie;' '}' >> acces.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 le contrôleur de langage simple, partie 4

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  for (const r of REPONSES) {' '    const secondes = Math.ceil((mots(r.texte).length * 60) / REGLES.mpm);' '    console.log(r.id + \" \" + mots(r.texte).length + \" mots, \" + secondes + \" s, \" + JSON.stringify(problemes(r.texte)));' '  }' '  const q = \"Réécrivez avec des mots simples : Vous devrez ultérieurement paramétrer le menu pour changer la date.\";' '  const reponse = await demander([{ role: \"user\", content: q }], \"Ensuite, utilisez le menu pour changer la date.\", 30);' '  console.log(\"simple : \" + reponse.texte);' '}' 'main();' >> acces.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 le contrôleur de langage simple

Commande
docker exec -w /home/node/project agent node acces.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.

Ce que le Run affiche

LigneCe qu’elle montre
r1 9 mots, 5 s, []Court et simple : aucun problème
r2 13 mots, 7 s, ["phrase longue","mots difficiles"]Une phrase longue avec deux mots difficiles
r3 18 mots, 9 s, []Sous toutes les limites : elle passe
simple : ...Une phrase. Les mots changent à chaque Run

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.