¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Cómo escribe un chatbot sus respuestas

Después de esta lección: Puedo explicar cómo escribe un chatbot una respuesta.

Lección de 45 min2 comandosLaboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

Un chatbot predice la siguiente palabra

Un chatbot es un programa de IA con el que hablas escribiendo. Escribe cada respuesta prediciendo la siguiente palabra, una y otra vez.

Esto importa porque explica su costumbre más rara. Un chatbot puede sonar muy seguro y aun así estar equivocado.

Al terminar esta lección

Nota

Puedo explicar cómo escribe un chatbot una respuesta.

Palabras clave

PalabraQué significa
Chatbotun programa de IA con el que hablas escribiendo
Promptlas palabras que envías a un chatbot
Predeciradivinar lo que viene después
Probablevisto a menudo en los ejemplos
Seguro de síque suena convencido

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un chatbot escribe palabra a palabra

Un chatbot ha aprendido de una cantidad enorme de texto. Cuando envías un prompt, predice la siguiente palabra y la añade. Luego predice la palabra que va detrás.

Sigue así hasta que la respuesta está terminada. No planea toda la respuesta antes de empezar.

Ejemplo resuelto: ¿qué viene después?

Las palabras hasta ahoraSiguiente palabraVista de cada 10
Después de clase me gusta jugar alfútbol5
Después de clase me gusta jugar albaloncesto3
Después de clase me gusta jugar alpádel2

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Cuenta tú las palabras siguientes

El Python de abajo aprende de cuatro frases cortas. Cuenta qué palabras vinieron justo después de una palabra que tú eliges.

Pulsa Ejecutar. Después cambia «al» por «gusta» en la última línea y vuelve a ejecutarlo.

¿Qué palabras vinieron después?

Código: python
# Cuatro frases de las que aprende el programa.
sentences = [
    "después de clase me gusta jugar al fútbol",
    "después de clase me gusta jugar al baloncesto",
    "el sábado me gusta jugar al fútbol",
    "después de clase me gusta comer patatas",
]

def next_words(word):
    counts = {}
    for sentence in sentences:
        words = sentence.split()
        for i in range(len(words) - 1):
            if words[i] == word:
                after = words[i + 1]
                if after not in counts:
                    counts[after] = 0
                counts[after] = counts[after] + 1
    return counts

print(next_words("al"))

Pregunta al chatbot del laboratorio

Nota

Pulsa Iniciar el laboratorio y luego los dos botones Ejecutar de abajo. Cada uno pide al chatbot del laboratorio que termine una frase. Si tu centro no tiene la IA activada, se imprime un ejemplo grabado, bien marcado.

Pide la siguiente palabra

Comando
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const post=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());post('Termina la frase con una sola palabra y nada más: Después de clase me gusta jugar al',12,0.7).then(j=>console.log('Chatbot: '+j.choices[0].message.content)).catch(e=>console.log('Ejemplo grabado, ningún chatbot respondió: fútbol'))"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Pregunta lo mismo dos veces

Comando
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const post=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());const s=['fútbol','baloncesto'];(async()=>{for(let i=0;i<2;i++){let t;try{const j=await post('Termina la frase con una sola palabra y nada más: Después de clase me gusta jugar al',12,1);t='Chatbot: '+j.choices[0].message.content}catch(e){t='Ejemplo grabado, ningún chatbot respondió: '+s[i]}console.log('Intento '+(i+1)+': '+t)}})()"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sonar seguro no es tener razón

Un chatbot elige palabras probables. No comprueba si son verdad. Una frase falsa también puede ser probable.

Así que un chatbot puede escribir algo falso con una voz tranquila y segura de sí. Sonar seguro no es lo mismo que tener razón.

Un error frecuente

Advertencia

Mucha gente cree que un chatbot busca la respuesta, como un buscador. No es así. Escribe palabras probables a partir de patrones, así que comprueba todo lo importante antes de usarlo.

Para ir más lejos: cómo funciona por dentro

Un chatbot real usa la misma idea que tus recuentos, a una escala mucho mayor. Mira muchas palabras antes de la siguiente, no solo la última.

Si te interesa, el módulo universitario «Cómo funcionan los modelos de lenguaje: transformers desde cero» explica cómo se hace.

Sobre este laboratorio y su código: Laboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.