Scripts


Aunque utilizando reglas, expectativas y variables es posible mantener una conversación interesante con el usuario, para lograr una mayor profundidad necesitaremos que el bot pueda actuar de manera más compleja. Para tal fin, podemos recurrir a los scripts, que no son sino pequeños fragmentos de programación con los cuales el bot será capaz de recordar datos de una sesión a otra, efectuar operaciones y tomar decisiones. Veamos el siguiente ejemplo:

<rule>
     <input>suma <wildcard name="$número1$" /> y <wildcard name="$número2" /></input>
     <output script="resultado=$número1$+$número2$;">El resultado es $resultado$.</output>
</rule>
En este sencillo ejemplo, nos limitamos a sumar los dos números que ha indicado el usuario para informarle del resultado. Por tanto, si el usuario dice Suma 2 y 2., el bot le responderá El resultado es 4. Sin duda se trata de un ejemplo muy sencillo, pero que sería prácticamente imposible de resolver utilizando únicamente reglas, expectativas y variables.

Otra utilidad básica de los scripts es para conseguir que el bot recuerde datos que le indica el usuario. La siguiente regla almacena el color favorito del usuario y permite utilizarlo en otras sesiones.

<rule>
     <input>mi color favorito es el <wildcard name="$valor$" /></input>
     <output script="store($color$);">El $color$ es un color muy bonito.</output>
</rule>
Cuando se active esta regla, el bot no solo recordará el color favorito del usuario durante esta conversación, sino que en todas las conversaciones posteriores, el bot podrá hacer referencia al color favorito del usuario. Además, dado que las reglas que contienen variables que no se han definido no se consideran correctas, podemos despreocuparnos hasta cierto punto acerca de si una variable se ha definido o no, ¡si no se ha definido sencillamente no aparecerá! Es decir, si definimos como salida de una regla ¿Lo has comprado de color $color$? y cuando se selecciona esa regla, aún no se ha definido la variable $color$, se continuará buscando otra regla.


Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012.
Si continúa navegando consideramos que acepta el uso de cookies. Aceptar | Más información