>當今AI模型的有用性大大降低了,而無需訪問用戶界面。使用開源Python Web UI庫Gradio,您可以在LLMS和非技術最終用戶之間彌合這一差距。它使您可以為您的AI項目創建快速的原型,並簡化其部署到更廣泛的受眾。
>本教程針對的是機器學習工程師,他們通常沒有任何網絡開發經驗。它涵蓋了Gradio基礎知識和核心概念,各種AI模型類型的接口創建,UX和交互性的高級功能以及部署和共享最佳實踐。讓我們開始。
開始使用Gradio
>>我們還安裝了iPykernel軟件包,以便可以在Jupyter筆記本中直接顯示Gradio接口。此過程要求您將創建的虛擬環境添加到Jupyter實驗室中。這是這樣做的命令:
$ conda create -n gradio_tutorial python=3.9 -y $ conda activate gradio_tutorial
>這應該允許您使用已安裝Gradio的內核創建筆記本。要驗證,以標準別名導入並打印其版本:
$ pip install gradio ipykernel
基本概念和術語
$ ipython kernel install --user --name=gradio_tutorial $ jupyter lab # Start the lab
:
import gradio as gr print(gr.__version__) 4.37.1
def greet(name): return f"Hello, {name}!" demo = gr.Interface( fn=greet, inputs=['text'], outputs="text", ) demo.launch()
接口
>輸入組件允許用戶向基礎處理器提供數據(這可以是任何Python函數)。一些常見的輸入是:
textbox
$ conda create -n gradio_tutorial python=3.9 -y $ conda activate gradio_tutorial
>注意我們如何使用文本框類來指定輸入組件,而不是像第一個示例那樣的普通字符串文本。始終建議使用專用類指定輸入和輸出組件以使其可自定義。例如,所有組件類都有一個有用的標籤屬性,而滑塊和下拉列表都有指定範圍和可用選項的參數。
>
>許多輸入組件也可用於顯示輸出。以下是一些常見的情況:
標籤:用於顯示文本或分類結果
圖像:用於顯示已處理或生成的圖像
Gradio允許您自定義組件的外觀以適應您的需求。這是一個使用自定義文本框的示例:
>
$ pip install gradio ipykernel
>實驗不同的組件及其屬性,以創建最適合您AI應用程序要求的接口。要了解可以更改組件的哪種屬性,您可以訪問其文檔,或者更好的是使用? jupyter實驗室的班級名稱之後:
> llms
的構建界面>讓我們通過創建由LLMS供電的兩個現實世界文本和基於圖像的界面來將所有學到的一切放在一起。 首先,我們將構建從英語到土耳其語,西班牙語或中文的語言翻譯:
我們創建一個名為generate_surrealist_art的函數,該函數將請求發送到dall-e-3,並使用超現實主義提示返回生成的圖像URL。然後,我們將再次將此函數饋送到接口類中: >我們為API密鑰指定了兩個輸入,以及要在超現實主義圖像中捕獲的概念。然後,我們使用圖像類創建一個生成圖像的輸出組件。如果將其值參數設置為str,則組件可以從URL下載和顯示圖像,這正是我們需要的。
>構建經典ML模型的界面
>該函數將這些輸入轉換為數據框,並將其傳遞到訓練有素的模型管道的.predict()方法。最後,它返回一個帶有預測價格的字符串。 現在,接口類必須匹配此函數的簽名:用於處理功能的九個輸入組件和一個用於顯示預測價格的輸出: 在班級內,我們為分類功能創建了三個下拉列表。每個功能中的唯一類別都填充了這些選項。我們還創建了六個滑塊組件以接受數字功能。滑塊的範圍取決於每個特徵的最小值和最大值。
令牌僅顯示一次,因此請確保將其存儲在安全的地方。
>
>終端使您通過將腳本轉換為功能正常的擁抱面空間。它要求諸如:
包含gradio ui代碼(app.py默認值)的腳本的名稱 >
>有關更多部署和共享選項,例如將演示嵌入網頁中,將Google Authentication添加到應用程序等,請訪問Gradio文檔的“共享您的應用程序”部分。
>
>
>利用“信息”和“標籤”屬性為每個組件提供清晰的說明和上下文。 對於具有多個功能的模型,請使用文件輸入(CSV,JSON)啟用批處理預測並簡化接口。 >使用python-dotenv進行本地開發,並將變量設置在擁抱面部空間以進行部署。
9。實施漸進披露
上託管大型型號
對於大型數據集,上傳到HuggingFace Hub,然後直接在您的Gradio應用程序中訪問它們以簡化數據管理並改善加載時間。
同樣,請查看這些相關資源以獲取更多內容:
$ conda create -n gradio_tutorial python=3.9 -y
$ conda activate gradio_tutorial
$ pip install gradio ipykernel
>您可能想知道為什麼我們要詢問用戶的API密鑰作為應用程序的一部分,而不是自己提供。原因與Gradio如何部署UI有關。
$ ipython kernel install --user --name=gradio_tutorial
$ jupyter lab # Start the lab
import gradio as gr
print(gr.__version__)
4.37.1
現在,讓我們為經典表格回歸模型構建一個接口。我們將使用鑽石數據集,該數據集可在Seaborn中使用。
$ conda create -n gradio_tutorial python=3.9 -y
$ conda activate gradio_tutorial
$ pip install gradio ipykernel
$ ipython kernel install --user --name=gradio_tutorial
$ jupyter lab # Start the lab
>有關最佳實踐和優化提示,請跳至下面的最佳實踐部分。
>
您所要做的就是使用UI腳本導航到目錄,並在終端上調用Gradio部署:
>空間標題:這將是部署後空間URL的一部分
>空間的硬件;空白以使用CPU(免費)
1。將腳本用於組織和可維護性>
2。優化組件的空間分配3。提供全面的信息
4。有效地處理大型功能集
5。正確管理環境變量
>驗證輸入,提供明確的錯誤消息,並使用Try-Except塊進行正式錯誤處理。
>實現緩存,大型型號的懶惰加載,並使用Gr.LoadingStatus()進行長期運行的任務。 確保高對比度,為圖像提供ALT文本,並為所有交互式元素啟用鍵盤導航。
>使用手風琴或選項卡來組織複雜的接口,根據需要揭示高級選項。
10。定期更新並維護
11。利用擁抱面資源
12。在擁抱面樞紐
13。利用擁抱面數據集
結論和進一步的資源
在本文中,我們了解了使用Gradio為AI應用程序構建用戶界面的基礎知識。我們剛剛在表面下方傾斜,因為Gradio為構建複雜界面提供了更多功能。例如,接口狀態允許您的應用程序記住從一個函數調用到另一個函數的輸出。用戶輸入更改後,反應性接口會動態更改UI。使用塊,您可以構建具有自定義佈局和設計的應用程序。
以上是在Python中使用Gradio的AI應用程序構建用戶界面的詳細內容。更多資訊請關注PHP中文網其他相關文章!