Si tenes alguna sugerencia comentame aca abajo! Estoy constantemente buscando ayudar lo maximo posible a todos. Se agradece! 🦾🦾 Tambien dejo el link a mi comunidad de discord por si te queres sumar! discord.gg/9pB5pPbf2m
Como haces para abrir el chat con el bot??? Escaneo el código QR con mi Whatsapp y no pasa nada, solo me vincula una nueva sesión y ahi el boot espera un mensaje.
Buenas, mi sugerencia seria, puedes hacer un proyecto sin IA ?? Me ha pasado tanto en este ejemplo, como en el de googleCalendar, al no tener IA gratuita disponible (pues no tengo tarjeta) intentar hacerlo a mano, pero al querer usarlas con un flujo paralelo el bot es como que "se muere" (no ingresa a las funciones, ni siquiera muestra un console.log). No se si es por un bug extraño o es que algo que yo realizo mal. Te muestro codigo como para intentar darme a entenderme.... En el chat al poner "hi" dispara un addAnswer de bienvenida y hace un gotoFlow a welcomeFlow Aqui te muestro el welcomeFlow, que a priori funciona bien... export const welcomeFlow = addKeyword(EVENTS.WELCOME) .addAnswer(`🙌 Elija una opcion por favor!`) .addAnswer( [ 'Toca 1 para "Ver direccion del Local" ', 'Toca 2 para "hacer una reservacion" ', 'Toca 9 para "Salir" ', ].join(' '), { capture: true }, async (ctx, { gotoFlow, flowDynamic }) => { console.log('desde hiFlow, opción seleccionada:', ctx.body); await writeToSheet([["Mensaje", "Usuario", ctx.body]], "Sheet1!A1:J10"); const response = await readSheet(); // console.log(response); const option = ctx.body.trim(); switch (option) { case '1': return gotoFlow(ubicationFlow); case '2': return gotoFlow(reservationFlow); case '9': return await flowDynamic('Gracias por visitarnos. ¡Adiós!'); default: await flowDynamic('Opcion no valida, por favor selecciona una opción correcta.'); return gotoFlow(welcomeFlow); } } ); A priori funciona... -pones 1 y te lleva a ubicationFlow (que son 3 addAnswer y nada mas) todo OK. -PERO al poner 2, despues de hacer muchas pruebas, llegue a la conclusion que: si lo que hay en el 2 es un addAnswer (sin funcion) si funciona perfectamente... pero si es un addAnswer con funcion o un AddAction, en ambos casos la funcion no la ejecuta tenga lo que tenga... (llegue a copiar tal cual el ejemplo de registerFlow cambiando el nombre a reservationFlow, y no se ejecuta). Seguramente soy yo que estoy realizando algo incorrecto, pero no he encontrado como solucionarlo Entonces volviendo a la sugerencia inicial... Prueba hacer algo sin IA, para que podamos entender como hacer "carpinteria a mano" con el bot ?? Gracias
Holaa, muchas gracias por tus videos ayuda mucho a entender todo el proceso. Una consulta Es posible integrar esto en un proyecto con NestJs? de ser posible tienes algun link donde se pueda revisar la documentación o algun ejemplo?
@@EdyHuiza Hola! Para escalar este tipo de proyectos, lo ideal es TypeScrip, de hecho la librería se actualizo y ahora es igual de facil integrar TS al igual que JS. Te dejo la documentación y me alegro que te sean utiles los videos! Exitos builderbot.vercel.app/en
Felicitaciones excelente video, graciss por el aporte, tiempo y esfuerzo.. mi sugerencia seria agregarle un llamado a Api Google Maps para calcular la distancia para la entrega del pedido del restaurante y devolver al cliente el valor total de un pedido... Seria fenomenal que hagas esto, creo que la sacas del estadio pro 🎉👍
Buenas, excelente el video. Me sirvio mucho! Mas adelante ¿vas a subir videos utilizando la API oficial? Porque estuve leyendo que a algunas personas le bloquean el número. Segui asi!
Gracias! Voy a tratar de subir usando Meta como proveedor, hubo varios pedidos sobre eso asi que voy a tratar de cumplir :). Si, usando proveedores gratis whatsapp lo puede detectar como spam. Mientras sean pocos mensajes y a numeros conocidos no pasa nada, pero para vender si o si provider oficial. Saludos!
Me pareció genial el video 🙏🏿, estaría genial agregar la función de enviar un reminder al usuario que hace la reservación por ejemplo: una hora antes o algo así xd vaya crack que eres btw
Excelente video, gracias por el tutorial con Builder Bot, en un inicio me salia un error de sharp al trabajar en windows, luego logre solucionarlo, excelente contenido ✌️
@@AIPaths23 Una pregunta, como puedo bloquear el bot a ciertos números, y si es posible, habilitarlo solo a "X" país, me he fijado que cuando se genera el proyecto se crea una función blacklist. También si se puede desactivar y activar el bot de manera programada a ciertos horarios, o detener el bot de manera manual sin parar el servidor
@@JeanSantos97 Hola! No habia leido este comentario. La blacklist se ejecuta al principio del programa. Si queres una lista que se cambie dinamicamente, tendrias que implementar otra logica. Todo lo que mencionas es lo que le llamo "Control manual". En el curso esta explicado bien en detalle, basicamente es crear flows con palabras claves que los escriba unicamente el numero admin (haciendo una validacion) que manejen el Global State del bot!
Muy buen video todo muy bien explicado, por cierto una pregunta, que el provedor de baileys, se puede conectar sin problemas con un numero de Whatsapp Business
@@AIPaths23 Tenia esa duda gracias, por cierto cual es la gran diferencia de usar un proveedor gratuito en este caso baileys, con un proveedor pago como meta?
Buenas! Meta es un proveedor oficial, no corres riesgos de baneo y tenes mas funciones como botones y listas. Es de pago, pero es ideal para clientes. Te dejo el link a un video de como se configura! ruclips.net/video/r5Q5M66pxaY/видео.html&index
Gracias por la respuesta Gonza! Una cosa mas, veo que usas la libreria de Leifer para hacer el bot, en sus videos veo que él menciona que usa javascript y typescript, y veo que vos usas node js. Hay alguna diferencia relevante entre ambos metodos? No se si si hice la pregunta la pregunta bien, perdona la ignorancia pero no soy tan tecnico
Hola Alejandro! Typescript conviene cuando estas buscando hacer un desarrollo mucho mas escalable. Al ser tutoriales para principiantes es mas facil empezar con Js, pero la librería es exactamente la misma!
Hola! Como va? No me se tu nombre y no recuerdo si lo mencionaste en algun video, pero te queria consultar: veo que tenes un curso en teachable, y me re intresa, solo tengo una duda, hay maneras de hacer preguntas? Y tenes grupo de whatsapp, discord, o algo donde haya interaccion entre los estudiantes? Te agradezco!!
Buenas! Me nombre es Gonza 😊. Si claro, en el propio curso son ideales las preguntas por si le sirve a otros alumnos. De igual manera estoy atento al mail para cualquier consulta especifica que tengas! Te esperamos 😀
Buen video crack! Veo que ya estás usando builder bot en vez de la otra librería. Para los videos anteriores deberíamos entonces usar la otra librería o esta nueva ?
Buenas tardes, gracias por los cursos, vi los de Leifer pero me quedaron mas claros los tuyos jaja, pregunta: se podria hacer en vez de google sheets usar una base de datos?? Saludos!!
seria bueno que hicieras el bot pero para que atienda a las personas con un menú que este en google sheet y y que ahí en otra hoja se registren las ventas , como los pedidos a domicilio
Hola, excelente tu video, una consulta, como hacer para que no me bloqueen el numero de telefono; porque intente hacer un bot con bailey, y me bloquearon el numero de telefono, no duro ni un dia el bot.
Buenas! Hay que tener algunas cosas en cuenta, como por ejemplo agendar gente, que esas personas te agenden, que no todos los mensajes tengan el mismo tiempo de respuesta, no enviar recordatorios a nuevos numeros y no exceder 1000 mensajes por mes o 250 por dia. Estas son algunas de las recomendaciones, aunque si vas a deployar un bot para un negocio o ya algo que sea mas funcional, te recomiendo si o si ir por Meta provider! En unas semanas subo video completo para deployar un chatbot a produccion desde 0. Te dejo mientras el video para configurar la API de meta! ruclips.net/video/r5Q5M66pxaY/видео.html
Buenas! Te hago una pequeña consulta. Como agregarias una opcion para hacer que el cliente pueda solicitar por una mesa especifica? Por ejemplo, te dice reservar el lunes a las 9 PM en la mesa 2. En caso de que este disponible, decirle que si, en caso de que no, decirle que no se encuentra disponible y ofrecerle la mesa 1 y 3. Gracias y muy buen video!
Buenas! Podrias modificar la funcion que verifica mesas disponibles, que en vez de buscar "Alguna" disponible, que busque especificamente la que buscas. Con eso podrías utilizar el mismo codigo!
Hola, qué tal?? Buena didáctica para explicar. Me surgieron algunas dudas... Por qué en algunos casos utilizas el return gotoFlow con await y en otros no? Por otro lado, luego de utilizar el gotoFlow, no me funcionan los delay en los addAnswer, sabes qué puede estar ocurriendo?? Gracias!!
Hola! Muchas gracias. Lo ideal es usar el return para cada addAnswer o addAction. Ese addAnswer del delay lo tenes agregado cono flow principal en el adapter flow de la funcion main()? Puede ser eso! Saludos
@@AIPaths23 Gracias x la respuesta! Los delay los coloco en los addAnswer de los diferentes flow. Pero no los respeta. Es decir que si tengo 4 addanswer en un mismo flow, los 4 con delay de 1000, envía todos los mensajes juntos uno detrás del otro como si no existiera el retraso.
Buenas Tengo este error al poner npm run dev Error: Could not load the "sharp" module using the win32-x64 runtime ERR_DLOPEN_FAILED: The specified procedure could not be found. Esto porque puede pasar? Gracias y un saludo
Muy bueno el video!, pero hay posibilidad de que la eleccion del flujo la haga ChatCPG o GEMINI en base al ctx.body del usuario? O mejor dicho hay algo que me permita a la IA tomar deciciones en lugar del bot?
Buenas! Si claro, podrias agregar una capa previa de chatgpt que solo sirva para elegir el flujo, en base a eso delegarlo al flujo que quieras y en caso de ser necesario hacer otra llamada! Espero que sirva. Saludos!
Muy buenas, que puede pasar cuando escaneas el codigo pero no te abre el chat con la AI? Estoy usando Mac y Iphone, pero me vincula un nuevo dispositivo Chrome (Ubuntu) pero no me añade el bot. Gracias
Hola Alex, cuando escaneas el QR estas abriendo una sesión en lo que seria el "script", no en la PC. Una vez que abris la sesión, tenes que escribirle a ese numero desde otro celular. Saludos!
Gracias Gonza por compartir la información y globalizar tu conocimiento...tengo un error después del paso 5 del video en el cual le escribo al bot desde el celular mi nombre y sale en el whatsapp "hubo un error reservando la mesa. intenta de nuevo por favor....." y no registra ningún dato en la hoja de excel.....he revisado el código y no le encuentro ningún error ...todos los pasos anteriores funcionaron bien...alguna pista para continuar, si en los anteriores pasos los datos se estaban registrando bien....
Hola! Busca primero la función que esta dando ese error, por ejemplo si es la de reservar mesa, esta fallando alguna de las llamadas api. Te recomiendo poner console.logs en esa funcion para ver que llamada es la que esta fallando asi lo diagnosticamos bien!
Termine el video, ya con el codigo final y cuando ejecuto npm run dev me salta este error: npm ERR! Missing script: "dev" npm ERR! npm ERR! To see a list of scripts, run: npm ERR! npm run npm ERR! A complete log of this run can be found in: C:\Users 1k\AppData\Local pm-cache\_logs\2024-06-30T19_54_10_352Z-debug-0.log Por lo que entiendo el error es que en el package.json no esta definido dev, lo raro es que entro al archivo y tengo esto: { "name": "base-bailey-json", "version": "1.0.0", "description": "", "main": "dist/app.js", "type": "module", "scripts": { "start": "node ./dist/app.js", "lint": "eslint . --no-ignore", "dev": "npm run lint && nodemon ./src/app.ts", "build": "npx rollup -c" }, ¿Sabes porque es?
Hola! Si es raro, estas seguro de que es la carpeta correcta, no? Podes probar directamente el comando que se ejecuta ahi, npm run lint && nodemon... avisame si lo podes solucionar! Saludos
@@AIPaths23 probe npm run lint && nodemon... y no me funciono. Asi lo tengo organizado: WSP BOT/ └── base-ts-baileys-memory/ ├── SRC/ │ └── app.ts └── package.json
@@sledgeeco5320 Si la distribución parece correcta, el comando lo tenes que correr dentro de base-ts-baileys-memory/. Te recomiendo verificar ese archivo de logs para ver si te da mas información del error. Sin embargo, creo que es un error de dependencias. Proba correr el comando npm install -g typescript (para instalarlo globalmente). Si sigue fallando, borra la carpeta node_modules y el package-lock.json y volver a ejecutar npm install para volver a intalar las dependencias. Espero que te funcione!
Buenas noches! Muchas gracias por el excelente contenido de gran calidad educativa, disculpa, si quiera realizar un SaaS de multiples bots, podria iniciar una instancia de cada uno en el mismo server e identificarlos por el port que usaria cada uno? El qr generado de enlace, creo que sería el problema, al guardarse en el proyecto directamente, o piensas que tendria que correr una copia entera del proyecto para cada caso? Cual seria tu approach? Muchas gracias de antemano por tu respuesta, ten un excelente dia!
Hola! Para realizar un SaaS te recomendaria usar proveedores oficiales (Meta o Twilio). Baileys es mas para pruebas y chatbots con poco flujo. Estos proveedores no tienen QR! Con eso ya los podrias identificar por puerto como decis 👌🏻👌🏻. Si lo haces avisame! Muy interesante el proyecto
@@AIPaths23 ¡Buenísimo! Muchas gracias por tu ayuda y respuesta, ¡Me ha sido de gran soporte para encaminar el proyecto de mejor manera! Hoy empezaré unas pruebas y te mantengo al tanto del resultado, ¡Un gran saludo! 👏🏻
Hola bro me gustan mucho tus videos se aprende bastante, me sale un error cuando intento probar el bot con el siguiente código: *Could not load the "sharp" module using the win32-x64 runtime*
Buenas! Eso tiene que ver con una dependencia de sharp, proba borrar la carpeta node_modules, el package-lock.json e instala de nuevo las dependencias pero usando pnpm en vez de npm! Eso deberia solucionar tu problema
Genio Dos Preguntas Este chat si sería 100% gratuito o la api de Gémini es paga ? Y la segunda Es que formación tenes ? Estoy estudiando para full stack y cada día me gusta más crear, tal vez vaya por analista en sistemas
Hola! Como estas? 100% gratuito. Yo soy Ingeniero Electronico, todo lo de los chatbors lo aprendi por mi cuenta! Crea todo lo que te interese y vas a encontrar sin dudas algo que te encante! Muchos exitos
@@AIPaths23 wow de ing electrónico a programar hay una gran diferencia , en este tiempo vi mucha gente de muchos rubros en el mundo de la programación , muchas gracias ! Voy a seguir viendo tu contenido
Muy bien excelente aporte, pero una persona que quiera trollear al restaurant puede hacer varias reservas al mismo tiempo sin que la IA se percate por que aún no puede sentir emociones....
Jjjajaja es verdad, se podria agregar una validacion del numero y ahora el troll va a necesitar tener varios nuneros. Lamentablemente es algo que se puede hacer por telefono tambien 🤣🤣
Se podria realizar un asistente de un negocio con informacion brindada en un txt con la capa gratuita de gemini? Como en el video que hace leifer en "no uses mas... vectoriales...." en la que crea un asistente con openai, pero hacer uso de la api de openai genera un costo
Hola! Si claro, podes partir del ejemplo de la descripción y agregar un txt con la información. Tenes que jugar con el texto para enviar el prompt y listo!
@@AIPaths23 Intento mezclar varios de tus tutoriales, aun no lo logro; hubiese sido más fácil si openai tuviera una capa gratuita y realizar lo mismo que hizo Leifer en ruclips.net/video/SfYvU3bOMcM/видео.html&si=KCL71i2gVgGi-2rQ
@@JeanSantos97 Proba algo como esta parte donde hago un txt con el Menu! ruclips.net/video/twia5bKW6eg/видео.html Ahi tenes el texto en una variable. Eso mandalo como prompt y listo! Espero que ayude
¿Una pregunta que no tiene nada que ver en este caso, pero tengo esta duda hace mucho tiempo, puedo realizar un bot conectado con open IA y que en medio de una conversación cambie de modelo si este mismo ve que es necesario hacerlo? Me explico, digamos que el cliente empieza una conversación con el chatbot y el que le responde de momento es gpt 3.5 turbo, entonces el cliente sigue la conversación y en un punto hay un proceso más complejo donde se tienen que seguir instrucciones más especificas, puede este detectar que debe cambiar de modelo? y entonces contestar con gpt 4 turbo? Lo siento si no me expliqué bien jajaja, gracias espero respuesta saludos desde colombia
Si! Es posible, podrias agregar como variable a la función por ejemplo el nombre del modelo, usar por default el 3.5 turbo por ejemplo, y cuando llegues a cierta seccion del codigo, enviar gpt4 como parametro y cambiar el modelo! Muchos exitos
@@AIPaths23 Gracias otra pregunta, un bot hecho de esta forma puede hablar en varias conversaciones al mismo tiempo y ejecutar todo al mismo tiempo en cada chat?
@@JuanCaballero-r9r Exactamente! Esa es una de las magias de NodeJS. Cada conversación sigue un flujo independiente del resto. Si te interesa, en el curso online esta explicado todo el funcionamiento desde 0 con mucho detalle. Muchos exitos!
Hola buenos días como puedo hacer para que el cliente en vez de escribir la fecha, que el chatbot tire todas las fechas libres y que el cliente pueda elegir la fecha y que el chat bot se la confirme
Buenas! Podrias usar 1 paso menos del flujo, trayendo todos los proximos eventos disponibles y trabajando esa información para que quede en formato de texto y enviarselo al usuario para que decida. Tendrias que agregar un capture true como en un menu para seleccionar la fecha y ahi seguir con el flujo original usando esa fecha! Muy buena idea y caso de uso.
Buenas noches, gracias por el video, una consulta, capaz a alguien mas le paso! Escaneo el codigo con mi Whatasapp pero no me abre el chat con el chatboot, lo vincula y todo pero no abre ningun chat
Siii, voy a seguir implementandolo, lo unico que es un poco molesto es tener que mandar todo en un mismo prompt y no poder mandar historial de conversacion. Tal vez es algo que mejoran en algun momento
Buenas! Cuando escaneas el QR hosteas el bot en ese numero. Una vez escaneado, tenes que hablarle desde otro telefono al whatsapp con el que escaneaste para ver las respuestas!
@@AIPaths23 amigazo, una consulta, al escanear el codigo con whatsapp bussines me dicen este mensaje en wsp "No se pudo vincular el dispositivo, Vuelve a intentarlo mas tarde". Sabes si es un error del qr o de whatsapp, porque he intentado con hartos numeros, reinstalando whatsapp y nada gracias
Buenas, al principio selecciono el proveedor baileys, que es gratis. Para usar la API oficial, en ese pso tenes que seleccionar Meta o Twilio, por las dudas aclaro que son de pago! Saludos
@@UserAnonimo-c2lbuenas! Si hacemos manejo de fotos y ademas audios-texto y texto-audio con whisper de openai. Estan todos los scripts para copiar e implementar directamente. Como servidor por el momento no esta, hacemos el deploy en cloud unicamente. Saludos!
Si tenes alguna sugerencia comentame aca abajo! Estoy constantemente buscando ayudar lo maximo posible a todos. Se agradece! 🦾🦾 Tambien dejo el link a mi comunidad de discord por si te queres sumar! discord.gg/9pB5pPbf2m
Como haces para abrir el chat con el bot??? Escaneo el código QR con mi Whatsapp y no pasa nada, solo me vincula una nueva sesión y ahi el boot espera un mensaje.
Buenas, mi sugerencia seria, puedes hacer un proyecto sin IA ??
Me ha pasado tanto en este ejemplo, como en el de googleCalendar, al no tener IA gratuita disponible (pues no tengo tarjeta) intentar hacerlo a mano, pero al querer usarlas con un flujo paralelo el bot es como que "se muere" (no ingresa a las funciones, ni siquiera muestra un console.log). No se si es por un bug extraño o es que algo que yo realizo mal.
Te muestro codigo como para intentar darme a entenderme....
En el chat al poner "hi" dispara un addAnswer de bienvenida y hace un gotoFlow a welcomeFlow
Aqui te muestro el welcomeFlow, que a priori funciona bien...
export const welcomeFlow = addKeyword(EVENTS.WELCOME)
.addAnswer(`🙌 Elija una opcion por favor!`)
.addAnswer(
[
'Toca 1 para "Ver direccion del Local"
',
'Toca 2 para "hacer una reservacion"
',
'Toca 9 para "Salir"
',
].join('
'),
{ capture: true },
async (ctx, { gotoFlow, flowDynamic }) => {
console.log('desde hiFlow, opción seleccionada:', ctx.body);
await writeToSheet([["Mensaje", "Usuario", ctx.body]], "Sheet1!A1:J10");
const response = await readSheet();
// console.log(response);
const option = ctx.body.trim();
switch (option) {
case '1':
return gotoFlow(ubicationFlow);
case '2':
return gotoFlow(reservationFlow);
case '9':
return await flowDynamic('Gracias por visitarnos. ¡Adiós!');
default:
await flowDynamic('Opcion no valida, por favor selecciona una opción correcta.');
return gotoFlow(welcomeFlow);
}
}
);
A priori funciona...
-pones 1 y te lleva a ubicationFlow (que son 3 addAnswer y nada mas) todo OK.
-PERO al poner 2, despues de hacer muchas pruebas, llegue a la conclusion que:
si lo que hay en el 2 es un addAnswer (sin funcion) si funciona perfectamente... pero si es un addAnswer con funcion o un AddAction, en ambos casos la funcion no la ejecuta tenga lo que tenga... (llegue a copiar tal cual el ejemplo de registerFlow cambiando el nombre a reservationFlow, y no se ejecuta).
Seguramente soy yo que estoy realizando algo incorrecto, pero no he encontrado como solucionarlo
Entonces volviendo a la sugerencia inicial... Prueba hacer algo sin IA, para que podamos entender como hacer "carpinteria a mano" con el bot ?? Gracias
Holaa, muchas gracias por tus videos ayuda mucho a entender todo el proceso. Una consulta Es posible integrar esto en un proyecto con NestJs? de ser posible tienes algun link donde se pueda revisar la documentación o algun ejemplo?
@@EdyHuiza Hola! Para escalar este tipo de proyectos, lo ideal es TypeScrip, de hecho la librería se actualizo y ahora es igual de facil integrar TS al igual que JS. Te dejo la documentación y me alegro que te sean utiles los videos! Exitos
builderbot.vercel.app/en
@@AIPaths23 Muchas gracias!!!!
ES UN GENIO SE LE ENTIENDE TODO!!!! APARTE ME ENCANTA ESTO DE MESCLAR GOOGLE SHEETS CALENDAR ETC SON GENIALES
Hola! Jajjaaja gracias por tu comentario como siempre! Saludos y exitos
Gracias Gonza por el cideo y sobretodo el conocimiento sin reservas.
Se merece muchos más seguidores AIPaths 🎉
Gracias Jorge! Comentarios asi me motivan a seguir 💪🏻💪🏻
Felicitaciones excelente video, graciss por el aporte, tiempo y esfuerzo.. mi sugerencia seria agregarle un llamado a Api Google Maps para calcular la distancia para la entrega del pedido del restaurante y devolver al cliente el valor total de un pedido... Seria fenomenal que hagas esto, creo que la sacas del estadio pro 🎉👍
Buenas! Excelente gracias por el comentario y por la sugerencia!!
Excelente video, gracias por el tiempo dedicado, todo clarito
Gracias Oscar por tu comentario! Exitos
Gracias!!! Saludos desde Salta Argentina, un abrazo enorme!!!
Gracias a vos! Saludos :)
Buenas, excelente el video. Me sirvio mucho! Mas adelante ¿vas a subir videos utilizando la API oficial? Porque estuve leyendo que a algunas personas le bloquean el número.
Segui asi!
Gracias! Voy a tratar de subir usando Meta como proveedor, hubo varios pedidos sobre eso asi que voy a tratar de cumplir :). Si, usando proveedores gratis whatsapp lo puede detectar como spam. Mientras sean pocos mensajes y a numeros conocidos no pasa nada, pero para vender si o si provider oficial. Saludos!
@@AIPaths23 Genial, voy a estar atento para el video. Muchas gracias!!
Saludos!
@@NNN-d Hola! Ya esta subido el video, te dejo el link. Saludos!
ruclips.net/video/r5Q5M66pxaY/видео.html&index
Buenas! Por si no lo viste te dejo el link al video donde muestro lo que te prometi. Saludos!
ruclips.net/video/r5Q5M66pxaY/видео.html&index
Me pareció genial el video 🙏🏿, estaría genial agregar la función de enviar un reminder al usuario que hace la reservación por ejemplo: una hora antes o algo así xd vaya crack que eres btw
Buenas! Si sin dudas eso ayuda mucho, ideal usar providers oficiales para eso
Muy bueno, gracias por compartir
👏🏻👏🏻
Excelente video, gracias por el tutorial con Builder Bot, en un inicio me salia un error de sharp al trabajar en windows, luego logre solucionarlo, excelente contenido ✌️
Me alegro mucho! Exitos
@@AIPaths23 Una pregunta, como puedo bloquear el bot a ciertos números, y si es posible, habilitarlo solo a "X" país, me he fijado que cuando se genera el proyecto se crea una función blacklist. También si se puede desactivar y activar el bot de manera programada a ciertos horarios, o detener el bot de manera manual sin parar el servidor
Buenas, tengo el mismo error. ¿Cómo hiciste para solucionarlo?
@@sledgeeco5320 Buenas! Jean comento que lo soluciono de la siguiente manera:
npm install --cpu=wasm32 sharp
@@JeanSantos97 Hola! No habia leido este comentario. La blacklist se ejecuta al principio del programa. Si queres una lista que se cambie dinamicamente, tendrias que implementar otra logica. Todo lo que mencionas es lo que le llamo "Control manual". En el curso esta explicado bien en detalle, basicamente es crear flows con palabras claves que los escriba unicamente el numero admin (haciendo una validacion) que manejen el Global State del bot!
Muy buen video todo muy bien explicado, por cierto una pregunta, que el provedor de baileys, se puede conectar sin problemas con un numero de Whatsapp Business
Si! Sin problemas
@@AIPaths23 Tenia esa duda gracias, por cierto cual es la gran diferencia de usar un proveedor gratuito en este caso baileys, con un proveedor pago como meta?
Buenas! Meta es un proveedor oficial, no corres riesgos de baneo y tenes mas funciones como botones y listas. Es de pago, pero es ideal para clientes. Te dejo el link a un video de como se configura!
ruclips.net/video/r5Q5M66pxaY/видео.html&index
Gracias por la respuesta Gonza! Una cosa mas, veo que usas la libreria de Leifer para hacer el bot, en sus videos veo que él menciona que usa javascript y typescript, y veo que vos usas node js. Hay alguna diferencia relevante entre ambos metodos? No se si si hice la pregunta la pregunta bien, perdona la ignorancia pero no soy tan tecnico
Hola Alejandro! Typescript conviene cuando estas buscando hacer un desarrollo mucho mas escalable. Al ser tutoriales para principiantes es mas facil empezar con Js, pero la librería es exactamente la misma!
Hola! Como va? No me se tu nombre y no recuerdo si lo mencionaste en algun video, pero te queria consultar: veo que tenes un curso en teachable, y me re intresa, solo tengo una duda, hay maneras de hacer preguntas? Y tenes grupo de whatsapp, discord, o algo donde haya interaccion entre los estudiantes? Te agradezco!!
Buenas! Me nombre es Gonza 😊. Si claro, en el propio curso son ideales las preguntas por si le sirve a otros alumnos. De igual manera estoy atento al mail para cualquier consulta especifica que tengas! Te esperamos 😀
Buen video crack!
Veo que ya estás usando builder bot en vez de la otra librería. Para los videos anteriores deberíamos entonces usar la otra librería o esta nueva ?
Hola! Es la misma librería pero adaptada para correr en typescript. Sigue funcionando todo lo de antes :)
Hola vercel funcionaria para hacer deploy también
Excelente! Gracias por el aporte 👌🏻👌🏻
Buenas tardes, gracias por los cursos, vi los de Leifer pero me quedaron mas claros los tuyos jaja, pregunta: se podria hacer en vez de google sheets usar una base de datos??
Saludos!!
Me alegro mucho! Claro, en el CrashCourse explico como usar mongoDB que gracias a la librería es super facil de instalar. Exitos!
seria bueno que hicieras el bot pero para que atienda a las personas con un menú que este en google sheet y y que ahí en otra hoja se registren las ventas , como los pedidos a domicilio
Excelente! Gracias por la recomendación, me sirve un monton. Sería muy simple agregar el menu, ya estan todas las funciones!
Buenisimo el video, tremenda explicacion, pero me quedo una duda, como hacer para que el bot use el sheet del cliente y no el nuestro ...
Buenas! Le tendrias que pedir al cliente que cree un sheets y te pase los accesos para configurar
Muchas gracias por el video!! Tengo una duda: para usar la API oficial de wsp habria que hacer muchas modificaciones en el codigo?
Buenas, simplemente cambiar el provider a uno oficial como Meta o Twilio, y habilitar las credendiales!
@@AIPaths23 Muchas gracias!
Buenas! Te dejo el link del nuevo video para que veas como configurarlo :)
ruclips.net/video/r5Q5M66pxaY/видео.html&index
@@AIPaths23 graciass!!
Hola, excelente tu video, una consulta, como hacer para que no me bloqueen el numero de telefono; porque intente hacer un bot con bailey, y me bloquearon el numero de telefono, no duro ni un dia el bot.
Buenas! Hay que tener algunas cosas en cuenta, como por ejemplo agendar gente, que esas personas te agenden, que no todos los mensajes tengan el mismo tiempo de respuesta, no enviar recordatorios a nuevos numeros y no exceder 1000 mensajes por mes o 250 por dia. Estas son algunas de las recomendaciones, aunque si vas a deployar un bot para un negocio o ya algo que sea mas funcional, te recomiendo si o si ir por Meta provider! En unas semanas subo video completo para deployar un chatbot a produccion desde 0. Te dejo mientras el video para configurar la API de meta!
ruclips.net/video/r5Q5M66pxaY/видео.html
Buenas! Te hago una pequeña consulta. Como agregarias una opcion para hacer que el cliente pueda solicitar por una mesa especifica? Por ejemplo, te dice reservar el lunes a las 9 PM en la mesa 2. En caso de que este disponible, decirle que si, en caso de que no, decirle que no se encuentra disponible y ofrecerle la mesa 1 y 3. Gracias y muy buen video!
Buenas! Podrias modificar la funcion que verifica mesas disponibles, que en vez de buscar "Alguna" disponible, que busque especificamente la que buscas. Con eso podrías utilizar el mismo codigo!
Hola, qué tal?? Buena didáctica para explicar. Me surgieron algunas dudas...
Por qué en algunos casos utilizas el return gotoFlow con await y en otros no?
Por otro lado, luego de utilizar el gotoFlow, no me funcionan los delay en los addAnswer, sabes qué puede estar ocurriendo??
Gracias!!
Hola! Muchas gracias. Lo ideal es usar el return para cada addAnswer o addAction. Ese addAnswer del delay lo tenes agregado cono flow principal en el adapter flow de la funcion main()? Puede ser eso! Saludos
@@AIPaths23 Gracias x la respuesta! Los delay los coloco en los addAnswer de los diferentes flow. Pero no los respeta. Es decir que si tengo 4 addanswer en un mismo flow, los 4 con delay de 1000, envía todos los mensajes juntos uno detrás del otro como si no existiera el retraso.
@@RicO2406 Probar separarlos en distintos flows! Ahi seguro te lo va a respetar, aun que igual deberia poder mandarlos sin problema
Buenas
Tengo este error al poner npm run dev
Error: Could not load the "sharp" module using the win32-x64 runtime
ERR_DLOPEN_FAILED: The specified procedure could not be found.
Esto porque puede pasar?
Gracias y un saludo
Hola! Eso sería en el deploy? Al parecer es un problema con el modulo sharp que esta tomando el SO diferente. Proba con otra version de sharp
Tuve el mismo problema por días, ejecuta en la carpeta del proyecto: npm install --cpu=wasm32 sharp
@@JeanSantos97 Sirvio de lujo muchas gracias*
Muy bueno el video!, pero hay posibilidad de que la eleccion del flujo la haga ChatCPG o GEMINI en base al ctx.body del usuario? O mejor dicho hay algo que me permita a la IA tomar deciciones en lugar del bot?
Buenas! Si claro, podrias agregar una capa previa de chatgpt que solo sirva para elegir el flujo, en base a eso delegarlo al flujo que quieras y en caso de ser necesario hacer otra llamada! Espero que sirva. Saludos!
@@AIPaths23 o sea con un solo flujo EVENTS.WELCOME, luego ChatGPT se encarga de derivar las acciones a realizar y devolver los resultados!
Muy buenas, que puede pasar cuando escaneas el codigo pero no te abre el chat con la AI? Estoy usando Mac y Iphone, pero me vincula un nuevo dispositivo Chrome (Ubuntu) pero no me añade el bot.
Gracias
Hola Alex, cuando escaneas el QR estas abriendo una sesión en lo que seria el "script", no en la PC. Una vez que abris la sesión, tenes que escribirle a ese numero desde otro celular. Saludos!
Gracias Gonza por compartir la información y globalizar tu conocimiento...tengo un error después del paso 5 del video en el cual le escribo al bot desde el celular mi nombre y sale en el whatsapp "hubo un error reservando la mesa. intenta de nuevo por favor....." y no registra ningún dato en la hoja de excel.....he revisado el código y no le encuentro ningún error ...todos los pasos anteriores funcionaron bien...alguna pista para continuar, si en los anteriores pasos los datos se estaban registrando bien....
Gonza queria agregar que la terminal no me arroja ningun error
Hola! Busca primero la función que esta dando ese error, por ejemplo si es la de reservar mesa, esta fallando alguna de las llamadas api. Te recomiendo poner console.logs en esa funcion para ver que llamada es la que esta fallando asi lo diagnosticamos bien!
Termine el video, ya con el codigo final y cuando ejecuto npm run dev me salta este error:
npm ERR! Missing script: "dev"
npm ERR!
npm ERR! To see a list of scripts, run:
npm ERR! npm run
npm ERR! A complete log of this run can be found in: C:\Users
1k\AppData\Local
pm-cache\_logs\2024-06-30T19_54_10_352Z-debug-0.log
Por lo que entiendo el error es que en el package.json no esta definido dev, lo raro es que entro al archivo y tengo esto:
{
"name": "base-bailey-json",
"version": "1.0.0",
"description": "",
"main": "dist/app.js",
"type": "module",
"scripts": {
"start": "node ./dist/app.js",
"lint": "eslint . --no-ignore",
"dev": "npm run lint && nodemon ./src/app.ts",
"build": "npx rollup -c"
},
¿Sabes porque es?
Hola! Si es raro, estas seguro de que es la carpeta correcta, no? Podes probar directamente el comando que se ejecuta ahi, npm run lint && nodemon... avisame si lo podes solucionar! Saludos
@@AIPaths23 probe npm run lint && nodemon... y no me funciono. Asi lo tengo organizado:
WSP BOT/
└── base-ts-baileys-memory/
├── SRC/
│ └── app.ts
└── package.json
@@sledgeeco5320 Si la distribución parece correcta, el comando lo tenes que correr dentro de base-ts-baileys-memory/. Te recomiendo verificar ese archivo de logs para ver si te da mas información del error. Sin embargo, creo que es un error de dependencias. Proba correr el comando npm install -g typescript (para instalarlo globalmente). Si sigue fallando, borra la carpeta node_modules y el package-lock.json y volver a ejecutar npm install para volver a intalar las dependencias. Espero que te funcione!
@@AIPaths23 ya lo solucione. Saque la primera carpeta y listo, nose poque dejo de funcionar de la nada.
Muchas gracias por todo!
Saludos!!
Buenas noches! Muchas gracias por el excelente contenido de gran calidad educativa, disculpa, si quiera realizar un SaaS de multiples bots, podria iniciar una instancia de cada uno en el mismo server e identificarlos por el port que usaria cada uno? El qr generado de enlace, creo que sería el problema, al guardarse en el proyecto directamente, o piensas que tendria que correr una copia entera del proyecto para cada caso? Cual seria tu approach? Muchas gracias de antemano por tu respuesta, ten un excelente dia!
Hola! Para realizar un SaaS te recomendaria usar proveedores oficiales (Meta o Twilio). Baileys es mas para pruebas y chatbots con poco flujo. Estos proveedores no tienen QR! Con eso ya los podrias identificar por puerto como decis 👌🏻👌🏻. Si lo haces avisame! Muy interesante el proyecto
@@AIPaths23 ¡Buenísimo! Muchas gracias por tu ayuda y respuesta, ¡Me ha sido de gran soporte para encaminar el proyecto de mejor manera! Hoy empezaré unas pruebas y te mantengo al tanto del resultado, ¡Un gran saludo! 👏🏻
Te dejo un link para que veas como se configura el provider oficial!
ruclips.net/video/r5Q5M66pxaY/видео.html&index
Hola una pregunta se puede subir el bot a vercel? Y si se podría tienes algún tutorial o por favor si podrías hacer un video
Buenas! Si es posible, gracias por la sugerencia :)
Hola bro me gustan mucho tus videos se aprende bastante, me sale un error cuando intento probar el bot con el siguiente código: *Could not load the "sharp" module using the win32-x64 runtime*
Buenas! Eso tiene que ver con una dependencia de sharp, proba borrar la carpeta node_modules, el package-lock.json e instala de nuevo las dependencias pero usando pnpm en vez de npm! Eso deberia solucionar tu problema
@@AIPaths23 muchas gracias lo voy a probar hoy
Genio
Dos
Preguntas
Este chat si sería 100% gratuito o la api de Gémini es paga ?
Y la segunda
Es que formación tenes ?
Estoy estudiando para full stack y cada día me gusta más crear, tal vez vaya por analista en sistemas
Hola! Como estas? 100% gratuito. Yo soy Ingeniero Electronico, todo lo de los chatbors lo aprendi por mi cuenta! Crea todo lo que te interese y vas a encontrar sin dudas algo que te encante! Muchos exitos
@@AIPaths23 wow de ing electrónico a programar hay una gran diferencia , en este tiempo vi mucha gente de muchos rubros en el mundo de la programación , muchas gracias ! Voy a seguir viendo tu contenido
@@Rock98recreo 👏👏
Muy bien excelente aporte, pero una persona que quiera trollear al restaurant puede hacer varias reservas al mismo tiempo sin que la IA se percate por que aún no puede sentir emociones....
Jjjajaja es verdad, se podria agregar una validacion del numero y ahora el troll va a necesitar tener varios nuneros. Lamentablemente es algo que se puede hacer por telefono tambien 🤣🤣
Se podria realizar un asistente de un negocio con informacion brindada en un txt con la capa gratuita de gemini? Como en el video que hace leifer en "no uses mas... vectoriales...." en la que crea un asistente con openai, pero hacer uso de la api de openai genera un costo
Hola! Si claro, podes partir del ejemplo de la descripción y agregar un txt con la información. Tenes que jugar con el texto para enviar el prompt y listo!
@@AIPaths23 Intento mezclar varios de tus tutoriales, aun no lo logro; hubiese sido más fácil si openai tuviera una capa gratuita y realizar lo mismo que hizo Leifer en ruclips.net/video/SfYvU3bOMcM/видео.html&si=KCL71i2gVgGi-2rQ
@@JeanSantos97 Proba algo como esta parte donde hago un txt con el Menu!
ruclips.net/video/twia5bKW6eg/видео.html
Ahi tenes el texto en una variable. Eso mandalo como prompt y listo! Espero que ayude
@@AIPaths23 lo probaré en estos días, gracias por la guía y videos, son de mucha ayuda para todos 🤙
¿Una pregunta que no tiene nada que ver en este caso, pero tengo esta duda hace mucho tiempo, puedo realizar un bot conectado con open IA y que en medio de una conversación cambie de modelo si este mismo ve que es necesario hacerlo? Me explico, digamos que el cliente empieza una conversación con el chatbot y el que le responde de momento es gpt 3.5 turbo, entonces el cliente sigue la conversación y en un punto hay un proceso más complejo donde se tienen que seguir instrucciones más especificas, puede este detectar que debe cambiar de modelo? y entonces contestar con gpt 4 turbo? Lo siento si no me expliqué bien jajaja, gracias espero respuesta saludos desde colombia
Sí
Si! Es posible, podrias agregar como variable a la función por ejemplo el nombre del modelo, usar por default el 3.5 turbo por ejemplo, y cuando llegues a cierta seccion del codigo, enviar gpt4 como parametro y cambiar el modelo! Muchos exitos
@@AIPaths23 Gracias otra pregunta, un bot hecho de esta forma puede hablar en varias conversaciones al mismo tiempo y ejecutar todo al mismo tiempo en cada chat?
@@JuanCaballero-r9r Exactamente! Esa es una de las magias de NodeJS. Cada conversación sigue un flujo independiente del resto. Si te interesa, en el curso online esta explicado todo el funcionamiento desde 0 con mucho detalle. Muchos exitos!
Hola amigo, una consulta como se hace para que el url no quede publico y cualquier persona que acceda al link le de al qr y use el bot?
Hola! Una vez que escaneas el QR ya deja de tener validez
Hola buenos días como puedo hacer para que el cliente en vez de escribir la fecha, que el chatbot tire todas las fechas libres y que el cliente pueda elegir la fecha y que el chat bot se la confirme
Buenas! Podrias usar 1 paso menos del flujo, trayendo todos los proximos eventos disponibles y trabajando esa información para que quede en formato de texto y enviarselo al usuario para que decida. Tendrias que agregar un capture true como en un menu para seleccionar la fecha y ahi seguir con el flujo original usando esa fecha! Muy buena idea y caso de uso.
Hola genio, que paso con el sorteo del video anterior?..
Buenas! Todavia hay tiempo para participar, una vez cerrado voy a sortearlo y publicar los ganadores!
Me apunto al concurso
Buenas noches, gracias por el video, una consulta, capaz a alguien mas le paso! Escaneo el codigo con mi Whatasapp pero no me abre el chat con el chatboot, lo vincula y todo pero no abre ningun chat
Buenas! Necesitas escribirle al numero con el que escaneaste el QR pero desde otro telefono! Saludos
@@AIPaths23 Si me di cuenta despues de pensar que no me funcionaba el codigo todo un dia jajaja, gracias por responder!
No se programar
Que lenguaje es para ver tutoriales?
Buenas! Necesitas aprender lo basico de NodeJS (Javascript) y una vez dominado pasar a Typescript. Con eso vas a poder manejar toda la librería
Muy bueno bro google es mejor da mas creditos gratis
Siii, voy a seguir implementandolo, lo unico que es un poco molesto es tener que mandar todo en un mismo prompt y no poder mandar historial de conversacion. Tal vez es algo que mejoran en algun momento
como hago una cuenta de facturacion??
Buenas! Se hace desde la consola de google entrando con tu cuenta en la configuración
cuando escaneo el codigo no me lleva al ws
Buenas! Cuando escaneas el QR hosteas el bot en ese numero. Una vez escaneado, tenes que hablarle desde otro telefono al whatsapp con el que escaneaste para ver las respuestas!
@@AIPaths23 Ok gracias, no sabía que el número con el que escanie, se convertía en el bot, pensaba que era como twilio.
@@AIPaths23 amigazo, una consulta, al escanear el codigo con whatsapp bussines me dicen este mensaje en wsp "No se pudo vincular el dispositivo, Vuelve a intentarlo mas tarde". Sabes si es un error del qr o de whatsapp, porque he intentado con hartos numeros, reinstalando whatsapp y nada
gracias
Es con la api oficial??
Buenas, al principio selecciono el proveedor baileys, que es gratis. Para usar la API oficial, en ese pso tenes que seleccionar Meta o Twilio, por las dudas aclaro que son de pago! Saludos
@@AIPaths23 se puede enviar fotos, audio en el curso??
Y se instala en un servidor en el curso?
@@UserAnonimo-c2lbuenas! Si hacemos manejo de fotos y ademas audios-texto y texto-audio con whisper de openai. Estan todos los scripts para copiar e implementar directamente. Como servidor por el momento no esta, hacemos el deploy en cloud unicamente. Saludos!
Buenas! Te dejo el video donde uso la API oficial por si te interesa.
ruclips.net/video/r5Q5M66pxaY/видео.html&index