Skip to content

Instantly share code, notes, and snippets.

View leifermendez's full-sized avatar
👋
Focusing

Leifer Mendez leifermendez

👋
Focusing
View GitHub Profile
@leifermendez
leifermendez / template_seller_leifer.json
Created August 25, 2024 12:21
template_seller_leifer.json
[
{
"uuid": "__LINK_0__",
"name": "Tarjeta",
"label": "Nuevo Flow",
"sort": 0,
"sensitive": false,
"keyword": [
"tarjeta",
"targeta"
@leifermendez
leifermendez / template_n8n_genarar_audio_builderbot.json
Created August 24, 2024 13:22
template_n8n_genarar_audio_builderbot.json
{
"name": "My workflow",
"nodes": [
{
"parameters": {
"options": {}
},
"id": "32a160fa-88df-41dd-9949-18d98a70574d",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
[
{
"uuid": "random",
"name": "Bienvenida y Ofertas Iniciales",
"label": "Nuevo Flow",
"sensitive": false,
"keyword": ["buenas", "hola", "hello"],
"answers": [
{
"options": {
@leifermendez
leifermendez / calendar-plus-minutes.js
Created March 22, 2024 09:08
calendar-plus-minutes.js
{{ (() => {
const gap = 45
const startDate = new Date($json["body"]["startDate"]);
const endDate = new Date(startDate.getTime() + (gap * 60 * 1000));
const formatNumber = (num) => (num < 10 ? '0' : '') + num;
const formattedDate = endDate.getFullYear() + '/' +
formatNumber(endDate.getMonth() + 1) + '/' +
formatNumber(endDate.getDate()) + ' ' +
@leifermendez
leifermendez / generate-body-container.js
Created March 6, 2024 13:26
generate-body-container.js
const { generateExternalApiKey } = require('./generate-external-key');
const generateBodyContainer = (tenant = {}) => {
const { botName, userId, uuid, openAiKey } = tenant;
const sessions = `${uuid}_sessions`
const EXTERNAL_API_KEY = generateExternalApiKey(userId);
const OPENAI_API_KEY = openAiKey ?? process.env.OPENAI_API_KEY
return {
Name: `${botName.replace(/\s+/g, '')}-${uuid}`,
Image: process.env.CONTAINER_IMAGE,
@leifermendez
leifermendez / portainer-request.js
Created March 6, 2024 13:26
portainer-request.js
const axios = require('axios').default;
const https = require('https');
class PortainerRequest {
#axios = axios;
#URL = process.env.PORTAINER_URL
constructor() {
this.#axios = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false
import { createBot, createProvider, createFlow, addKeyword, MemoryDB, utils } from '@bot-whatsapp/bot'
import { BaileysProvider } from '@bot-whatsapp/provider-baileys'
const welcomeFlow = addKeyword(['hello', 'hi']).addAnswer('Ey! welcome')
const emailValidationFlow = addKeyword(utils.setEvent('EMAIL_VALIDATION'))
.addAnswer('¿Cual es tu nombre?', { capture: true })
.addAnswer('¿Cual es tu edad?', { capture: true })
.addAnswer('Gracias!!')
const typing = async function (ctx: any, provider: any) {
if (provider && provider?.vendor && provider.vendor?.sendPresenceUpdate) {
const id = ctx.key.remoteJid
await provider.vendor.sendPresenceUpdate('composing', id)
}
}
@leifermendez
leifermendez / install-nginx.sh
Created February 5, 2024 13:21
install-nginx-sh
#!/bin/bash
# Actualizar la lista de paquetes disponibles
sudo apt update
# Instalar Nginx
sudo apt install -y nginx
# Comprobar si Nginx se instaló correctamente
if [ $? -eq 0 ]; then
@leifermendez
leifermendez / customPDFLoader.ts
Created February 3, 2024 13:13
customPDFLoader.ts
import { Document } from 'langchain/document';
import { readFile } from 'fs/promises';
import { BaseDocumentLoader } from 'langchain/document_loaders';
export abstract class BufferLoader extends BaseDocumentLoader {
constructor(public filePathOrBlob: string | Blob) {
super();
}
protected abstract parse(