La aplicación está organizada como un servicio FastAPI que entrega tanto la interfaz estática como las respuestas de análisis. Esta elección mantiene el flujo de usuario y la inferencia en el mismo despliegue y evita colocar credenciales del proveedor de lenguaje en el navegador. El contrato de entrada restringe el mensaje a un máximo de 800 caracteres y rechaza entradas vacías. Una comprobación léxica requiere una referencia reconocible a Bitcoin o al mercado cripto antes de ejecutar el análisis.
La preparación del texto pasa a minúsculas, elimina enlaces, menciones y símbolos de ticker, conserva signos útiles y reduce repeticiones y espacios. Mantener una limpieza coherente es importante porque el clasificador trabaja sobre una representación derivada del texto, no sobre variables de mercado. Sentence Transformers genera el embedding semántico; los clasificadores LightGBM operan sobre esa representación. En lugar de una única etiqueta multiclase, la inferencia encadena dos ensembles. Si la probabilidad de la clase negativa queda por debajo de su umbral, devuelve «Do not invest»; si lo alcanza, evalúa el ensemble neutral. En esa segunda etapa, una probabilidad neutral igual o superior a su umbral da «Invest»; de lo contrario, la salida también es «Do not invest».
La explicación es una capa posterior a la clasificación, no el mecanismo que decide la orientación. Cuando OpenAI está configurado, recibe el texto original como dato no confiable junto con la etiqueta del modelo y debe explicar el resultado sin inventar probabilidades ni prometer rendimientos. Si la llamada falla o no hay clave, el sistema genera una explicación local. Esta alternativa evita que la disponibilidad del proveedor externo sea requisito para recibir un resultado. La respuesta mantiene explícita la incertidumbre del análisis.
Para el empaquetado, Docker prepara los artefactos y el modelo de embeddings durante la construcción, y el servicio los carga en modo sin conexión al arrancar. Se usa un único worker para contener la memoria duplicada de los modelos. FastAPI expone comprobaciones de salud; la aplicación incorpora límite de solicitudes, cabeceras de seguridad y una respuesta genérica ante errores internos. Estas decisiones incorporan aspectos de operación y protección de credenciales.
El proyecto conserva también una iteración de clasificación binaria de sentimiento positivo o negativo, con otro flujo de API y ajuste del umbral sobre validación. Es una línea distinta de la aplicación web secuencial y sus resultados no describen el rendimiento de esta.