🤖 Guía Completa: Crear Mini IA Personalizada

Instrucciones paso a paso para PC (Windows/Mac/Linux)

📋 Resumen del Proceso

Fase Acción Tiempo Estimado
Fase 1 Preparar cuentas y API Key 10 min
Fase 2 Crear repositorio en GitHub 10 min
Fase 3 Subir archivos (app.py, requirements.txt) 15 min
Fase 4 Desplegar en Streamlit Cloud 10 min
Fase 5 Configurar Secrets y probar 10 min
Fase 6 Compartir como PWA 5 min
TOTAL Todo el proceso ~60 min

📑 Índice de Contenidos

1 Preparación (Cuentas y API Key)

1 Crear Cuenta en Groq

  1. Abre tu navegador y ve a: console.groq.com
  2. Haz clic en "Sign Up" o "Log In"
  3. Inicia sesión con tu cuenta de Google (más rápido)
  4. Confirma tu email si te lo piden

2 Generar tu API Key

  1. En el menú lateral izquierdo, haz clic en "API Keys"
  2. Clic en "Create API Key"
  3. Nombre: mi-ia-personal (o el nombre de tu proyecto)
  4. Clic en "Create"
⚠️ IMPORTANTE: Copia la clave completa (empieza con gsk_...). Guárdala en un lugar SEGURO. Solo la verás UNA VEZ. Si la pierdes, debes crear una nueva.

3 Crear Cuenta en GitHub

  1. Ve a github.com
  2. Clic en "Sign Up"
  3. Completa el registro con tu email
  4. Verifica tu cuenta desde el correo

4 Crear Cuenta en Streamlit

  1. Ve a share.streamlit.io
  2. Haz clic en "Log In"
  3. Inicia sesión con tu cuenta de GitHub
  4. Autoriza el acceso

2 Crear Repositorio en GitHub

5 Crear el Repositorio

  1. En GitHub, haz clic en el botón "+" (esquina superior derecha)
  2. Selecciona "New repository"
  3. Repository name: mi-ia-personal (o el nombre de tu IA)
  4. Descripción: Opcional, ej: "Mi asistente IA personalizado"
  5. ✅ Marca "Add a README file"
  6. Clic en "Create repository"

6 Crear el archivo app.py

  1. Dentro de tu repositorio, clic en "Add file""Create new file"
  2. Nombre del archivo: app.py (exactamente, todo minúsculas)
  3. Copia y pega el siguiente código:
import streamlit as st from openai import OpenAI # CONFIGURACIÓN DE PÁGINA st.set_page_config( page_title="Mi IA Personal", page_icon="🤖", layout="centered", initial_sidebar_state="collapsed", menu_items={'Get Help': None, 'Report a bug': None, 'About': None} ) # CSS PARA APARIENCIA DE APP css_personalizado = """ <style> #MainMenu {visibility: hidden;} footer {visibility: hidden;} header {visibility: hidden;} [data-testid="stDecoration"] {display: none;} .stApp {max-width: 100%; padding: 0;} .stChatMessage {padding: 0.5rem 0;} </style> """ st.markdown(css_personalizado, unsafe_allow_html=True) # PERSONALIDAD DE TU IA SYSTEM_PROMPT = """ Eres un asistente IA personalizado. Tu tono es amigable, útil y concreto. Responde máximo 2 párrafos. Si no sabes algo, admítelo con humildad. """ # TÍTULO st.title("Mi IA Personal 🤖") st.caption("Asistente inteligente • Hecho con Streamlit") # CONEXIÓN CON GROQ try: client = OpenAI( base_url="https://api.groq.com/openai/v1", api_key=st.secrets["groq"]["api_key"] ) except Exception: st.error("❌ Error de configuración: Revisa los 'Secrets' en Streamlit Cloud.") st.stop() # HISTORIAL DE CHAT if "messages" not in st.session_state: st.session_state.messages = [] for message in st.session_state.messages: if message["role"] != "system": with st.chat_message(message["role"]): st.markdown(message["content"]) # PROCESAR MENSAJES if prompt := st.chat_input("Escribe tu pregunta..."): with st.chat_message("user"): st.markdown(prompt) st.session_state.messages.append({"role": "user", "content": prompt}) with st.chat_message("assistant"): try: mensajes_api = [{"role": "system", "content": SYSTEM_PROMPT}] + st.session_state.messages stream = client.chat.completions.create( model="llama-3.1-8b-instant", messages=mensajes_api, stream=True, ) response = st.write_stream(stream) st.session_state.messages.append({"role": "assistant", "content": response}) except Exception: st.error("⚠️ Error en la IA. Intenta de nuevo.") if st.session_state.messages and st.session_state.messages[-1]["role"] == "user": st.session_state.messages.pop() # PIE DE PÁGINA st.markdown("<div style='text-align:center;color:#888;font-size:0.8rem;margin-top:2rem'>🤖 Mi IA Personal</div>", unsafe_allow_html=True)
💡 Personaliza: Edita la variable SYSTEM_PROMPT con la personalidad de tu IA.
  1. Clic en "Commit changes"

