Pakistan Notice Helper: IA pequeña para alertas locales | Keryc
Recibes un SMS que dice: tu cuenta será suspendida, haz clic en este enlace. ¿Qué haces? Pakistan Notice Helper es una herramienta de IA pensada para ese momento: no declara si un mensaje es auténtico, pero te ayuda a pausar, ver señales de riesgo y seguir pasos más seguros antes de hacer clic, llamar o compartir un OTP.
Qué es Pakistan Notice Helper
Es una pequeña aplicación de seguridad que acepta texto o captura de pantalla y devuelve:
una etiqueta de riesgo,
una explicación breve,
las banderas rojas visibles,
y pasos seguros a seguir.
No es un verificador definitivo. Su objetivo es hacer triage: ayudarte a decidir si conviene investigar más o detenerte antes de actuar.
Por qué construir algo pequeño y local
¿Por qué no un asistente gigante que lo haga todo? Porque el problema es local y concreto: mensajes sospechosos en Pakistán escritos en inglés, urdu, Roman Urdu o mezclas. Un modelo grande da calidad, pero también trae costos, latencia y problemas de despliegue.
La decisión aquí fue priorizar la experiencia práctica: rapidez, costo razonable, y comportamiento predecible. Ese enfoque permitió crear una herramienta útil en tres días de hackathon, con iteraciones reales sobre casos de prueba.
Cómo funciona técnicamente
La pila técnica es compacta pero potente:
Frontend: Space en Hugging Face con un frontend custom usando Gradio.
Backend: Gradio queued server que habla con un endpoint en Modal.
Inferencia: llama.cpp acelerado con CUDA para servir modelos en formato GGUF.
Modelo seleccionado: Qwen3.5 4B Q8 MTP GGUF con un proyector de visión para manejar capturas.
La app maneja texto y screenshots, aplica prompts y una "output contract" estricta para evitar que el modelo invente URLs, números o organizaciones.
Calidad vs. coste: la elección del modelo
El autor probó varios modelos:
Qwen3.6 27B: mejor calidad cruda (cerca de 95/100 en sus pruebas), pero costoso, lento en cold starts y pesado para un demo.
MiniCPM-V 4.6 Q8: prometedor por tamaño, pero inestable y lento en su despliegue con ZeroGPU.
Qwen3.5 4B: el equilibrio ideal: suficiente capacidad (≈80/100 para la tarea), barato, rápido y práctico para Modal y llama.cpp.
Ese balance hizo posible un servicio ágil: respuestas típicas en ~5 segundos y ~9 segundos en cold start.
Diseño de producto y seguridad del output
El equipo fue muy claro en los límites del producto. En lugar de afirmar que algo es 100% real o falso, la app identifica señales observables, por ejemplo:
lenguaje de amenaza o suspensión urgente;
solicitudes de OTP, PIN, contraseñas, CVV, CNIC o datos de tarjeta;
enlaces de pago sospechosos o números móviles personales;
suplantación de bancos, telecom, mensajería, autoridades fiscales o policía;
premios, reembolsos o trabajos que piden pago adelantado.
Y ofrece pasos prácticos: verifica por canales oficiales que tú busques (no uses los enlaces o números del mensaje), contacta al soporte oficial, o ignora y reporta según corresponda.
También implementaron protecciones producto-mecánicas:
prohibición en el sistema de prompts para inventar URLs o números,
ajuste de presupuestos de tokens para respuestas con visión,
desactivación del "thinking mode" que consumía el presupuesto antes de devolver JSON estructurado.
Soporte para Urdu y UX
El soporte en Urdu no fue solo traducir etiquetas. Cambió la interfaz:
layout RTL (derecha a izquierda),
traducción de encabezados y controles,
instructivo para que el modelo genere la evaluación en escritura urdu clara.
Detalles como fuentes (Nastaliq vs. stack árabe del sistema), alturas de línea y orden de elementos mixtos (Urdu + nombres latinos) fueron ajustes necesarios para que la app se sienta confiable y legible.
Pruebas, trazabilidad y privacidad
El proyecto incluyó una suite de regresión pequeña para pruebas de calidad. Resultados destacados del autor:
Medida
Resultado
Pasos estrictos iniciales
9 de 10
Puntuación promedio inicial
89.5/100
Pasos de regresión final
10 de 10
Puntuación promedio final
100/100
Casos de alto riesgo
Todos pasaron
Casos con capturas
Ambos pasaron
Se añadió una traza pública opcional que publica solo metadatos limitados (contadores, booleanos, resúmenes fijos). Importante: la traza NO almacena screenshots ni textos completos; las entradas se redactan y capan. El endpoint de inferencia sigue siendo privado y corre en Modal, por lo que la app advierte a los usuarios que no envíen datos sensibles.
Lecciones prácticas y siguientes pasos técnicos
¿Qué enseñó el proyecto sobre construir con modelos pequeños?
Cuando el problema está bien acotado, un 4B puede ser sorprendentemente efectivo.
La seguridad viene más de un contrato de salida claro, prompts validados y UX que obliga a la duda, que de solo aumentar parámetros.
Costos, latencia y cold starts son factores decisivos en la experiencia real.
Para la siguiente versión, el autor propone un flujo de verificación agentico: un agente controlado (planeado con Olostep y OpenAI Agents SDK) que busque advertencias públicas, scrapee fuentes independientes y muestre evidencia separada de la inferencia. Ese flujo debe mantener límites estrictos (nunca confiar en datos del mensaje) y equilibrar la demora extra (hasta ~30 segundos) frente al beneficio de verificación profunda.
Reflexión final
Pakistan Notice Helper no pretende ser la última palabra contra el fraude. Es una luz pequeña y práctica: ayuda a que la gente piense dos veces, vea señales claras y actúe de forma más segura. Para problemas locales y concretos, la IA pequeña, bien diseñada y con límites honestos puede marcar la diferencia.