Back to blog
    Asistente de AI para Shopify Sin Costos de API de OpenAI: El Enfoque de Modelo Local
    shopifyecommercelocal-modelapi-costsfine-tuningsegment:vibecoder

    Asistente de AI para Shopify Sin Costos de API de OpenAI: El Enfoque de Modelo Local

    Las tiendas Shopify que gastan $500-5,000/mes en costos de API de AI pueden reemplazar esas llamadas con un modelo local ajustado. Aquí está la arquitectura, la integración con Shopify y las matemáticas de costos.

    EErtas Team·

    Si tu tienda Shopify tiene funciones de AI — preguntas sobre productos, chat de soporte, recomendaciones de tallas, búsqueda — tu factura de API crece con cada usuario. Con 50,000 sesiones mensuales y 3 interacciones de AI cada una, estás haciendo 150,000 llamadas API por mes. A $0.01-0.03 por llamada, eso es $1,500-4,500/mes y subiendo.

    La alternativa: un modelo ajustado que corre en tu propio servidor. Un costo mensual fijo de infraestructura independiente del volumen. Mejor rendimiento en el catálogo específico de tu tienda y sus políticas. Sin cargos por token.

    La Realidad de Costos

    MétricaAPI de OpenAI (GPT-4o)Modelo Local Ajustado
    150,000 llamadas API/mes$1,500-4,500/mes
    Infraestructura (VPS)$20-40/mes
    Fine-tuning + configuración$8,000-12,000 (único)
    Precisión en preguntas específicas de marca65-75%85-93%
    Período de recuperación3-6 meses

    Para una tienda que hace 150,000 interacciones de AI/mes, el modelo recupera su costo de desarrollo en menos de 3 meses, luego ahorra $1,500-4,500/mes indefinidamente.

    Descripción General de la Arquitectura

    Shopify Storefront
        ↓
    Shopify Theme JS (widget de chat / componente de página de producto)
        ↓ HTTP POST
    Tu API Gateway (Node.js / Python FastAPI — puede hostear en Railway, Fly.io, o tu VPS)
        ↓
    Ollama API (compatible con OpenAI) — ejecutando tu modelo GGUF ajustado
        ↓
    Respuesta devuelta al storefront
    

    La pieza crítica: Ollama expone una API compatible con OpenAI. Cualquier código escrito para el SDK de OpenAI puede apuntar a tu endpoint de Ollama con un cambio de una línea.

    Paso 1: Preparar los Datos de tu Tienda

    Catálogo de productos: Exporta todos los datos de productos desde Shopify Admin, Productos, Exportar CSV. Limpia y convierte a JSON. Cada producto se convierte en contexto de entrenamiento.

    Historial de soporte: Si tienes Gorgias o Zendesk, exporta los tickets resueltos de los últimos 12 meses. Estos se convierten en pares de entrenamiento (pregunta, respuesta).

    Políticas: Escribe tu política de devoluciones, política de envíos, guía de tallas y términos de garantía como texto estructurado. Estos van en el mensaje del sistema.

    Paso 2: Entrenar Con Ertas

    Construye tu dataset JSONL a partir de los pares de preguntas y respuestas sobre productos y el historial de soporte. Agrega ejemplos que cubran:

    • Preguntas sobre productos ("¿Viene en talla XL?", "¿Es impermeable?")
    • Preguntas sobre envíos ("¿Cuánto tarda la entrega?", "¿Envían internacionalmente?")
    • Preguntas sobre devoluciones ("¿Puedo devolver esto?", "¿Cómo inicio una devolución?")
    • Preguntas sobre tallas/ajuste (usando los datos reales de tu guía de tallas)

    Sube a Ertas, valida, entrena. Para una tienda Shopify típica, el dataset es de 800-2,000 ejemplos. El entrenamiento toma 30-60 minutos.

    Paso 3: Desplegar el Modelo en Ollama

    En tu VPS (Hetzner CX22, DigitalOcean Droplet, o similar):

    # Install Ollama
    curl -fsSL https://ollama.ai/install.sh | sh
    
    # Import your fine-tuned GGUF from Ertas
    # Download the GGUF file from Ertas exports
    # Create a Modelfile
    cat > Modelfile << EOF
    FROM ./your-shopify-model.gguf
    SYSTEM "You are the AI shopping assistant for [Brand Store]. Help customers with product questions, sizing, shipping, and returns based on our current catalog and policies."
    EOF
    
    # Create the model
    ollama create shopify-assistant -f Modelfile
    
    # Verify it works
    ollama run shopify-assistant "Do you have blue sneakers in size 10?"
    

    Paso 4: Construir el API Gateway

    Una API simple en Express.js que reenvía solicitudes de tu tema Shopify a Ollama:

    // server.js
    import express from 'express';
    import cors from 'cors';
    
    const app = express();
    app.use(express.json());
    app.use(cors({ origin: 'https://your-store.myshopify.com' }));
    
    app.post('/chat', async (req, res) => {
      const { message, productContext } = req.body;
    
      const prompt = productContext
        ? `Customer is viewing: ${productContext.title} (${productContext.description}). Question: ${message}`
        : message;
    
      try {
        const response = await fetch('http://localhost:11434/api/chat', {
          method: 'POST',
          headers: { 'Content-Type': 'application/json' },
          body: JSON.stringify({
            model: 'shopify-assistant',
            messages: [{ role: 'user', content: prompt }],
            stream: false
          })
        });
    
        const data = await response.json();
        res.json({ response: data.message.content });
      } catch (error) {
        res.status(500).json({ error: 'Assistant unavailable' });
      }
    });
    
    app.listen(3000);
    

    Despliega esto en el mismo VPS o en Railway/Fly.io para hosting gestionado.

    Paso 5: Agregar a tu Tema de Shopify

    En el product.liquid de tu tema o en una sección personalizada:

    // chat-widget.js
    class ShopifyAIChat {
      constructor(apiUrl, productHandle) {
        this.apiUrl = apiUrl;
        this.productHandle = productHandle;
        this.productContext = window.ShopifyProductData || null; // Set via liquid
      }
    
      async ask(question) {
        const response = await fetch(`${this.apiUrl}/chat`, {
          method: 'POST',
          headers: { 'Content-Type': 'application/json' },
          body: JSON.stringify({
            message: question,
            productContext: this.productContext
          })
        });
    
        const data = await response.json();
        return data.response;
      }
    }
    
    // Initialize
    const chat = new ShopifyAIChat('https://your-api.fly.dev', '{{ product.handle }}');
    

    Pasa el contexto del producto vía Liquid:

    <!-- In your product template -->
    <script>
    window.ShopifyProductData = {
      title: "{{ product.title | json }}",
      description: "{{ product.description | strip_html | json }}",
      tags: {{ product.tags | json }},
      variants: {{ product.variants | json }}
    };
    </script>
    

    Mantenimiento: Mantener el Modelo Actualizado

    Tu tienda cambia. Nuevos productos, políticas actualizadas, inventario estacional. El modelo necesita reflejar estos cambios.

    Proceso de actualización trimestral:

    1. Exportar nuevos tickets de los últimos 3 meses
    2. Revisar adiciones de nuevos productos (agregar pares de preguntas y respuestas para nuevas líneas de productos)
    3. Actualizar secciones de políticas si cambiaron
    4. Reentrenar con dataset expandido en Ertas
    5. Descargar nuevo GGUF, desplegar vía actualización de Ollama

    La mayoría de las tiendas necesitan reentrenamiento trimestral. Tiendas con muchos cambios (promociones activas, lanzamientos frecuentes de nuevos productos) pueden necesitar reentrenamiento mensual.


    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Lectura Adicional

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading