並獲得增強型文件體驗
開始使用
構建你的第一個演示
讓我們首先安裝 Gradio!由於它是一個 Python 包,只需執行
$ pip install gradio
你可以在任何地方執行 Gradio,無論是從你最喜歡的 Python IDE,到 Jupyter Notebook,甚至在 Google Colab 🤯 中!因此,在任何你執行 Python 的地方安裝 Gradio!
讓我們從一個簡單的“Hello World”示例開始,以熟悉 Gradio 語法
import gradio as gr
def greet(name):
return "Hello " + name
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()讓我們逐步瞭解上面的程式碼
- 首先,我們定義一個名為
greet()的函式。在本例中,它是一個簡單的函式,在你的名字前新增“Hello”,但它通常可以是任何 Python 函式。例如,在機器學習應用中,此函式將呼叫模型對輸入進行預測並返回輸出。 - 然後,我們使用三個引數
fn、inputs和outputs建立一個 GradioInterface。這些引數定義了預測函式,以及我們所需的輸入和輸出元件的型別。在本例中,這兩個元件都是簡單的文字框。 - 然後,我們對建立的
Interface呼叫launch()方法。
如果你執行此程式碼,以下介面將自動出現在 Jupyter/Colab Notebook 中,或者在從指令碼執行時在瀏覽器中彈出 https://:7860。
現在就嘗試使用你的姓名或其他輸入來使用此 GUI!
你會注意到,在此 GUI 中,Gradio 自動推斷輸入引數 (name) 的名稱,並將其作為標籤應用在文字框上方。如果你想更改它怎麼辦?或者如果你想以其他方式自定義文字框?在這種情況下,你可以例項化一個表示輸入元件的類物件。
看看下面的例子
import gradio as gr
def greet(name):
return "Hello " + name
# We instantiate the Textbox class
textbox = gr.Textbox(label="Type your name here:", placeholder="John Doe", lines=2)
gr.Interface(fn=greet, inputs=textbox, outputs="text").launch()在這裡,我們建立了一個帶標籤、佔位符和指定行數的輸入文字框。你可以對輸出文字框執行相同的操作,但我們現在先不這樣做。
我們已經看到,只需幾行程式碼,Gradio 就可以讓你圍繞任何具有任何型別輸入或輸出的函式建立簡單的介面。在本節中,我們從簡單的文字框開始,但在接下來的幾節中,我們將介紹其他型別的輸入和輸出。現在讓我們看看如何在 Gradio 應用中包含一些 NLP。
🤖 包含模型預測
現在讓我們構建一個簡單的介面,允許你演示文字生成模型,例如 GPT-2。
我們將使用 🤗 Transformers 中的 pipeline() 函式載入我們的模型。如果你需要快速複習,你可以回到第 1 章的該部分。
首先,我們定義一個預測函式,它接收文字提示並返回文字完成結果
from transformers import pipeline
model = pipeline("text-generation")
def predict(prompt):
completion = model(prompt)[0]["generated_text"]
return completion此函式完成你提供的提示,你可以使用你自己的輸入提示執行它以檢視其工作原理。這是一個示例(你可能會得到不同的完成結果)
predict("My favorite programming language is")>> My favorite programming language is Haskell. I really enjoyed the Haskell language, but it doesn't have all the features that can be applied to any other language. For example, all it does is compile to a byte array.現在我們有了生成預測的函式,我們可以像之前一樣建立和啟動 Interface
import gradio as gr
gr.Interface(fn=predict, inputs="text", outputs="text").launch()就是這樣!你現在可以使用此介面使用 GPT-2 模型生成文字,如下所示 🤯。
繼續閱讀以瞭解如何使用 Gradio 構建其他型別的演示!