Mostrando entradas con la etiqueta inteligencia artificial. Mostrar todas las entradas
Mostrando entradas con la etiqueta inteligencia artificial. Mostrar todas las entradas

domingo, 24 de marzo de 2024

ChatBOT Whatsapp con IA de Gemini de Google usando Google Sheet

  Hola a continuación le dejo material para que puedan implementar un BOT whatsapp usando IA de Gemini de Google empleando hoja de calculo google sheet.

Pasos:

1) Entran a la hoja sheet y copiar y implementar el APPScript

https://docs.google.com/spreadsheets/d/1W5RKrhDaLtmBEWfIHJ2oCS0oBRA2VCROOf3iYdx6V-M/edit#gid=0

2) Crear cuenta en Google GCP 
   a) crear el proyecto https://console.cloud.google.com/home ejm ID :my-project-geminis
   b) en filtro escribir google gemini y seleccionar en generative language api y habilitar
   c) entrar a credeciales y crear key tipo clave api y ponnerlo en la hoja configuracion

3) Activar el BOT

4) Conversan con Hola al BOT Whatsapp

Video Implementación



SI DESEA HABILITAR EL BOT 24 x 7 ?

La solución BOT emplea Web Whatsapp  para recibir y enviar mensajes , por lo cual es necesario la contratación de un servidor para el BOT este operativo 24 x 7  , debido a ello existe un pago mensual 

IR a PAGAR

ASESORIA PERSONALIZADA :

En caso necesites alguna asesoría personalizada agéndame un espacio.

https://reservarasesoriaanlusoft.blogspot.com/

viernes, 3 de febrero de 2023

Crea tu propio Bot de WhatsApp con Chat GPT

  Hola a continuación le dejo material para que puedan implementar un BOT Whatsapp usando ChatGPT de Open IA  y/o otros empleando hoja de calculo google sheet.

¿ Necesitas implementarlo tu mismo para realizar cambios ?

- Crear la hoja Google sheet como indica el video 

         - Escanear la hoja para obtener token QR

Video Implementación


Página Excel Plantilla


https://docs.google.com/spreadsheets/d/1NZIr-yL2bAgXgWoA4nFeiBTSfI6c3nvtzpC-OKPsLJk/edit?usp=sharing


Código AppScript 



var excel_qr = SpreadsheetApp.getActiveSpreadsheet();

var sheet_qr = excel_qr.getSheetByName("Configuracion");

var api_interna = "https://script.google.com/macros/s/AKfycbyoBhxuklU5D3LTguTcYAS85klwFINHxxd-FroauC4CmFVvS0ua/exec";


function onOpen() {

    createMenus();

}


function createMenus() {

    var menu = SpreadsheetApp.getUi().createMenu("Whatsapp");

    menu.addItem('1) Obtener TOKEN Session - QR Whatsapp', 'qrwhatsapp');

    menu.addItem('2) Habilitar BOT - Whatsapp', 'enviarconversacion');

    menu.addToUi();

}


function doPost(e) {


    var operacion = JSON.parse(e.postData.contents)

    var respuesta = "";

    if (operacion.op == "qr") {

        respuesta = generar(JSON.stringify(operacion));

    }

    if (operacion.op == "find_conversacion") {

        respuesta = find_conversacion(JSON.stringify(operacion));

    }

    

    return ContentService.createTextOutput(respuesta).setMimeType(ContentService.MimeType.JSON);

}


function generar(informacion) {

    try {

        var qr = JSON.parse(informacion);

        sheet_qr.getRange(2, 2).setValue(encodeURIComponent(qr.qr));

        var result, jo = {};

        if (qr.numero && qr.qr == "CONECTADO") {

            sheet_qr.getRange(3, 2).setValue(qr.session);

        }

        jo.status = '0';

        jo.message = ' Se grabo el registro';


    } catch (e) {

        jo.status = '-1';

        jo.message = e.toString();

    }

    var result = JSON.stringify(jo);

    return result;

}

function qrwhatsapp() {

    var response = "No"

    try {

//        sheet_qr.getRange(3, 2).setValue("");

        var response = Browser.msgBox('Seguro que quiere generar QR ahora ?', Browser.Buttons.YES_NO);

    } catch (e) {

        Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK);

    }

    if (response == "yes") {

        enviar();

        Browser.msgBox('La acción ha sido realizada , escanear registros luego de 10 segundos', Browser.Buttons.OK);

    }

}

