 En este vídeo tutorial, vamos a construir nuestro propio asistente virtual con Scratch 3. Aunque será muy sencillo, servirá para ilustrar la tecnología de inteligencia artificial que hay detrás de estos asistentes. Con Scratch simularemos el salón de una casa donde hay una lámpara y un ventilador que deseamos apagar o encender a través de órdenes que en lenguaje natural daremos a nuestros asistentes. Vamos a comenzar por cargar los Sprites que vamos a utilizar en el programa. Por un lado la lámpara, por otro lado el ventilador. A continuación el objeto Giga, que será el encargado de implementar el asistente en sí. Y para darle un poquito de onda, vamos a cargar también un fondo que representa una casa. Ya tenemos nuestro entorno donde se ejecutará el asistente. El funcionamiento del ventilador es muy sencillo. Basta con que reciba un evento, encender ventilador para que se ponga en marcha. Lo mismo, cuando recibe un evento apagar ventilador se para. Con la lámpara pasa lo mismo. Y por último tenemos a nuestro amigo Giga cuyo programa en principio es muy sencillo. Lo único que hará es presentarse y en un bucle infinito nos preguntará continuamente qué es lo que queremos hacer y por lo pronto únicamente hace un eco de la respuesta. Le decimos cualquier cosa y él lo repite. Aún no es un asistente pero al menos ya responde. En lugar de repetir lo mismo que dice el usuario, queremos que Giga lo interpreta y decida que acción debe realizar sobre la lámpara el ventilador. La solución más sencilla que se nos ocurre consiste en utilizar bloques condicionales para comparar la respuesta del usuario con las cadenas alfanuméricas enciende la luz, apaga la luz, enciende el ventilador y apaga el ventilador. Si la respuesta coincide con alguna de ellas, Giga lanzará el evento que corresponda para poner en mancha o apagar el dispositivo en cuestión. Vamos a implementarlo. Se trataría de eliminar este bloque que hace el eco y en su lugar colocar varios bloques condicionales. ¿Qué? Compararemos la respuesta que obtengamos con la cadena enciende la luz, apaga la luz, etcétera. Si se produce esta coincidencia, Giga enviará el evento encender lámpara y para darle un poquito de más onda podemos hacer que diga algo como respuesta, por ejemplo, ok, enciende la luz. Este bloque lo repetimos tres veces más y modificamos las comparaciones. Aquí, en vez de enciende la luz, apaga la luz. El evento sería apagar lámpara. Cambiamos el texto de respuesta y lo mismo hacemos con los otros dos, pero para el ventilador. Y ya tendríamos una primera versión del programa del asistente. Veamos cómo funciona. Cuando lanzamos, como órdenes, los textos precisos enciende la luz. Lo mismo cuando apaga la luz. Lo mismo con el ventilador para encenderlo y lo mismo para apagarlo. El problema, como te habrás percatado, es que el asistente solo es capaz de responder a nuestra intención si escribimos exactamente alguna de las cadenas utilizadas en las condiciones. Basta con que nos equivoquemos en una letra para que el asistente no sea capaz de saber a qué nos referimos. Puede ser que nos equivoquemos en una letra, puede ser que digamos una frase sinónica, como por ejemplo apagar la luz. Tampoco lo entiendo. Obviamente, esto no es para nada un asistente. Se trata más bien de un intérprete de comando.