Empezamos nuestro despliegue de IA por las personas, no por los procesos
TL;DR
Le dimos a todo el mundo en la empresa una sola herramienta de IA: menos de 500 personas, repartidas en varios países de la UE. Empezamos por el trabajo cotidiano de cada persona en vez de por la automatización de procesos de arriba hacia abajo. La herramienta es LibreChat, autoalojada, conectada a Azure OpenAI en una región de la UE para que los datos se queden en la UE, con Redakt, el detector de PII sobre el que ya escribí, dentro del stream de peticiones. Este artículo cuenta por qué lo hicimos en ese orden y qué hay en el setup.
Dos vías, y por qué empezamos por las personas
Llevar la IA a una organización avanza por dos vías. Una es de arriba hacia abajo: la dirección y los departamentos miran los procesos y buscan dónde la IA puede mejorarlos. La otra es de abajo hacia arriba: ayudar a cada persona a hacer su propio trabajo diario de forma más eficiente. Empiezas redactando, resumiendo, traduciendo, abriéndote paso por un documento o una hoja de cálculo, y luego pasas a crear agentes personales que optimizan un flujo de trabajo muy concreto. La meta ambiciosa es convertir a todos en builders, o al menos darles la capacidad de serlo.
La vía de los procesos importa, pero en muchas organizaciones, la nuestra incluida, buena parte de ella depende de datos que todavía no están limpios ni bien conectados, y ese trabajo lleva tiempo. Los proyectos que necesitan esos datos quedan a la espera, mientras otros avanzan. La vía individual no tiene esa dependencia, así que puede aportar valor antes. Lo que necesita es más pequeño: una herramienta usable que todos tengan, y algo de orientación sobre cómo usarla.
Así que empezamos por las personas. Y antes de poder ayudar a alguien con su trabajo diario con IA, la gente necesita acceso, lo que hizo concreto el primer paso: darle a todo el mundo una sola herramienta que todos puedan usar, lo bastante buena para ser útil, sobre una infraestructura que controlamos, con los datos guardados en la UE. El resto de este artículo trata de cómo lo construimos.
Qué usamos
Elegimos LibreChat. Es un frontend de código abierto al estilo de ChatGPT, y es bastante conocido en los círculos de self-hosting, aunque mucha gente que trabaja con IA nunca se ha topado con él.
Para un despliegue en toda la empresa, cubre lo que necesitábamos:
- SSO mediante Azure Entra ID, de modo que el acceso usa nuestra configuración de identidad ya existente en lugar de una lista de usuarios aparte.
- Autoalojado, de modo que el despliegue y el camino de los datos son nuestros.
- Extensible, lo que importa para lo que queremos añadir más adelante.
También miramos Open WebUI, la otra opción común en este espacio. Ambas son capaces. LibreChat resultó un poco más ligero de operar para nuestras necesidades, así que ahí fue donde fuimos.
El stack
El modelo es GPT-5, ejecutándose en Azure OpenAI en Sweden Central, sobre un despliegue de zona de datos de la UE que mantiene el procesamiento dentro de la UE para el RGPD. Un modelo más pequeño y barato se encarga de tareas en segundo plano, como generar los títulos de las conversaciones.
GPT-5 cuesta alrededor de 1,25 $ por millón de tokens de entrada y 10 $ por millón de salida. No es barato. Lo que lo hace viable como herramienta para todos es la facturación por uso. Las licencias por puesto rondan los 20–30 € por persona al mes, y con unos cuantos cientos de personas, la mayoría de las cuales lo usa poco, eso es un montón de acceso pagado que queda sin usar. Con inferencia por uso solo pagamos por lo que realmente se usa, así que la mayoría que apenas lo toca cuesta casi nada. Seguimos ofreciendo herramientas por puesto como Claude y Copilot para quienes viven dentro de ellas, pero esto es la capa base que está por debajo.
Detección de PII con Redakt
Redakt es el servicio de detección de PII que construí y sobre el que escribí antes. Lo conectamos a nuestra herramienta de chat interna para que quede entre el cliente de LibreChat y la API de inferencia de Azure e inspeccione la conversación a medida que pasa. Funciona de forma asíncrona, así que no añade latencia al chat.
Por ahora solo avisa. Si alguien está a punto de enviar un nombre, una dirección u otros datos de clientes, Redakt lo marca. También se puede configurar para que lance un error, y nuestra personalización entonces impide que la conversación se complete por ese motivo, pero empezamos con avisos en vez de con bloqueos.
Lo hicimos a propósito. Un aviso en el momento en que alguien pega datos personales deja que la gente ajuste primero sus propios hábitos. Pasar de avisar a bloquear más adelante es un cambio de configuración, una vez que la gente se ha acostumbrado a la herramienta.
Cómo extenderlo
LibreChat tiene dos maneras de añadir capacidades, y ambas importan para hacia dónde lo llevamos.
Tiene una función de agents incorporada. Es una versión simplificada de la idea: una configuración con nombre que combina un modelo, un system prompt, herramientas y archivos de conocimiento, con la que un usuario puede chatear. Es limitada en comparación con un framework de agentes completo, pero alcanza para cosas como un asistente de políticas o una ayuda para redactar, sin escribir código.
Para cualquier cosa más allá de eso, construyes el agente en un framework como Haystack o LangGraph, lo expones detrás de un endpoint compatible con OpenAI, y añades ese endpoint a LibreChat. El agente aparece entonces en la misma interfaz que todos ya usan. LibreChat también admite servidores MCP para conectar herramientas y fuentes de datos. La documentación cubre todo el abanico.
Lo primero que vamos a conectar es Sherpa, una guía de adopción de IA en la que vengo trabajando, para ayudar a los colegas a descubrir cómo usar la IA en su propio trabajo.
Qué viene después
La vía de los procesos avanza en paralelo. Una parte ya está en marcha, y las partes que dependen de datos más limpios y mejor conectados se irán abriendo a medida que ese trabajo se concrete. La vía individual, mientras tanto, ya está entregando valor, y se acumula: la gente solo aprende hasta dónde puede llevar una herramienta usándola. Ayudar a los colegas con tareas cotidianas construye esa familiaridad, y mi esperanza es que abra usos de la IA de más alto nivel a los que de otro modo no habrían llegado, que es justo para lo que están la labor de formación y herramientas como Sherpa.
Una herramienta compartida y algo de orientación es todo lo que la vía individual necesita para arrancar. El trabajo más grande, a nivel de procesos, avanza en paralelo junto a ella.