Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
gha-lab-ee08e207a8 — Autorisiertes Sicherheitsforschungslabor zur Reproduktion von CVE-2024-4253 (GHSA-r897-wrpm-h4vw): Command Injection in workflow_run in gradio-app/gradio's test-functional.yml | Kitploit
Tools/GitHubGitHub/pvharmo2/gha-lab-ee08e207a8
SchwachstellenanalyseExploitationLernen & BildungLabs & Praxis
GitHubpvharmo2/gha-lab-ee08e207a8

gha-lab-ee08e207a8

Autorisiertes Sicherheitsforschungslabor zur Reproduktion von CVE-2024-4253 (GHSA-r897-wrpm-h4vw): Command Injection in workflow_run in gradio-app/gradio's test-functional.yml

Repository anzeigen
1vor 5h 40mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Automatisiertes Forschungsartefakt — nicht das Upstream-Projekt.

Dieses Repository ist ein Wegwerf-Labor, das von einer automatisierten Testumgebung für eine Masterarbeit an der Université Laval zur Reproduktion veröffentlichter GitHub-Actions-Workflow-Schwachstellen erstellt wurde. Es ist eine wörtliche Momentaufnahme von gradio-app/gradio beim Commit a81e36967c0973012e90ec7cf03b99cf3fea88ec (2024-04-30), weitergegeben unter der eigenen Lizenz dieses Projekts, deren Datei unverändert in dieser Momentaufnahme enthalten ist.

Das Upstream-Projekt ist nicht beteiligt, wird niemals angegriffen, und die hier untersuchte Schwachstelle ist bereits öffentlich bekannt. Jedes Geheimnis und jede Variable in diesem Repository ist ein zufällig generierter Dummy-Wert — es sind keine echten Anmeldedaten vorhanden. Aktionsreferenzen und Runner-Images sind auf den Stand vom 2024-04-30 fixiert; siehe pinning.md in der Testumgebungs-Ausgabe für jede Änderung, die an der Momentaufnahme vorgenommen wurde.

Fragen oder Einwände: [email protected]


gradio

gradio-backend

gradio-ui

PyPI
PyPI downloads
Python version
Twitter follow

Website | Documentation | Guides | Getting Started | Examples | 中文

Gradio: Machine-Learning-Web-Apps erstellen — in Python

Gradio ist ein Open-Source-Python-Paket, mit dem du schnell eine Demo oder Webanwendung für dein Machine-Learning-Modell, deine API oder eine beliebige Python-Funktion erstellen kannst. Du kannst dann mit den integrierten Freigabefunktionen von Gradio in nur wenigen Sekunden einen Link zu deiner Demo oder Webanwendung teilen. Keine JavaScript-, CSS- oder Webhosting-Kenntnisse erforderlich!

Es braucht nur ein paar Zeilen Python, um eine schöne Demo wie die obige zu erstellen. Also legen wir los 💫

Installation

Voraussetzung: Gradio erfordert Python 3.8 oder höher

Wir empfehlen, Gradio mit pip zu installieren, das standardmäßig in Python enthalten ist. Führe dies in deinem Terminal oder deiner Eingabeaufforderung aus:

root@kitploit:~
pip install gradio

[!TIP] Es ist am besten, Gradio in einer virtuellen Umgebung zu installieren. Detaillierte Installationsanweisungen für alle gängigen Betriebssysteme findest du hier.

Deine erste Demo erstellen

Du kannst Gradio in deinem bevorzugten Code-Editor, Jupyter-Notebook, Google Colab oder überall dort ausführen, wo du Python schreibst. Schreiben wir deine erste Gradio-App:

root@kitploit:~
import gradio as gr

def greet(name, intensity):
    return "Hello " * intensity + name + "!"

demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
)

demo.launch()

[!TIP] Wir kürzen den importierten Namen von gradio zu gr, um die Lesbarkeit des Codes zu verbessern. Dies ist eine weit verbreitete Konvention, der du folgen solltest, damit jeder, der mit deinem Code arbeitet, ihn leicht verstehen kann.

Führe nun deinen Code aus. Wenn du den Python-Code in einer Datei mit dem Namen z. B. app.py geschrieben hast, führst du python app.py im Terminal aus.

Die folgende Demo öffnet sich in einem Browser auf http://localhost:7860, wenn sie aus einer Datei ausgeführt wird. Wenn du in einem Notebook arbeitest, wird die Demo eingebettet im Notebook angezeigt.

