¿Cómo estructurar tu repositorio para un despliegue exitoso?
Cuando trabajas con aplicaciones complejas, es fundamental mantener una estructura de repositorio clara y bien organizada. Esto es especialmente importante si estás utilizando herramientas como Docker para el despliegue. En nuestro caso, todas las configuraciones e implementaciones deben manejarse en una rama específica de deploy para evitar confusiones. Aquí te mostramos cómo estructurar tu aplicación:
-
Directorio app: Debes mantener los archivos esenciales dentro del directorio app:
-
__init__.py: Vacío, para designar el paquete.
-
config: Configuraciones clave de la aplicación.
-
convectorizer.pickle: Artefacto vital para transformar datos a representación matricial para el modelo.
-
db.py: Configuraciones de la base de datos, incluyendo campos y tipos de datos.
-
main.py: Encapsula toda la lógica de la aplicación.
-
prestart.sh: Inicializa la base de datos, indicando el puerto 5432.
-
Archivos externos a app:
-
Dockerfile y docker-compose.yml: Para la estructura de Docker.
-
Model: Usado para leer al generar predicciones en batch.
-
requerimientos: Todas las dependencias necesarias.
-
Archivo para instancias en AWS: Configura la instancia, actualiza, y gestiona conexiones.
¿Cómo proceder con el despliegue local?
Desplegar una aplicación localmente antes del servidor final es un buen ejercicio para asegurar que todo funciona como se espera. A continuación, te guiamos en el proceso:
- Preparar la terminal:
- Asegúrate de estar en la correcta rama de trabajo en tu repositorio.
- Construir la imagen Docker:
- Levantar la aplicación:
- Usa
docker compose up para ejecutar.
- Corregir errores:
- Si encuentras un error, como el de indentación en
db.py línea 29, corrígelo. Requiere ajustar docstrings o llaves mal puestas.
- Validación con Postman:
- Cambia el método a POST.
- Introduce el entry point: IP local, puerto 5004 y método
predict.
- Define el cuerpo como lista de diccionarios con campos
client name y text.
¿Cómo realizar pruebas de predicciones?
Una vez la aplicación está funcionando localmente, será momento de probar las predicciones con Postman. Estos son los pasos que debes seguir:
-
Enviar solicitudes:
-
Usa el método POST a la API con el cuerpo de prueba.
-
Comprueba la estructura del entry point y asegúrate de que los datos están correctamente formateados.
-
Verifica las respuestas:
-
Tras enviar la solicitud, deberías recibir un diccionario con el valor de prediction.
-
Si el status code es 200, indica que la aplicación funcionó correctamente.
¿Cómo conectarse a la base de datos y validar datos?
Para garantizar que tus predicciones se almacenan adecuadamente en la base de datos, sigue estos pasos:
-
Usa tu gestor favorito de base de datos:
-
En este caso, puedes usar Visual Studio Code con la extensión de conexiones.
-
Configura tu conexión con localhost, puerto 5433 y credenciales definidas en el Dockerfile.
-
Verifica los datos:
-
Examina los registros almacenados, como ID, client name, prediction.
-
Confirma que las predicciones han sido decodificadas correctamente usando label mapping.
Esta estructura y proceso ayudan a garantizar que el despliegue se realiza sin problemas, asegurando una transición fluida de local a producción. ¡No dudes en seguir experimentando y afinando estos pasos para perfeccionar tus despliegues!