## 1. Configuración única del sistema

Se hace una sola vez, no por cada cliente. Si ya está hecha, sáltate esta sección.

1
Config de embeddings (OpenAI)

En `/app/ai-config`, crea una config con provider OpenAI y activa el módulo "uMind — embeddings". Necesita su propia API key de OpenAI. La usan todos los clientes para generar los vectores de búsqueda de su base de conocimiento.

2
Config de chat (Anthropic recomendado)

Al menos una config activa de chat. Se asigna a cada tenant al crearlo — puedes reutilizar la misma para todos los clientes, o crear una por cliente si más adelante quieres separar costo/uso por cliente.

## 2. Información a pedirle al cliente antes de empezar

Dato | Por qué
--- | ---
URL exacta de su sitio | Es lo que se va a "leer" (crawlear) para entrenar el asistente.
Todos los dominios donde corre el sitio | Crítico: con y sin `www`, y staging si aplica. Si falta uno, el widget se bloquea ahí por seguridad.
Tono/personalidad deseado | Opcional — formal, cercano, con emojis, etc. Si no lo dan, se usa un tono neutro por defecto.
Mensaje de bienvenida | Opcional — el saludo que ve el visitante al abrir el chat.
Quién instala el script | Su desarrollador, o alguien de U-Site si administras el sitio.

## 3. Proceso paso a paso en `/app/umind`

1
Crear el tenant

Nombre, dominios permitidos, config de IA de chat, tono, mensaje de bienvenida.

2
Ingestar el sitio

Entra al tenant → pestaña "Base de conocimiento" → pega la URL del sitio → clic en Ingestar. Espera a que el estado pase de "procesando" a "listo" (puede tardar varios minutos según el tamaño del sitio).

3
Copiar el código de instalación

Desde la ficha del tenant, copia el snippet:

    <script src="https://admin.u-site.app/widget/umind.js" data-site="SITE_KEY" defer></script>

4
Entregarlo al cliente

Que lo peguen justo antes de `</body>` en su sitio (o lo pega quien administre el sitio si es un proyecto de U-Site).

5
Probar en el sitio real

Entra al sitio del cliente y hazle un par de preguntas al widget para validar que responde bien antes de darlo por "en producción".

## 4. Antes de vender a un cliente puntual — revisa esto

Limitaciones a tener en cuenta:

- Sitios 100% React/Vue/Angular sin renderizado en servidor (SPA): el crawler solo lee el HTML que devuelve el servidor, no ejecuta JavaScript. Si el contenido del sitio se carga todo por JS, la ingesta puede salir casi vacía — revisa el sitio (o pide que lo validen) antes de prometer el servicio.
- No hay carga de PDF/Word todavía: solo se ingesta desde una URL pública. Si el cliente quiere que el asistente conozca un PDF de precios que no está publicado como página web, eso no está soportado hoy.
- Sitios muy grandes: ajustar el número máximo de páginas al ingestar (por defecto 30) si el sitio tiene cientos de páginas.
- Sin panel de costos por cliente todavía: si se factura por consumo real en vez de tarifa plana, hoy no hay forma de ver cuánto gastó cada tenant en la plataforma.

## Checklist rápido

- Config global de embeddings (OpenAI) creada — una sola vez
- Config global de chat (Anthropic) creada — una sola vez
- URL y todos los dominios del cliente confirmados
- Tenant creado en /app/umind
- Sitio ingestado y en estado "listo"
- Snippet copiado y entregado
- Widget probado en el sitio real