hello_world_4 demo

Gib deinen Namen in das Textfeld auf der linken Seite ein, ziehe den Schieberegler und drücke dann die Schaltfläche „Submit". Du solltest rechts eine freundliche Begrüßung sehen.

[!TIP] Bei der lokalen Entwicklung kannst du deine Gradio-App im Hot-Reload-Modus ausführen, der die Gradio-App automatisch neu lädt, sobald du Änderungen an der Datei vornimmst. Gib dazu einfach gradio vor dem Dateinamen ein, statt python. Im obigen Beispiel würdest du in deinem Terminal gradio app.py eingeben. Erfahre mehr über Hot Reloading im Hot-Reloading-Leitfaden.

Die Interface-Klasse verstehen

Du wirst feststellen, dass du zum Erstellen deiner ersten Demo eine Instanz der gr.Interface-Klasse erstellt hast. Die Interface-Klasse ist dafür konzipiert, Demos für Machine-Learning-Modelle zu erstellen, die eine oder mehrere Eingaben akzeptieren und eine oder mehrere Ausgaben zurückgeben.

Die Interface-Klasse hat drei Kernargumente:

  • fn: die Funktion, um die eine Benutzeroberfläche (UI) herum erstellt werden soll
  • inputs: die Gradio-Komponente(n), die für die Eingabe verwendet werden. Die Anzahl der Komponenten sollte der Anzahl der Argumente in deiner Funktion entsprechen.
  • outputs: die Gradio-Komponente(n), die für die Ausgabe verwendet werden. Die Anzahl der Komponenten sollte der Anzahl der Rückgabewerte deiner Funktion entsprechen.

Das fn-Argument ist sehr flexibel — du kannst jede Python-Funktion übergeben, die du mit einer UI umhüllen möchtest. Im obigen Beispiel haben wir eine relativ einfache Funktion gesehen, aber die Funktion kann alles sein, von einem Musikgenerator über einen Steuerrechner bis hin zur Vorhersagefunktion eines vortrainierten Machine-Learning-Modells.

Die Argumente input und output akzeptieren eine oder mehrere Gradio-Komponenten. Wie wir sehen werden, enthält Gradio mehr als 30 integrierte Komponenten (wie die Komponenten gr.Textbox(), gr.Image() und gr.HTML()), die für Machine-Learning-Anwendungen entwickelt wurden.

[!TIP] Für die Argumente inputs und outputs kannst du den Namen dieser Komponenten als Zeichenfolge ("textbox") oder eine Instanz der Klasse (gr.Textbox()) übergeben.

Wenn deine Funktion mehr als ein Argument akzeptiert, wie im obigen Fall, übergib eine Liste von Eingabekomponenten an inputs, wobei jede Eingabekomponente einem der Argumente der Funktion in der richtigen Reihenfolge entspricht. Dasselbe gilt, wenn deine Funktion mehr als einen Wert zurückgibt: Übergib einfach eine Liste von Komponenten an outputs. Diese Flexibilität macht die Interface-Klasse zu einer sehr leistungsfähigen Möglichkeit, Demos zu erstellen.

Wir werden uns in unserer Serie über das Erstellen von Interfaces eingehender mit gr.Interface befassen.

Deine Demo teilen

Was nützt eine schöne Demo, wenn du sie nicht teilen kannst? Mit Gradio kannst du eine Machine-Learning-Demo ganz einfach teilen, ohne dich um das Hosten auf einem Webserver kümmern zu müssen. Setze einfach share=True in launch(), und es wird eine öffentlich zugängliche URL für deine Demo erstellt. Schauen wir uns unsere Beispieldemo noch einmal an, ändern aber die letzte Zeile wie folgt:

root@kitploit:~
import gradio as gr

def greet(name):
    return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
    
demo.launch(share=True)  # Share your demo with just 1 extra parameter 🚀

Wenn du diesen Code ausführst, wird in Sekundenschnelle eine öffentliche URL für deine Demo generiert, etwa so:

👉   https://a23dsf231adb.gradio.live

Jetzt kann jeder auf der Welt deine Gradio-Demo in seinem Browser ausprobieren, während das Machine-Learning-Modell und die gesamte Berechnung weiterhin lokal auf deinem Computer laufen.

Um mehr über das Teilen deiner Demo zu erfahren, lies unseren speziellen Leitfaden zum Teilen deiner Gradio-Anwendung.

