Saltar a contenido

Asistente con Base de Datos

Este documento proporciona una guía paso a paso sobre cómo configurar un asistente de mensajería utilizando la librería VaincentFlow . Esta biblioteca permite crear flujos de interacción con usuarios a través de plataformas de mensajería como Telegram . A continuación se detallan las etapas de configuración y funcionamiento del asistente.

1. Importación de Dependencias

Primero, se deben importar las librerías necesarias. Utilizaremos dotenv para gestionar las variables de entorno, @elimeleth/telegram para la integración con Telegram y componentes de @elimeleth/vaincentflow para la gestión del flujo de trabajo y la base de datos.

2. Configuración de la Base de Datos

Se crea una instancia de la base de datos utilizando el componente Database. Se especifican parámetros como el tipo de base de datos, el nombre de la base de datos inicial y las credenciales necesarias (usuario, contraseña, host y puerto). Si no se configura una base de datos específica, se creará por defecto una base de datos SQLite3 llamada assistant.

3. Configuración del Proveedor de Mensajería

El proveedor de mensajería se inicializa para gestionar la recepción y envío de mensajes. En este caso, se utiliza Telegram como plataforma principal.

4. Creación del Flujo de Trabajo

Se define un flujo de trabajo mediante la clase Workflow. En este flujo, se pueden añadir acciones que se ejecutarán al recibir mensajes. Por ejemplo, se puede consultar la base de datos para obtener información del cliente y enviar una respuesta adecuada.

5. Configuración del Enrutador Global

El enrutador global es responsable de enrutar los mensajes entrantes hacia el flujo de trabajo adecuado. Se inicializa con el proveedor de mensajería y la base de datos. Después, se añaden los flujos de trabajo definidos y se inicia la escucha de mensajes.

import "dotenv/config"
import { TelegramProvider as Provider } from "@elimeleth/telegram"
import { Workflow, GlobalRouter, Database } from "@elimeleth/vaincentflow"

const database = new Database({
    type: "postgres",
    initialDatabase: "postgres",
    database: process.env.DATABASE,
    host: process.env.DATABASE_HOST,
    port: +process.env.DATABASE_PORT,
    password: process.env.DATABASE_PWD,
    username: process.env.DATABASE_USER
})

// PROVEEDOR: ES QUIEN ENVIA EL MENSAJE Y LO RECIBE
let provider = new Provider({})

// FLUJOS DE ACTIVACION
const principal = new Workflow("")
    .addAction(async (ctx, { extensions: { database } }) => {
        console.log(await database.getClient(ctx.from))
    })
    .addAction("Hola!")

// ENRUTADOR DE MENSAJES
new GlobalRouter({
    database,
    provider
})
    .addFlows([principal])
    .listen();

Este asistente, construido con VaincentFlow , es flexible y personalizable, permitiendo una gestión eficiente de la interacción con los usuarios a través de la plataforma de mensajería elegida.