Hub documentation
Shiny en Spaces
Shiny en Spaces
Shiny es un marco de código abierto para crear aplicaciones de datos simples, atractivas y con alto rendimiento. El objetivo al desarrollar Shiny fue crear algo lo suficientemente simple como para enseñarlo a alguien en una tarde, pero lo suficientemente extensible como para impulsar aplicaciones grandes y críticas para la misión. Puedes crear una aplicación de Shiny útil en pocos minutos, pero si el alcance de tu proyecto crece, puedes estar seguro de que Shiny puede acomodar esa aplicación.
La principal característica que diferencia a Shiny de otros frameworks es su modelo de ejecución reactivo. Al escribir una aplicación de Shiny, el framework infiere la relación entre las entradas, las salidas y los cálculos intermedios, y utiliza esas relaciones para renderizar solo lo que necesita cambiar como resultado de una acción del usuario. El resultado es que los usuarios pueden desarrollar fácilmente aplicaciones eficientes y extensibles sin necesidad de almacenar datos en caché de forma explícita ni de escribir funciones de callback.
Shiny para Python
Shiny for Python es una implementación de Shiny en Python puro. Esto te da acceso a todas las grandes funciones de Shiny, como la reactividad, los diseños complejos y los módulos, sin necesidad de usar R. Shiny para Python es ideal para aplicaciones de Hugging Face porque se integra de forma fluida con otras herramientas de Hugging Face.
Para empezar a desplegar un Space, haz clic en este botón para seleccionar tu hardware y especificar si quieres un Space público o privado. La plantilla del Space creará algunos archivos para que tu aplicación comience a funcionar.
app.py
Este archivo define la lógica de tu aplicación. Para obtener más información sobre cómo modificar este archivo, consulta la documentación de Shiny for Python. A medida que tu aplicación se vuelve más compleja, es una buena idea dividir la lógica de la aplicación en módulos.
Dockerfile
El Dockerfile para una aplicación de Shiny for Python es muy minimalista porque la librería no tiene muchas dependencias de sistema, pero es posible que necesites modificar este archivo si tu aplicación tiene dependencias de sistema adicionales. La característica esencial de este archivo es que expone y ejecuta la aplicación en el puerto especificado en el archivo README del espacio (que es 7860 de forma predeterminada).
requirements.txt
El Space instalará automáticamente las dependencias listadas en el archivo requirements.txt. Tenga en cuenta que debe incluir shiny en este archivo.
Shiny para R
Shiny for R es un marco de aplicaciones popular y consolidado en la comunidad de R, y es una excelente opción si deseas alojar una aplicación de R en la infraestructura de Hugging Face o aprovechar algunas de las excelentes extensiones de Shiny R. Para integrar las herramientas de Hugging Face en una aplicación de R, puedes usar httr2 para llamar a las API de Hugging Face, o reticulate para llamar a uno de los SDK de Python de Hugging Face.
Para desplegar un R Shiny Space, haz clic en este botón y completa los metadatos del espacio. Esto rellenará el espacio con todos los archivos que necesitas para empezar.
app.R Este archivo contiene toda la lógica de tu aplicación. Si lo prefieres, puedes dividir este archivo en ui.R y server.R.
Dockerfile
El Dockerfile se construye a partir de la imagen rocker shiny. Deberás modificar este archivo para usar paquetes adicionales.
Si usas muchos paquetes de tidyverse, recomendamos cambiar la imagen base a rocker/shinyverse.
Puedes instalar paquetes de R adicionales agregándolos en la sección RUN install2.r del dockerfile, y los paquetes de github se pueden instalar agregando el repositorio en RUN installGithub.r.
Hay dos requisitos principales para este Dockerfile:
Primero, el archivo debe exponer el puerto que has indicado en el README. El valor predeterminado es 7860 y recomendamos no cambiar este puerto a menos que tengas una razón para hacerlo.
En segundo lugar, por el momento debes utilizar la versión de desarrollo de httpuv, que resuelve un problema con los tiempos de espera de las aplicaciones en Hugging Face.