Ein Überblick über Gradio

Bisher haben wir über die Interface-Klasse gesprochen, eine High-Level-Klasse, mit der du schnell Demos mit Gradio erstellen kannst. Aber was kann Gradio sonst noch?

Chatbots mit gr.ChatInterface

Gradio enthält eine weitere High-Level-Klasse, gr.ChatInterface, die speziell für die Erstellung von Chatbot-Benutzeroberflächen entwickelt wurde. Ähnlich wie bei Interface stellst du eine Funktion bereit, und Gradio erstellt eine voll funktionsfähige Chatbot-Benutzeroberfläche. Wenn du daran interessiert bist, einen Chatbot zu erstellen, kannst du direkt zu unserem speziellen Leitfaden zu gr.ChatInterface springen.

Benutzerdefinierte Demos mit gr.Blocks

Gradio bietet auch einen Low-Level-Ansatz zum Entwerfen von Web-Apps mit flexibleren Layouts und Datenflüssen mit der gr.Blocks-Klasse. Mit Blocks kannst du z. B. steuern, wo Komponenten auf der Seite erscheinen, komplexe Datenflüsse verarbeiten (z. B. können Ausgaben als Eingaben für andere Funktionen dienen) und Eigenschaften/Sichtbarkeit von Komponenten basierend auf Benutzerinteraktionen aktualisieren — alles weiterhin in Python.

Du kannst mit gr.Blocks() sehr individuelle und komplexe Anwendungen erstellen. Zum Beispiel ist die beliebte Bildgenerierungs- Automatic1111 Web UI mit Gradio Blocks erstellt. Wir gehen in unserer Serie über das Erstellen mit Blocks tiefer auf gr.Blocks ein.

Das Gradio-Python- und JavaScript-Ökosystem

Das ist das Wesentliche der Kern-gradio-Python-Bibliothek, aber Gradio ist eigentlich so viel mehr! Es ist ein ganzes Ökosystem aus Python- und JavaScript-Bibliotheken, mit denen du Machine-Learning-Anwendungen erstellen oder sie programmatisch in Python oder JavaScript abfragen kannst. Hier sind weitere verwandte Teile des Gradio-Ökosystems:

  • Gradio Python Client (gradio_client): Frage jede Gradio-App programmatisch in Python ab.
  • Gradio JavaScript Client (@gradio/client): Frage jede Gradio-App programmatisch in JavaScript ab.
  • Gradio-Lite (@gradio/lite): Schreibe Gradio-Apps in Python, die vollständig im Browser laufen (kein Server nötig!), dank Pyodide.
  • Hugging Face Spaces: Der beliebteste Ort zum Hosten von Gradio-Anwendungen — kostenlos!

Was kommt als Nächstes?

Lerne weiterhin sequenziell über Gradio mit den Gradio-Leitfäden, die Erklärungen sowie Beispielcode und eingebettete interaktive Demos enthalten. Als Nächstes: Wichtige Funktionen von Gradio-Demos.

Oder, wenn du die Grundlagen bereits kennst und nach etwas Bestimmtem suchst, kannst du in der technischeren API-Dokumentation suchen.

Fragen?

Wenn du einen Fehler melden oder eine Funktion anfragen möchtest, erstelle bitte ein Issue auf GitHub. Für allgemeine Fragen zur Verwendung sind wir auf unserem Discord-Server erreichbar und helfen gerne weiter.

Wenn dir Gradio gefällt, hinterlasse uns bitte einen ⭐ auf GitHub!

Open-Source-Stack

Gradio basiert auf vielen wunderbaren Open-Source-Bibliotheken!

huggingface python fastapi encode svelte vite pnpm tailwind storybook chromatic

Lizenz

Gradio ist unter der Apache-Lizenz 2.0 lizenziert, die in der Datei LICENSE im Stammverzeichnis dieses Repositorys zu finden ist.

Zitierung

Schau dir auch das Paper Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild, ICML HILL 2019 an und zitiere es bitte, wenn du Gradio in deiner Arbeit verwendest.

root@kitploit:~
@article{abid2019gradio,
  title = {Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild},
  author = {Abid, Abubakar and Abdalla, Ali and Abid, Ali and Khan, Dawood and Alfozan, Abdulrahman and Zou, James},
  journal = {arXiv preprint arXiv:1906.02569},
  year = {2019},
}
Tool herunterladen