0.1.1 • Published 3 years ago
wasap-core v0.1.1
wasap-core
Es un conjunto de herramientas para wasap-bot, pero puede ser de utilidad para diferentes proyectos de chatbot.
Instalacion
npm install wasap-coreUso
La libreria usa flujos de conversacion. Estos se guardan en memoria o en una base de datos, dependiendo de su preferencia.
Para iniciar la libreria debe importar la clase Flow
import { Flow } from "wasap-core"
const f = new Flow()para añadir un flujo debe invocar addKeyword
const flow1 = f.addKeyword({
    action: ['ping'] // requerido
})
/*
{
    uid: 'k_054fa341-4573-45a0-80d3-63f101cc6b40',
    type: 'keyword',
    action: [ 'ping' ],
    children: 'a_6df15e99-4bf5-470a-8180-236229aa6063',
    sensitive: false,
    blacklist: [],
    whitelist: [],
    hash: "947263d7584f4d03d8ea03bf9664a0e2"
}
*/para añadir una respuesta debe invocar addAnswer
f.addAnswer(flow1.uid, {
    action: ['pong'] // requerido
})
/*
{
    uid: 'a_6df15e99-4bf5-470a-8180-236229aa6063',
    type: 'answer',
    action: [ 'pong' ],
    image: '',
    buttons: [],
    callback: [Function (anonymous)],
    children: undefined,
    sensitive: false,
    blacklist: [],
    whitelist: [],
    hash: "64cebd42f90477f55bcc5d13350d6c72"
}
*/para retornar el flujo de conversacion invoque getObject 
f.getObject(flow1.uid)
/*
{
    uid: 'k_054fa341-4573-45a0-80d3-63f101cc6b40',
    type: 'keyword',
    action: [ 'ping' ],
    children: {
        uid: 'a_6df15e99-4bf5-470a-8180-236229aa6063',
        type: 'answer',
        action: [ 'pong' ],
        image: '',
        buttons: [],
        callback: [Function (anonymous)],
        children: undefined,
        sensitive: false,
        blacklist: [],
        whitelist: [],
        hash: "64cebd42f90477f55bcc5d13350d6c72"
    },
    sensitive: false,
    blacklist: [],
    whitelist: [],
    hash: "947263d7584f4d03d8ea03bf9664a0e2"
}
*/Tips
- Puede extender esta clase.
- Para realzar un bot dinamico puede el retorno el 
callbackdeasnwerCtxpara redireccionar entre flujos utilizandouid.
- Puede crear una base de datos que guarde los flujos de conversacion.
| id | data | type | hash | hashParent | 
|---|---|---|---|---|
| 1 | "{ 'action:' 'ping' ...}" | "keyword" | "947263..." | |
| 2 | "{ 'action:' 'pong' ...}" | "answer" | "64cebd..." | "947263..." |