Gradio: Eine Übersicht und Einführung in das Erstellen von Machine Learning Webanwendungen
Einleitung
Gradio ist eine Open-Source-Python-Bibliothek, die Entwicklern ermöglicht, interaktive und anpassbare Webschnittstellen für ihre Machine Learning (ML) Modelle schnell zu erstellen und bereitzustellen. Diese Bibliothek zielt darauf ab, die Lücke zwischen ML-Modellen und Endnutzern zu schließen, indem sie eine benutzerfreundliche Oberfläche für die Erstellung von Webanwendungen bereitstellt. Dadurch wird die Nutzung und Verbreitung von Machine Learning Anwendungen erleichtert.
Installation und Grundlegende Nutzung
Installation
Gradio erfordert Python 3.8 oder höher. Wir empfehlen die Installation von Gradio über pip, das standardmäßig in Python enthalten ist. Führen Sie das folgende Kommando in Ihrem Terminal oder Ihrer Eingabeaufforderung aus:
pip install gradio
Es ist am besten, Gradio in einer virtuellen Umgebung zu installieren, um Abhängigkeiten sauber zu halten.
Erstellen Ihrer Ersten Demo
Mit Gradio können Sie eine Demo oder Webanwendung für Ihr ML-Modell in nur wenigen Zeilen Python-Code erstellen. Hier ist ein einfaches Beispiel:
import gradio as gr
def greet(name, intensity):
return "Hallo " * intensity + name + "!"
demo = gr.Interface(
fn=greet,
inputs=["text", "slider"],
outputs=["text"],
)
demo.launch()
Dieser Code erstellt eine einfache Webschnittstelle, die einen Text und einen Schieberegler als Eingaben nimmt und einen Text als Ausgabe liefert. Wenn Sie den Code ausführen, wird die Demo in Ihrem Browser unter http://localhost:7860 angezeigt.
Verstehen der Interface-Klasse
Die
gr.Interface
-Klasse ist darauf ausgelegt, Demos für ML-Modelle zu erstellen, die eine oder mehrere Eingaben akzeptieren und eine oder mehrere Ausgaben liefern. Drei Hauptargumente sind erforderlich:
-
fn
: Die Funktion, die mit einer Benutzeroberfläche umwickelt werden soll.
-
inputs
: Die Gradio-Komponente(n) für die Eingabe.
-
outputs
: Die Gradio-Komponente(n) für die Ausgabe.
Die
inputs
und
outputs
können entweder als Zeichenkette (z. B. "textbox") oder als Instanz der Klasse (z. B.
gr.Textbox()
) übergeben werden.
Teilen Ihrer Demo
Um Ihre Demo zu teilen, setzen Sie einfach
share=True
im
launch()
-Befehl. Dadurch wird eine öffentlich zugängliche URL für Ihre Demo erstellt.
import gradio as gr
def greet(name):
return "Hallo " + name + "!"
demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
demo.launch(share=True)
Erweiterte Funktionen von Gradio
Erstellen von Chatbots mit gr.ChatInterface
Gradio bietet auch die
gr.ChatInterface
-Klasse, die speziell für die Erstellung von Chatbot-Benutzeroberflächen entwickelt wurde. Ein einfaches Beispiel:
import gradio as gr
def random_response(message, history):
return "Ja" if len(history) % 2 == 0 else "Nein"
gr.ChatInterface(random_response).launch()
Erstellen von benutzerdefinierten Demos mit gr.Blocks
Für komplexere Layouts und Datenflüsse bietet Gradio die
gr.Blocks
-Klasse. Mit
gr.Blocks
können Sie beispielsweise steuern, wo Komponenten auf der Seite erscheinen, komplexe Datenflüsse handhaben und Eigenschaften/Anzeigen von Komponenten basierend auf Benutzerinteraktionen aktualisieren.
Das Gradio-Ökosystem
Gradio ist mehr als nur eine Python-Bibliothek; es ist ein ganzes Ökosystem von Python- und JavaScript-Bibliotheken, die Ihnen ermöglichen, ML-Anwendungen zu erstellen oder sie programmatisch in Python oder JavaScript abzufragen. Hier sind einige verwandte Teile des Gradio-Ökosystems:
- Gradio Python Client (
gradio_client
): Programmatische Abfragen jeder Gradio-App in Python.
- Gradio JavaScript Client (
@gradio/client
): Programmatische Abfragen jeder Gradio-App in JavaScript.
- Gradio-Lite (
@gradio/lite
): Schreiben Sie Gradio-Apps in Python, die vollständig im Browser laufen (kein Server erforderlich), dank Pyodide.
- Hugging Face Spaces: Der beliebteste Ort, um Gradio-Anwendungen kostenlos zu hosten.
Fazit
Gradio bietet eine einfache und effektive Möglichkeit, interaktive Webanwendungen für Ihre Machine Learning Modelle zu erstellen. Mit nur wenigen Zeilen Code können Sie eine benutzerfreundliche Oberfläche erstellen und diese problemlos mit der Welt teilen. Egal, ob Sie einfache Demos oder komplexe Anwendungen erstellen möchten, Gradio bietet die Flexibilität und die Werkzeuge, die Sie benötigen.
Bibliographie
- https://gradio.app/
- https://github.com/gradio-app/gradio
- https://www.gradio.app/guides/creating-a-chatbot-fast
- https://www.gradio.app/docs/gradio/interface
- https://www.digitalocean.com/community/tutorials/how-to-build-machine-learning-web-application-using-gradio-on-ubuntu-22-04
- https://www.gradio.app/guides/gradio-lite
- https://www.gradio.app/docs