Métodos¶
set-alarm¶
Este función nos ayudará a ejecutar un bot-node luego te un tiempo dado, set-alarm
tiene 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 |