Hub documentation
Shiny trên Spaces
Shiny trên Spaces
Shiny là một framework mã nguồn mở để xây dựng các ứng dụng dữ liệu đơn giản, đẹp mắt và hiệu suất cao. Mục tiêu khi phát triển Shiny là tạo ra một thứ đủ đơn giản để có thể dạy cho ai đó trong một buổi chiều nhưng cũng đủ mở rộng để vận hành các ứng dụng lớn, quan trọng sống còn. Bạn có thể tạo một ứng dụng Shiny hữu ích trong vài phút, nhưng nếu phạm vi dự án của bạn mở rộng, bạn có thể yên tâm rằng Shiny có thể đáp ứng được ứng dụng đó.
Đặc điểm chính giúp Shiny khác biệt so với các framework khác là mô hình thực thi phản ứng (reactive execution model). Khi bạn viết một ứng dụng Shiny, framework sẽ suy luận mối quan hệ giữa các đầu vào, đầu ra và các phép tính trung gian, sau đó sử dụng những mối quan hệ đó để chỉ hiển thị những phần cần thay đổi do hành động của người dùng. Kết quả là người dùng có thể dễ dàng phát triển các ứng dụng hiệu quả và có khả năng mở rộng mà không cần phải lưu trữ đệm (cache) dữ liệu một cách tường minh hay viết các hàm callback.
Shiny cho Python
Shiny for Python là một bản triển khai thuần Python của Shiny. Điều này cho phép bạn tiếp cận tất cả các tính năng tuyệt vời của Shiny như phản ứng, bố cục phức tạp và module mà không cần sử dụng R. Shiny for Python rất lý tưởng cho các ứng dụng Hugging Face vì nó tích hợp liền mạch với các công cụ Hugging Face khác.
Để bắt đầu triển khai một Space, hãy nhấp vào nút này để chọn phần cứng và chỉ định xem bạn muốn một Space công khai hay riêng tư. Mẫu Space sẽ tạo một vài tệp để khởi động ứng dụng của bạn.
app.py
Tệp này định nghĩa logic của ứng dụng của bạn. Để tìm hiểu thêm về cách chỉnh sửa tệp này, hãy xem tài liệu Shiny for Python. Khi ứng dụng của bạn trở nên phức tạp hơn, việc chia nhỏ logic ứng dụng thành các module là một ý tưởng hay.
Dockerfile
Dockerfile cho một ứng dụng Shiny for Python rất tối giản vì thư viện không có nhiều phụ thuộc hệ thống, nhưng bạn có thể cần sửa đổi tệp này nếu ứng dụng của bạn có thêm các phụ thuộc hệ thống khác. Đặc điểm thiết yếu duy nhất của tệp này là nó mở và chạy ứng dụng trên cổng được chỉ định trong tệp README của space (mặc định là 7860).
requirements.txt
Space sẽ tự động cài đặt các phụ thuộc được liệt kê trong tệp requirements.txt. Lưu ý rằng bạn phải bao gồm shiny trong tệp này.
Shiny cho R
Shiny for R là một framework ứng dụng phổ biến và đã được khẳng định trong cộng đồng R, và là lựa chọn tuyệt vời nếu bạn muốn triển khai ứng dụng R trên hạ tầng của Hugging Face hoặc tận dụng một số mở rộng Shiny R tuyệt vời. Để tích hợp các công cụ của Hugging Face vào ứng dụng R, bạn có thể sử dụng httr2 để gọi các API của Hugging Face, hoặc reticulate để gọi một trong các SDK Python của Hugging Face.
Để triển khai một R Shiny Space, hãy nhấp vào nút này và điền thông tin metadata của Space. Thao tác này sẽ nạp vào Space tất cả các tệp bạn cần để bắt đầu.
app.R Tệp này chứa toàn bộ logic ứng dụng của bạn. Nếu bạn muốn, bạn có thể tách tệp này thành ui.R và server.R.
Dockerfile
Dockerfile được xây dựng dựa trên image rocker shiny. Bạn sẽ cần sửa đổi tệp này để sử dụng các gói bổ sung.
Nếu bạn sử dụng nhiều gói tidyverse, chúng tôi khuyến nghị chuyển image cơ sở sang rocker/shinyverse.
Bạn có thể cài đặt các gói R bổ sung bằng cách thêm chúng vào phần RUN install2.r của dockerfile, và các gói github có thể được cài đặt bằng cách thêm kho lưu trữ vào RUN installGithub.r.
Dockerfile này có hai yêu cầu chính:
Đầu tiên, tệp phải mở cổng mà bạn đã liệt kê trong README. Mặc định là 7860 và chúng tôi khuyên bạn không nên thay đổi cổng này trừ khi có lý do chính đáng.
Thứ hai, hiện tại bạn phải sử dụng phiên bản phát triển của httpuv để giải quyết vấn đề về thời gian chờ ứng dụng trên Hugging Face.