7 Crear el archivo requirements.txt

  1. En tu repositorio, clic en "Add file""Create new file"
  2. Nombre del archivo: requirements.txt (exactamente, todo minúsculas)
  3. Contenido (copia exacto):
streamlit openai
⚠️ Importante:
  • Sin comillas
  • Sin comas
  • Una librería por línea
  • Sin espacios al inicio
  1. Clic en "Commit changes"

8 (Opcional) Crear README.md

  1. Haz clic en el lápiz ✏️ sobre el archivo README.md existente
  2. Edita con la descripción de tu proyecto
  3. Clic en "Commit changes"

3 Desplegar en Streamlit Cloud

9 Crear la App en Streamlit

  1. Ve a share.streamlit.io
  2. Haz clic en "New app"
  3. Configura los campos:
Campo Valor
Repository Selecciona tu repositorio (ej: mi-ia-personal)
Branch main
Main file path app.py (escríbelo manualmente)
  1. Haz clic en "Advanced settings" (opcional):
    • Aquí puedes cambiar el Subdomain para un enlace personalizado
  2. Haz clic en "Deploy!"

10 Configurar los Secrets (API Key)

  1. Mientras carga (o después), haz clic en los tres puntos (⋮)"Edit secrets"
  2. Pega exactamente este formato:
[groq] api_key = "gsk_TU_CLAVE_AQUI"
⚠️ Reemplaza gsk_TU_CLAVE_AQUI con tu API Key real de Groq.
  • Usa comillas rectas "
  • Sin espacios extra
  1. Haz clic en "Save"

11 Reiniciar la App

  1. Haz clic en los tres puntos (⋮)"Restart App"
  2. Espera 2-5 minutos (la primera vez instala las librerías)

4 Probar y Verificar

12 Verificar que Funciona

  1. La app debería cargar sin errores
  2. Verás el título de tu IA
  3. Pruebas rápidas:
Pregunta Resultado Esperado
"¿Quién eres?" Responde con la personalidad definida
"Hola" Responde útil y amigable
[Tema específico] Responde según tu SYSTEM_PROMPT

13 Revisar los Logs (si hay error)

  1. Haz clic en "Manage app" (abajo derecha)
  2. Clic en "Logs"
  3. Busca:
✅ Bien: Successfully installed openai
❌ Mal: ModuleNotFoundError → Revisa requirements.txt
❌ Mal: 401 Unauthorized → Revisa tu API Key en Secrets

5 Compartir como PWA

14 Obtener tu Enlace Público

  1. En Streamlit Cloud, copia tu URL:
https://mi-ia-personal.streamlit.app
✅ Este enlace es PÚBLICO y accesible desde cualquier dispositivo.

15 Personalizar el Enlace (Opcional)

  1. En Streamlit Cloud → "Settings"
  2. Cambia el Subdomain a algo único: mi-asistente-ia, juventus-app, etc.
  3. Nuevo enlace: https://mi-asistente-ia.streamlit.app

16 Instalar como PWA (App en el móvil)

📱 Android (Chrome):

  1. Abre tu enlace en Chrome
  2. Menú ⋮ → "Instalar aplicación" o "Añadir a pantalla principal"

📱 iPhone (Safari):

  1. Abre tu enlace en Safari
  2. Botón Compartir 📤 → "Añadir a inicio"

17 Generar Código QR (Opcional)

  1. Ve a goqr.me
  2. Pega tu enlace de Streamlit
  3. Descarga la imagen del QR
  4. Compártela en presentaciones, carteles o materiales

6 Mantenimiento y Actualizaciones

18 Actualizar tu IA

Para cambiar... Haz esto...
Personalidad Edita SYSTEM_PROMPT en app.py → Commit
Nombre/Icono Edita st.set_page_config() en app.py → Commit
Modelo de IA Cambia model="llama-3.1-8b-instant" → Commit
API Key Edita Secrets en Streamlit Cloud
✅ Streamlit actualiza automáticamente cada vez que haces un Commit en GitHub (espera ~1 minuto).

19 Monitorear el Uso de Groq

  1. Ve a console.groq.com
  2. Menú lateral → "Usage" o "Limits"
  3. Verifica que no excedes el límite gratuito:
Límite Valor Aproximado
Peticiones por minuto ~30 RPM
Peticiones por día ~14,400 RPD

⚠️ Solución de Problemas Comunes

Error Causa Solución
ModuleNotFoundError Falta requirements.txt Créalo con streamlit y openai
401 Unauthorized API Key incorrecta Revisa Secrets en Streamlit
400 Bad Request Modelo no disponible Usa llama-3.1-8b-instant
App.py no encontrado Mayúsculas/minúsculas Nombra el archivo app.py (minúsculas)
App no carga Cache antiguo Clear cache + Restart App

Checklist Final

🔗 Recursos Útiles

Groq Console

Para gestionar tu API Key

console.groq.com

GitHub

Para alojar tu código

github.com

Streamlit Cloud

Para desplegar tu app

share.streamlit.io

Modelos Groq

Documentación de modelos

Ver modelos

Streamlit Docs

Documentación oficial

docs.streamlit.io

Generador QR

Para crear códigos QR

goqr.me