function enviar() {

    var appscript = sheet_qr.getRange(1, 2).getValue();

    var payload = { "op": "iniciarqr", "app_script": appscript,"sheet_id":excel_qr.getId(), "fechahora": Utilities.formatDate(new Date(), "GMT-5", "yyMMddHHmmss") };

    var options =

    {

        'headers': { "Content-Type": "application/json" },

        'method': "POST",

        'payload': JSON.stringify(payload)

    };

    try {

        var response = UrlFetchApp.fetch(api_interna, options);

        var json = JSON.parse(response.getContentText());

    } catch (e) {

    }

}

function enviarconversacion() {

    var response = "No"

    var token_session = "";

   try {

        token_session = sheet_qr.getRange(3, 2).getValue();

        var response = Browser.msgBox('Seguro que quiere habilitar el BOT con la conversacion , el token de session sera : ' + token_session + ' ?', Browser.Buttons.YES_NO);

    } catch (e) {

        Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK);

    }

    if (response == "yes") {

        var dataConversacion = [];

        if (excel_qr.getSheetByName("Conversacion")) {

            var sheet = excel_qr.getSheetByName("Conversacion");

            var rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues();

            for (var i = 0, l = rows.length; i < l; i++) {

              try{

                var dataRow = rows[i];

                var record = {};

                record['evento'] = dataRow[0];

                record['entrada'] = dataRow[1];

                record['salida'] = JSON.parse(dataRow[2]);

                record['retornar'] = dataRow[3];

                dataConversacion.push(record);

                 } catch (e) {

                   Browser.msgBox('Error en la hoja conversacion revisar valores ', Browser.Buttons.OK);

                   return;

                 }

            }

        }

        sheet_qr.getRange(14,5).setValue(JSON.stringify(dataConversacion));

        var payload = { "op": "registermessage", "token_qr": token_session, "conversacion": dataConversacion };

        var options =

        {

            'headers': { "Content-Type": "application/json" },

            'method': "POST",

            'payload': JSON.stringify(payload)

        };

        try {

            var response = UrlFetchApp.fetch(api_interna, options);

            var json = JSON.parse(response.getContentText());

            if (json.status == "0") {

                Browser.msgBox('Se habilito el BOT inicie la conversacion ', Browser.Buttons.OK);

            } else {

                Browser.msgBox('Error al iniciar : ' + json.message, Browser.Buttons.OK);

            }

        } catch (e) {

            Browser.msgBox('Se habilito el BOT inicie la conversacion ', Browser.Buttons.OK);

        }

    }

}



function find_conversacion(informacion) {

    var result, jo = {};

    try {

        var resultado = JSON.parse(informacion);

        var excel = SpreadsheetApp.getActiveSpreadsheet();

        var numero = (resultado.numero).substring(0, (resultado.numero).lastIndexOf("@"));

        var sheet_sumarry = excel.getSheetByName("Configuracion");

        jo.status = '1';

        jo.message = "error";

        // RESERVO EL ARREGLO DE CONVERSACION

        let arreglo =  (JSON.parse(informacion).mensaje).reverse();

         var ultima_conversacion = arreglo[0];

        var fecha = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd HH:mm:ss");

        jo.status = '1';

        jo.message = ' No existe';    

        if (ultima_conversacion.evento == "envia_gpt") {

              jo.message = "No existe mensaje ingresado en ChatGPT 🚫 ";

             var payload = { "prompt":ultima_conversacion.mensaje, "model": "text-davinci-003", "temperature": 0.5 };

            var options =

            {

                'headers': { "Content-Type": "application/json" ,"Authorization":sheet_sumarry.getRange(4,2).getValue()},

                'method': "POST",

                'payload': JSON.stringify(payload)

            };

            var response = UrlFetchApp.fetch(sheet_sumarry.getRange(5,2).getValue(), options);

            var json = JSON.parse(response.getContentText());

            if(json.choices && json.choices[0].text){

             jo.message = json.choices[0].text;

            }

            jo.conversacion = { "mensaje": "@end@", "evento": "envia_gpt_v2", "retornar": "envia_gpt_v2" };

            jo.status = '0';

        }

    } catch (e) {

        jo.status = '-1';

        jo.message = e.toString();

    }

    var result = JSON.stringify(jo);

    return result;

}


HABILITAR BOT 24 x 7 :

La solución BOT emplea Web Whatsapp  para recibir y enviar mensajes , por lo cual es necesario la contratación de un servidor para el BOT este operativo 24 x 7  , debido a ello existe un pago mensual de $ 8.00 .

IR a PAGAR 8 DOLARES

ASESORIA PERSONALIZADA :

En caso necesites alguna asesoría personalizada agéndame un espacio.

https://reservarasesoriaanlusoft.blogspot.com/

🚀 Crea tu Propio Sistema de Inventario y Úsalo desde tu Celular 📱

 📱📦 Crea tu Sistema de Inventario y úsalo desde tu celular. En este video muestro cómo desarrollar un sistema de inventario con escáner us...