Skip to content

Métodos

set-alarm

Este función nos ayudará a ejecutar un bot-node luego te un tiempo dado, set-alarmtiene cuatro parámetros: el contexto, el bot-node que se activará, el tiempo de conteo en el siguiente formato %Y-%m-%dT%H:%M:%S (año, mes, día, hora, minuto, segundo), y fonalmente un string con el payload (mensage para el siguiente nodo).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
(bot my-alarm (context message)
    (node-result context "Alarm triggered!" end-node)
)

(bot-node (context message)
    (define alarm-set 
        (set-alarm 
            context
            "my-alarm"
            (time-to-string (time-now) "%Y-%m-%dT%H:%M:%S")
            "ALARM_KEY"
        )
    )
    (node-result
        context
        (if alarm-set "Alarm activated" "Alarm not activated")
        end-node
    )
)

translate

Esta función nos permite reemplazar un substring por el valor de una valiable del contexto, entregándo el resultado. translate tiene dos parámetros: el contexxto y el string que será modificado, éste último debe tener el siguiente formato: 'Algún texto y la {{VARIEBLE-DE-CONTEXTO}}' donde el texto entre llaves es el nombre de la variable en contexto.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
;;;;;;;;;;;;;;;; Contexto ;;;;;;;;;;;;;;;;
'string': 'texto',
'float': 3.14,
'int': 3,
'list': ['1', '2', 3],
'single': ['1'],
'STRING_ENTRY': ['Aquí debería haber un {{string}}'],
'NUMBERS_ENTRY': ['Pi es {{float}} aproximadamente y su unidad es {{int}}'],
'LIST_ENTRY': ['Tenemos la lista con tres elementos: {{list}} y empieza con {{single}}']
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(translate context STRING_ENTRY)
>> 'Aquí debería haber un texto'

(translate context NUMBERS_ENTRY)
>> 'Pi es 3.14 aproximadamente y su unidad es 3'

(translate context LIST_ENTRY)
>> 'Tenemos la lista con tres elementos: 1, 2, 3 y empieza con 1'

answer-for-intent

Esta función te entrega una respuesta a una 'Intención' para que funcione, necesitamos entregarle el contexto y el identificador de la intención. Así, una vez hemos definido la relación Pregunta y Respuesta, cuando llamemos esta función recibiremos una de las posibles respuestas para esa intención.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
;;;;;;;;;;;;;;;;;; Textos ;;;;;;;;;;;;;;;;;;;;;
'WELCOME': ['¡Hola {{first-name}}! ¿en qué puedo ayudarte?']
'WAIT': ['Ok. Espera un momento.']
;;;;;;;;;;;;;;;;;;; Intenciones ;;;;;;;;;;;;;;;;
'INTENT_1', 'INTENT_2'
;;;;;;;;;; Preguntas y Respuestas ;;;;;;;;;;;;;;
{ identifier:'INTENT_1', texts:'WELCOME' }
{ identifier:'INTENT_2', texts:'WAIT' }
;;;;;;;;;;;;;;;;;;; Contexto ;;;;;;;;;;;;;;;;;;;;
'first-name': 'Sergio'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(bot-node (data)
    (node-result
        data
        (answer-for-intent data "INTENT_1")
        end-node
    )
)
>> '¡Hola Sergio! ¿en qué puedo ayudarte?'

(bot-node (data)
    (node-result
        data
        (answer-for-intent data "INTENT_2")
        end-node
    )
)
>> 'Ok. Espera un momento.'

string-find-similar

string-find-similar requiere dos parametros: la palabra que usaremos para buscar como string y una lista de strings con las opciones de palabras a encontrar. Esta función retornará la palabra de la lista que sea más similar a la palabra buscada, de no encontrar algo lo suficientemente similar en la lista retornará vacío (nil)

1
2
3
4
5
6
7
[define lista (list "Telefonía móvil" "Telefonía fija" "Servicio de internet")]

(string-find-similar "movil" lista)
>> "Telefonía móvil"

(string-find-similar "potato" lista)
>> nil