La aplicación que prometía demasiado
Fijar expectativas es decir con claridad qué hace una función de IA y qué no, antes de que alguien se fíe de ella. Importa porque la confianza se decide en los primeros segundos.
Una aplicación de repaso dice: «Pregunta lo que quieras y recibe la respuesta correcta». Una alumna se fía la noche antes del examen, recibe una fecha equivocada y la aprende. La aplicación no se rompió: prometió más de lo que podía.
Al final de esta lección
Nota
Puedo decir a una persona qué puede y qué no puede hacer una función antes de que se fíe de ella.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Expectativa | lo que una persona cree que hará la función | |
| Afirmación | una frase sobre lo que hace la función | siempre acierta |
| Límite | algo que la función no puede hacer | |
| Alcance | los trabajos para los que se hizo la función | |
| Ejemplo de fallo | un caso real en que se equivoca |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Di para qué sirve y para qué no
Una persona decide cuánto se fía de una función en los primeros segundos. Dale tres cosas cortas: para qué sirve, para qué no sirve y un ejemplo en el que falla.
El ejemplo de fallo es lo que los equipos se saltan. También es lo que la gente recuerda.
Un buen texto para una herramienta de apuntes
| Parte | Palabras de ejemplo |
|---|---|
| Sirve para | Convierte tus apuntes en un resumen corto |
| No sirve para | Comprobar datos ni dar consejos de salud o de leyes |
| Falla cuando | Tus apuntes tienen dos fechas distintas para un mismo hecho |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Algunas afirmaciones no se pueden respaldar
Una afirmación que no puedes respaldar es la que una sola respuesta errónea desmiente. Palabras como siempre, nunca falla, garantizada y 100% son las habituales. También lo es cualquier cosa, porque nadie puede probar todas las preguntas.
Cámbiala por algo que puedas contar, como «acierta 9 de 10 preguntas de prueba». El módulo 68 enseña a medirlo.
Un error frecuente
Advertencia
Mucha gente cree que basta una nota pequeña al pie que diga «puede equivocarse». Nadie la lee, así que no fija ninguna expectativa. Di el límite junto a la respuesta, donde la persona mira, justo cuando va a fiarse.
Escribe el ayudante del modelo, parte 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const base = process.env.AI_URL || \"http://ai:4000\";' '// Los tokens de una respuesta, o null si no trae ninguno.' 'function count(data, name) {' ' return data.usage && typeof data.usage[name] === \"number\" ? data.usage[name] : null;' '}' > model.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Escribe el ayudante del modelo, parte 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function ask(messages, sample, 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(\"estado \" + res.status);' ' const d = await res.json();' ' return { text: d.choices[0].message.content, inTokens: count(d, \"prompt_tokens\"), outTokens: count(d, \"completion_tokens\"), recorded: false };' ' } catch (error) {' ' console.log(\"Muestra grabada: ningún modelo respondió (\" + error.message + \").\");' ' return { text: sample, inTokens: null, outTokens: null, recorded: true };' ' }' '}' 'module.exports = { ask };' >> model.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Escribe el revisor de afirmaciones, parte 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { ask } = require(\"./model\");' 'const BANNED = [\"siempre\", \"nunca falla\", \"garantizada\", \"100%\", \"cualquier cosa\"];' 'const TEXTS = [' ' { id: \"a\", text: \"Pregunta cualquier cosa y recibe una respuesta garantizada.\" },' ' { id: \"b\", text: \"Redacta una respuesta a partir de tus apuntes. Puede equivocarse, así que revísala.\" },' ' { id: \"c\", text: \"Siempre acierta, el 100% de las veces.\" },' ' { id: \"d\", text: \"Resume una página. No sirve para consejos médicos.\" },' '];' > expect.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Escribe el revisor de afirmaciones, parte 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function claims(text) {' ' const low = text.toLowerCase();' ' return BANNED.filter(function (b) { return low.includes(b); });' '}' 'function hasLimit(text) {' ' const low = text.toLowerCase();' ' return low.includes(\"puede equivocarse\") || low.includes(\"no sirve para\");' '}' >> expect.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Escribe el revisor de afirmaciones, parte 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' let fail = 0;' ' for (const t of TEXTS) {' ' const found = claims(t.text);' ' let verdict = \"aviso\";' ' if (found.length > 0) verdict = \"falla\";' ' else if (hasLimit(t.text)) verdict = \"pasa\";' ' if (verdict === \"falla\") fail++;' ' console.log(t.id + \" \" + verdict + \" \" + JSON.stringify(found));' ' }' ' console.log(\"fallan \" + fail + \" de \" + TEXTS.length);' ' const msg = \"Escribe una frase corta que diga qué no puede hacer una herramienta que resume apuntes.\";' ' const reply = await ask([{ role: \"user\", content: msg }], \"No puede comprobar datos que no estén en tus apuntes.\", 30);' ' console.log(\"frase de límite: \" + reply.text);' '}' 'main();' >> expect.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Ejecuta el revisor de afirmaciones
docker exec -w /home/node/project agent node expect.jsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Qué imprime el Run
| Línea | Qué muestra |
|---|---|
| a falla ["garantizada","cualquier cosa"] | Dos afirmaciones que nadie puede respaldar |
| b pasa [] | Ninguna afirmación, y dice que puede equivocarse |
| c falla ["siempre","100%"] | Otras dos afirmaciones |
| d pasa [] | Dice para qué no sirve |
| fallan 2 de 4 | La mitad de estos textos hay que reescribirlos |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.