Hub documentation

Shiny no Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Shiny no Spaces

Shiny é um framework de código aberto para criar aplicativos de dados simples, bonitos e com alto desempenho. O objetivo ao desenvolver o Shiny era criar algo simples o suficiente para ensinar a alguém em uma tarde, mas extensível o suficiente para suportar aplicativos grandes e críticos para a missão. Você pode criar um aplicativo Shiny útil em poucos minutos, mas, se o escopo do seu projeto crescer, pode ter certeza de que o Shiny pode acomodar esse aplicativo.

O principal recurso que diferencia o Shiny de outros frameworks é seu modelo de execução reativo. Ao escrever um aplicativo Shiny, o framework inferencia a relação entre entradas, saídas e cálculos intermediários e usa essas relações para renderizar apenas o que precisa ser alterado como resultado de uma ação do usuário. O resultado é que os usuários podem desenvolver facilmente aplicativos eficientes e extensíveis sem precisar explicitamente fazer cache de dados ou escrever funções de callback.

Shiny para Python

Shiny for Python é uma implementação em Python puro do Shiny. Isso dá a você acesso a todos os excelentes recursos do Shiny, como reatividade, layouts complexos e módulos, sem a necessidade de usar R. O Shiny for Python é ideal para aplicações do Hugging Face, pois se integra de forma suave com outras ferramentas do Hugging Face.

Para começar a implantar um Space, clique neste botão para selecionar seu hardware e especificar se deseja um Space público ou privado. O modelo do Space preencherá alguns arquivos para iniciar seu aplicativo.

app.py

Este arquivo define a lógica do seu aplicativo. Para saber mais sobre como modificar este arquivo, consulte a documentação do Shiny for Python. À medida que seu aplicativo se torna mais complexo, é uma boa ideia dividir a lógica da sua aplicação em módulos.

Dockerfile

O Dockerfile para um aplicativo Shiny for Python é muito minimalista, pois a biblioteca não possui muitas dependências de sistema, mas você pode precisar modificar esse arquivo se o seu aplicativo tiver dependências de sistema adicionais. A única funcionalidade essencial desse arquivo é que ele expõe e executa o aplicativo na porta especificada no arquivo README do espaço (que é 7860 por padrão).

requirements.txt

O Space instalará automaticamente as dependências listadas no arquivo requirements.txt. Observe que você deve incluir shiny neste arquivo.

Shiny para R

Shiny for R é um framework de aplicações popular e consolidado na comunidade R e é uma ótima escolha se você deseja hospedar um aplicativo R na infraestrutura do Hugging Face ou aproveitar algumas das excelentes extensões do Shiny R. Para integrar as ferramentas do Hugging Face a um aplicativo R, você pode usar o httr2 para chamar as APIs do Hugging Face ou o reticulate para chamar um dos SDKs em Python do Hugging Face.

Para implantar um Espaço R Shiny, clique neste botão e preencha os metadados do espaço. Isso preencherá o Espaço com todos os arquivos necessários para começar.

app.R Este arquivo contém toda a lógica da sua aplicação. Se preferir, você pode dividir este arquivo em ui.R e server.R.

Dockerfile

O Dockerfile é construído a partir da imagem rocker shiny. Você precisará modificar este arquivo para usar pacotes adicionais. Se você estiver usando muitos pacotes do tidyverse, recomendamos trocar a imagem base para rocker/shinyverse. Você pode instalar pacotes R adicionais adicionando-os na seção RUN install2.r do dockerfile, e pacotes do github podem ser instalados adicionando o repositório em RUN installGithub.r.

Existem dois requisitos principais para este Dockerfile:

  • Primeiro, o arquivo deve expor a porta que você listou no README. O padrão é 7860 e recomendamos não alterar essa porta, a menos que você tenha um motivo para isso.

  • Em segundo lugar, por enquanto, você deve usar a versão de desenvolvimento do httpuv, que resolve um problema com timeouts de aplicativo no Hugging Face.

Update on GitHub