Chatbot IA con Llama 3: aprovecha la inteligencia artificial

Hola!, estoy de regreso y no, no es solo algo sencillo pero antes que nada hagamos una pausa

Veras todo el valor que tiene esta publicación si estas al tanto del modelo Llama3 y el auge de MetaAI

T O T A L M E N T E G R A T I S!

Ojo que lo de total quizás exagere pero para nosotros los humanos casi que ni gastaremos un centavo de nuestro bolsillo por ello.

Doble pausa!, antes te dejaré las referencias de las 3 alternativas para utilizar Llama 3 (Existen diversas formas, a mi parecer te traigo las 3 más sencillas de usar o Ready-to-use).

La primera y mi favorita debido a su facilidad de integración es Langchain; Langchain es un framework basado totalmente en AI y bueno ya te digo que son muchas las ideas creativas que pueden surgir del framework.

En segundo lugar y no menos importante Cloudflare worker AI; Cloudflare ofrece un modelo de implementación llamado workers los cuales se encuentran en lugares muy cercanos a tu región y están adaptados para funcionar de diversas maneras incluyendo serverless, es increíble no solo la facilidad de configurar un Llm totalmente gratis y además de baja Latencia, bueno que no te cuento más, ni en tu máquina funciona tan bien 🙂

Por último y gestor de la comunidad, Ollama, de Ollama te puedo decir que es el Docker de los Llm’s, solo descargas el script y lo demás es ollama run

Me encantaría abarcar todos los ejemplos posibles lamentablemente hoy no será el caso.

Si hasta aquí, ya te emociona comenzar, prepárate puede que necesites algo más

Dado que usaremos Cloudflare y me gusta Cloudflare te invito a crear tu cuenta en caso no la tengas, Vamos es sencillo:

Cuando tengas tu cuenta cloudflare con tu dominio alojado, ubica tu Zone ID y Account ID. LO NECESITAREMOS 🙂

MANOS AL CÓDIGO!!

 # Inicia tu proyecto builderbot

pnpm create [email protected]

Deberías ver algo similar ????????

Instala cada una de las bibliotecas que te dejo a continuación ????????????????

pnpm install @langchain/cloudflare dotenv

Configura en tu archivo ./src/app.ts

import { CloudflareWorkersAI } from "@langchain/cloudflare";

// Necesitas configurar tus entornos CLOUDFLARE_ACCOUNT_ID y CLOUDFLARE_API_TOKEN
const model = new CloudflareWorkersAI({
  model: "@cf/meta/llama-3-8b-instruct",
  cloudflareAccountId: process.env.CLOUDFLARE_ACCOUNT_ID,
  cloudflareApiToken: process.env.CLOUDFLARE_API_TOKEN,
});

Crea tu flujo inicial o WELCOME

// Este modelo tiene la particularidad de responder en string :)
// No olvides usar invoke para llamar su función
// La primera llamada suele tardar
const welcomeFlow = addKeyword<Provider, Database>(EVENTS.WELCOME)
    .addAction(async (ctx, { flowDynamic }) => {
        const answerAI = await model.invoke(ctx.body)
        await flowDynamic(answerAI)
})

Tu código debería verse de esta manera recuerda que está en ./src/app.ts ejecuta con npx tsx src/app.tsTypeScriptCopiar.

 import "dotenv/config"
import { createBot, createProvider, createFlow, addKeyword, EVENTS } from '@builderbot/bot'
import { MemoryDB as Database } from '@builderbot/bot'
import { BaileysProvider as Provider } from '@builderbot/provider-baileys'

import { CloudflareWorkersAI } from "@langchain/cloudflare";

const model = new CloudflareWorkersAI({
  model: "@cf/meta/llama-3-8b-instruct",
  cloudflareAccountId: process.env.CLOUDFLARE_ACCOUNT_ID,
  cloudflareApiToken: process.env.CLOUDFLARE_API_TOKEN,
});

const welcomeFlow = addKeyword<Provider, Database>(EVENTS.WELCOME)
    .addAction(async (ctx, { flowDynamic }) => {
        const answerAI = await model.invoke(ctx.body)
        await flowDynamic(answerAI)
})

const main = async () => {
    const adapterFlow = createFlow([welcomeFlow])
    
    const adapterProvider = createProvider(Provider)
    const adapterDB = new Database()

    const { handleCtx, httpServer } = await createBot({
        flow: adapterFlow,
        provider: adapterProvider,
        database: adapterDB,
    })

    httpServer(+3000)
}

main()

Happy Codding <3

En Grupo MET podemos ayudarte a implementar esta y muchas mas herramienta para optimizar tu trabajo. ¡Contáctanos para saber más!

Contactanos