
Postal IA (IV): el mismo candado que PINSAPIA, antes de salir a la red del centro
Esta entrada continúa las tres anteriores sobre Postal IA. Hasta ahora la aplicación solo se había probado en local, en el propio ordenador, sin nadie más escribiendo temas desde otro sitio. Antes de dar ese paso —abrirla en la red del centro, como ya hace PINSAPIA— quedaban tres cosas pendientes, y se resolvieron juntas en esta sesión: un filtro básico de mensajes sospechosos, un límite de peticiones por minuto, y activar de verdad el código de acceso.
Tres piezas ya probadas en PINSAPIA
Las dos primeras se copiaron tal cual, sin inventar nada nuevo: el mismo filtro de mensajes sospechosos que ya usa PINSAPIA (PATRONES_SOSPECHOSOS en su main.py: intentos habituales de manipular el system prompt, tipo «ignora las instrucciones anteriores» o pedir que revele su configuración interna), aplicado ahora también al tema que escribe quien usa Postal IA. Y el mismo límite de peticiones —20 por minuto, con slowapi—, por la misma razón que allí: un bucle por error, una pestaña olvidada recargando, o varias personas preguntando a la vez pueden encadenar peticiones a un modelo que en ROCKY corre sin GPU, y cada una es cara. Se probó mandando 21 peticiones seguidas: las primeras 20 pasaron, la 21ª cayó con el mismo tipo de aviso que da PINSAPIA cuando se supera el límite.
El equívoco de la variable de entorno
La tercera pieza, el código de acceso (POSTALIA_TOKEN, mismo mecanismo que MONTEIA_TOKEN), trajo una confusión que merece explicarse porque seguramente no es la última vez que pasa. Al ir a activarla, la variable de PINSAPIA no aparecía en el panel de «Variables de entorno» de Windows, como si algo estuviera roto. No lo estaba: revisando la propia entrada de este blog sobre abrir MonteIA a la red del centro, PINSAPIA define su código con $env:MONTEIA_TOKEN = "..." en PowerShell, y eso crea una variable que solo existe mientras esa ventana sigue abierta — nunca se guarda en ningún sitio, así que nunca iba a aparecer en el panel de variables permanentes. Dos cosas con el mismo nombre («variable de entorno») que se comportan de forma bastante distinta: una vive y muere con la ventana de PowerShell; la otra se guarda de verdad y aparece en ese panel, pero solo si se crea ahí expresamente. Para Postal IA se optó por la segunda: una variable permanente, creada una sola vez desde el panel de Windows, para no tener que repetir el comando cada vez que se abre una terminal nueva.
Un hueco que faltaba: el código en la propia página
Activar la variable en el servidor no bastaba: la página no tenía ningún sitio donde escribir el código, así que en cuanto se exigiera, cualquier intento de generar una postal habría fallado sin explicación visible. Se añadió un campo discreto, «Código de acceso», debajo del selector de forma. El valor se guarda en el propio navegador (localStorage, nada de servidores ni bases de datos) para no tener que volver a escribirlo cada vez, y se manda en una cabecera con cada petición. Si el servidor no tiene el código activado, ese valor simplemente no se usa para nada: no hay que quitarlo ni ponerlo según el caso.
Cómo se comprobó
Con un LM Studio de mentira y un navegador sin cabeza (Playwright) que repitió toda la secuencia real: sin código, la petición falla; con el código correcto, la postal se genera; recargando la página, el código sigue ahí; con un código incorrecto, vuelve a fallar. Las cuatro comprobaciones dieron el resultado esperado antes de dar esto por terminado.
Qué no hace todavía (límites honestos)
- El filtro de mensajes sospechosos y el límite de peticiones son una barrera razonable, no una garantía de seguridad — el mismo aviso que ya hace PINSAPIA sobre los suyos.
- El código de acceso viaja sin cifrar por la red del centro, igual que en PINSAPIA: para un piloto dentro de una red ya de por sí cerrada no cambia mucho el riesgo real, pero no es lo mismo que HTTPS.
- La rima asonante del romance sigue sin comprobarse (ver la entrada anterior); esto no ha cambiado en esta sesión.
Siguiente paso
Que José Luis pruebe Postal IA desde otro dispositivo dentro de la misma red, no solo desde el propio ROCKY, para confirmar que el código de acceso y el límite de peticiones se comportan igual fuera de localhost. Si todo va bien ahí, Postal IA estaría lista para su primera prueba real con un grupo de alumnado.

postal2026
Etiqueta:AIDARAC, ies monterroso, lm studio, montesteam, postal ia, rate limiting, ROCKY, seguridad, variables de entorno, windows


