Programacion
Un Chatbot Que Solo Conoce a Tu Familia
Escribe en Python un chatbot que conozca a tu familia y nada mas, despues hazle las mismas preguntas a un asistente de IA real y descubre en que se equivoca cada uno.
Medio · 2 horas

Introduccion
Un chatbot que lo sabe todo es impresionante y casi imposible de entender. Un chatbot que solo sabe el nombre de tu perro y el cumpleanos de tu abuela no es ninguna de las dos cosas, y justo por eso vale la pena construirlo.
El tuyo son unas treinta lineas de Python, escritas en el editor de este sitio, sin instalar nada. Despues le haras a un asistente de IA real las mismas preguntas que tu bot puede contestar, y anotaras donde falla cada uno.
El Por Que
Tu bot busca cosas. Guarda un diccionario de datos, y cuando una pregunta no coincide con ninguno, no tiene nada que ofrecer. Un modelo de lenguaje grande hace algo completamente distinto: predice texto probable, por eso puede contestar casi cualquier cosa y por eso a veces inventa una respuesta con total seguridad. Ver las dos conductas lado a lado, en preguntas cuya respuesta verdadera ya conoces, es la forma mas clara de entender que hacen en realidad estas herramientas.
Instrucciones Paso a Paso
- 1
Abre el editor de Python de este sitio y escribe el programa inicial de abajo, o pegalo. Ejecutalo y preguntale por el perro. Despues preguntale algo de lo que nunca ha oido hablar y observa que hace.
- 2
Cambia los tres datos por datos verdaderos de tu propia casa. Manten cada palabra clave corta y en minusculas, porque esa es la palabra que tu bot busca dentro de la pregunta.
- 3
Agrega siete datos mas, hasta tener diez. Ejecuta el programa cada dos o tres, porque una coma que falta es mucho mas facil de encontrar cuando solo agregaste dos lineas.
- 4
Intenta romperlo. Pregunta por el perro sin usar la palabra perro. Pregunta dos cosas en una sola oracion. Anota cada pregunta que deberia haber funcionado y no funciono.
- 5
Arregla una de esas fallas. Hacer que dos palabras clave distintas apunten a la misma respuesta es la reparacion mas sencilla, por ejemplo que tanto 'perro' como el nombre real de tu perro devuelvan el mismo dato.
- 6
Ahora hazle a un asistente de IA, con un adulto presente, esas mismas diez preguntas. Es imposible que conozca las respuestas verdaderas. Anota de todos modos lo que conteste.
- 7
Llena la hoja de comparacion. Tu bot dice que no sabe cuando no sabe. Anota que hace el asistente en su lugar y despues decide cual de esas dos conductas preferirias en algo de lo que dependes.
El programa inicial
Treinta lineas, y cada una hace algo que puedes senalar con el dedo. El diccionario de arriba es lo unico que tu bot sabe; todo lo de abajo es el ciclo que lee una pregunta y busca una palabra clave que coincida.
datos = {
"perro": "Nuestra perra se llama Pepper y tiene 4 anos.",
"carro": "El carro es un Honda azul.",
"cumpleanos": "El cumpleanos de la abuela es el 2 de marzo.",
}
print("Preguntame sobre mi familia. Escribe adios para terminar.")
while True:
pregunta = input("> ").lower()
if pregunta == "adios":
print("Hasta luego.")
break
respuesta = "Esa no me la se."
for clave in datos:
if clave in pregunta:
respuesta = datos[clave]
print(respuesta)La linea mas importante es la que pone la respuesta en 'Esa no me la se' antes de que empiece la busqueda. Ese valor por defecto es lo que hace que tu bot admita cuando no tiene nada, y es exactamente la conducta que un modelo de lenguaje no tiene.
Tu Bot contra el Asistente
Diez preguntas cuya respuesta verdadera ya conoces. Llena las cuatro columnas para cada una.
| Pregunta | Respuesta verdadera | Lo que dijo tu bot | Lo que dijo el asistente |
|---|---|---|---|
| Fila 1, Pregunta | Fila 1, Respuesta verdadera | Fila 1, Lo que dijo tu bot | Fila 1, Lo que dijo el asistente |
| Fila 2, Pregunta | Fila 2, Respuesta verdadera | Fila 2, Lo que dijo tu bot | Fila 2, Lo que dijo el asistente |
| Fila 3, Pregunta | Fila 3, Respuesta verdadera | Fila 3, Lo que dijo tu bot | Fila 3, Lo que dijo el asistente |
| Fila 4, Pregunta | Fila 4, Respuesta verdadera | Fila 4, Lo que dijo tu bot | Fila 4, Lo que dijo el asistente |
| Fila 5, Pregunta | Fila 5, Respuesta verdadera | Fila 5, Lo que dijo tu bot | Fila 5, Lo que dijo el asistente |
| Fila 6, Pregunta | Fila 6, Respuesta verdadera | Fila 6, Lo que dijo tu bot | Fila 6, Lo que dijo el asistente |
| Fila 7, Pregunta | Fila 7, Respuesta verdadera | Fila 7, Lo que dijo tu bot | Fila 7, Lo que dijo el asistente |
| Fila 8, Pregunta | Fila 8, Respuesta verdadera | Fila 8, Lo que dijo tu bot | Fila 8, Lo que dijo el asistente |
| Fila 9, Pregunta | Fila 9, Respuesta verdadera | Fila 9, Lo que dijo tu bot | Fila 9, Lo que dijo el asistente |
| Fila 10, Pregunta | Fila 10, Respuesta verdadera | Fila 10, Lo que dijo tu bot | Fila 10, Lo que dijo el asistente |
Marca cada fila donde el asistente dio una respuesta segura que no era cierta. Esa conducta tiene nombre, alucinacion, y esta tabla eres tu documentandola.