pip install gradio
import gradio as gr # 1. 定义业务 def greet(name): return "Hello " + name + "!!" # 2. 定义接口 iface = gr.Interface(fn=greet, inputs="text", outputs="text") iface = gr.Interface( fn=greet, inputs=gr.inputs.Textbox(lines=2, placeholder="Name Here..."), outputs="text") iface = gr.Interface( fn=greet, inputs=["text", "checkbox", gr.inputs.Slider(0, 100)], outputs=["text", "number"]) # 3. 启动 iface.launch() iface.launch(share=True)
import gradio as gr def recognize_digit(img): # img:np.array -> dict[label:str, confidence:float] # ... implement digit recognition model on input array # ... return dictionary of labels and confidences gr.Interface(fn=recognize_digit, inputs="sketchpad", outputs="label").launch()
import gradio as gr def answer_question(paragraph, question): # ... implement Q&A model # ... return answer to question # str,str -> str gr.Interface(fn=answer_question, inputs=["textbox", "text"], outputs="text").launch()
图片
import gradio as gr import numpy as np def sepia(input_img): sepia_filter = np.array([[.393, .769, .189], [.349, .686, .168], [.272, .534, .131]]) sepia_img = input_img.dot(sepia_filter.T) sepia_img /= sepia_img.max() return sepia_img iface = gr.Interface(sepia, gr.inputs.Image(shape=(200, 200)), "image") iface.launch()
例子
import gradio as gr def calculator(num1, operation, num2): if operation == "add": return num1 + num2 elif operation == "subtract": return num1 - num2 elif operation == "multiply": return num1 * num2 elif operation == "divide": return num1 / num2 iface = gr.Interface(calculator, ["number", gr.inputs.Radio(["add", "subtract", "multiply", "divide"]), "number"], "number", examples=[ [5, "add", 3], [4, "divide", 2], [-4, "multiply", 2.5], [0, "subtract", 1.2], ], title="test calculator", description="heres a sample toy calculator. enjoy!", flagging_options=["this", "or", "that"], ) iface.launch()
实时
import gradio as gr def calculator(num1, operation, num2): if operation == "add": return num1 + num2 elif operation == "subtract": return num1 - num2 elif operation == "multiply": return num1 * num2 elif operation == "divide": return num1 / num2 iface = gr.Interface(calculator, ["number", gr.inputs.Radio(["add", "subtract", "multiply", "divide"]), "number"], "number", live=True ) iface.launch()