最近 Sealos Devbox 有點火 🔥,越來越多的小夥伴都開始使用 Sealos Devbox,有位小夥伴寫的文章閱讀量已經接近了兩萬!
評論區有個小夥伴問我能不能出一篇部署 Gradio 和 Streamlit 的文章,瞬間我就來勁了,趕緊去搜一下這兩個東西是啥,你還別說,確實挺有意思的。必須得寫個教程了!
什麼是 Gradio 和 Streamlit 呢?
Gradio 和 Streamlit 是兩個用於快速構建機器學習 (ML) 應用和互動式 Web 應用的開源 Python 庫,特別適合需要快速搭建演示和原型的專案。
Gradio
Gradio 提供了一種簡潔的方法來構建 Web 應用,允許使用者與機器學習模型進行互動。開發者可以透過 Gradio 快速將模型部署為 Web 介面,使用者無需具備程式設計經驗即可使用這些模型。知名的 AI 繪畫應用 Stable Diffusion WebUI 就是使用 Gradio 來構建的。
適用場景:
- 為 ML 模型構建互動介面,測試和調優模型。
- 快速構建概念驗證 (PoC) 或用於產品展示的原型。
- 用於教學、分享和演示 ML 模型。
Streamlit
Streamlit 是另一個廣泛用於構建資料視覺化、儀表盤和 ML 應用的框架,設計簡潔,幫助開發者快速從資料指令碼轉化為互動式 Web 應用。Streamlit 的獨特之處在於其近乎程式碼原生的語法,適合 Python 開發者直接在程式碼中描述應用佈局。
適用場景:
- 構建資料分析和視覺化工具,用於探索資料。
- 為 ML 應用構建儀表盤,實時監控和調整模型引數。
- 快速構建可演示的機器學習應用或產品原型。
為什麼選擇 Devbox
雖然 Gradio 和 Streamlit 十分強大,但是將他們部署上線卻不是一件容易的事情,你需要在本地搭建 Python 虛擬環境,然後完成打包映象、自動分配域名、HTTPS 證書等一系列步驟,然後才能上線,如此複雜的流程,直接勸退大多數小白。
而 Devbox 可以將這些繁瑣的流程變的如此簡單,直接無腦操作。
實戰部署指南
1. 建立Devbox專案
首先開啟瀏覽器,進入 Sealos 桌面,找到並點選"Devbox",然後點選"新建專案"按鈕,填寫專案名稱,執行環境選擇 Python,選擇合適的 Python 版本 填寫專案基本資訊:
- 專案名稱
- 選擇 Python 作為執行環境
- 選擇合適的 Python 版本
- 配置資源規格
由於 Gradio 專案預設是 7860 埠,所以我們需要將埠改成 7860。
完成所有選擇以後,點選右上角的 “建立”。
現在就有了一個 Debox 專案了,點選下圖中的 “Cursor”,就會使用 Cursor 開啟連線 Devbox 開發環境。
首次開啟會提示安裝 Devbox 外掛,安裝後即可自動連線開發環境。
現在可以在 Cursor 左側看到 Devbox 預設建立的專案資訊。是不是非常簡單?直接省略了配置域名解析、申請 SSL 證書,配置閘道器等與開發無關的繁瑣操作,爽!
點選上方的終端,選擇 “新建終端”。
輸入以下命令:
# 開啟 python 虛擬環境
source ./bin/activate
# 安裝 gradio
pip install --upgrade gradio
執行過程如下所示:
2. 編寫示例程式碼
等待 Gradio 安裝完畢以後,將 Gradio 的 demo 程式碼複製到 hello.py 中,程式碼如下所示:
import gradio as gr
def greet(name, intensity):
return "Hello, " + name + "!" * int(intensity)
demo = gr.Interface(
fn=greet,
inputs=["text", "slider"],
outputs=["text"],
)
demo.launch(server_name="0.0.0.0")
然後修改啟動指令碼 entrypoint.sh,新增虛擬環境啟用命令:
# 開啟 python 虛擬環境
source ./bin/activate
3. 直接啟動
現在我們直接透過 entrypoint.sh
指令碼啟動 Gradio:
現在回到 Devbox 介面,進入 Gradio 開發環境的詳情頁面:
點選外網地址即可開啟 Gradio 的 Web 介面。
這是個公網域名,而且自動配置了 HTTPS 證書,你的同事、朋友、領導可以在任何地方實時預覽你的最新開發成果,太爽了!
你在 Cursor 裡面剛改完程式碼,你的領導就可以立馬看到效果了,你就說快不快?😁
4. 部署到生產環境
上面的啟動方法雖妙,但一般只用作開發演示。
如果是生產環境,建議還是釋出之後再部署更好,可以自動享受到 Sealos 雲平臺的各種高階特性,比如:自愈功能、彈性伸縮等等。
釋出版本很簡單,在專案詳情頁面直接點選 “釋出版本”:
輸入版本配置資訊,選擇 “發版”。
等待 10s 左右,看見發版 “成功” 狀態以後,點選 “上線”。勝利就在前方!
進入 “上線” 介面,修改 “網路配置” 中的埠為 7860,點選右上角 “部署應用”:
部署完成後,等待應用狀態變成 running,然後點選公網地址,即可開啟 Gradio 專案的 Demo 介面。
現在,我們就已經大功告成啦!如此絲滑~
到此,Gradio 專案的部署就完成了。
相比於之前在開發環境中直接啟動的方式,這種部署方式有以下優點:
-
你可以根據自己的業務情況隨便擴縮容。擴到 10 個例項問題也不大。
-
擁有自愈功能。即使服務程序遇到了某些意外狀況退出了,也會自動再啟動一個新的例項。
-
可以隨意調整資源配置,拉到 8C16G 也沒問題。
由此可見,生產環境更適合發版之後到“應用管理”中部署。
而 Streamlit 的部署與 Gradio 的部署一毛一樣,將以上的安裝命令和 Demo 程式碼替換成 Streamlit 的即可。
結語
Devbox 透過極簡的視覺化介面,將複雜的開發部署流程精簡,使開發者能更直觀、高效地完成專案的構建和釋出。它將部署中的繁瑣細節模組化、自動化,降低了門檻。
透過統一的介面,Devbox 提供了配置管理、程式碼部署、版本控制和資源監控等功能,這些特性讓我們能夠專注於應用開發,而不是陷入繁瑣的部署細節中。
都 AI 時代了,快速上線才是最重要的,那些繁瑣的部署和配置細節老子不想關心!