Shiny on Spaces
Shiny 是一个用于构建简单、美观且高性能数据应用程序的开源框架。开发 Shiny 的目标是构建一个足够简单的框架,以便在半天内教会某人,但又足够可扩展,能够为大型的关键任务应用程序提供支持。您可以在几分钟内创建一个有用的 Shiny 应用程序,但如果项目范围扩大,您可以确保 Shiny 可以满足该应用程序的需求。
Shiny 与其他框架的主要区别在于其反应式执行模型。当您编写 Shiny 应用程序时,框架会推断输入、输出和中间计算之间的关系,并利用这些关系仅呈现由于用户操作而需要更改的内容。结果是用户可以轻松开发高效、可扩展的应用程序,而无需显式缓存数据或编写回调函数。
Shiny for Python
Shiny for Python 是 Shiny 的纯 Python 实现。这使您可以访问 Shiny 的所有强大功能,例如反应性、复杂布局和模块,而无需使用 R。Shiny for Python 非常适合 Hugging Face 应用程序,因为它可以与其他 Hugging Face 工具无缝集成。
要开始部署 Space,请单击此按钮以选择您的硬件并指定您是否需要公共或私有 Space。Space 模板将填充一些文件以帮助您开始使用应用程序。
app.py
此文件定义了应用程序的逻辑。要详细了解如何修改此文件,请参阅Shiny for Python 文档。随着应用程序变得越来越复杂,最好将应用程序逻辑分解成模块。
Dockerfile
Shiny for Python 应用程序的 Dockerfile 非常简洁,因为库没有太多系统依赖项,但如果您的应用程序有其他系统依赖项,则可能需要修改此文件。此文件的一个基本功能是它在 Space README 文件中指定的端口上公开并运行应用程序(默认为 7860)。
requirements.txt
Space 将自动安装在 requirements.txt 文件中列出的依赖项。请注意,您必须在此文件中包含 shiny。
Shiny for R
Shiny for R 是 R 社区中一个流行且完善的应用程序框架,如果您想在 Hugging Face 基础设施上托管 R 应用程序或利用一些出色的Shiny R 扩展,这是一个不错的选择。要将 Hugging Face 工具集成到 R 应用程序中,您可以使用httr2 调用 Hugging Face API,或使用reticulate 调用 Hugging Face Python SDK 之一。
要部署 R Shiny Space,请单击此按钮并填写 Space 元数据。这将使用您开始所需的所有文件填充 Space。
app.R 此文件包含所有应用程序逻辑。如果您愿意,可以将此文件分解成ui.R
和 server.R
。
Dockerfile
Dockerfile 基于rocker shiny 镜像构建。您需要修改此文件以使用其他包。如果您使用了很多 tidyverse 包,我们建议将基础镜像切换到rocker/shinyverse。您可以通过在 dockerfile 的RUN install2.r
部分添加它们来安装其他 R 包,并且可以通过在RUN installGithub.r
下添加存储库来安装 github 包。
此 Dockerfile 有两个主要要求
首先,文件必须公开您在 README 中列出的端口。默认值为 7860,我们建议不要更改此端口,除非您有充分的理由。
其次,目前您必须使用httpuv 的开发版本,这解决了 Hugging Face 上应用程序超时的问题。