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-8e9316151c — Kontrolliertes Sicherheitsforschungslabor zur Reproduktion von CVE-2024-1540 (GitHub-Actions-Befehlsinjektion in gradio-app/gradio deploy+test-visual.yml) — abgeflachter Schnappschuss von gradio-app/gradio @ f35f615e33a5dd90bfeb106b6f5dca689849fcef | Kitploit
Tools/GitHubGitHub/pvharmo2/gha-lab-8e9316151c
SchwachstellenanalyseExploitationLernen & BildungKuratierte Ressourcen
GitHubpvharmo2/gha-lab-8e9316151c

gha-lab-8e9316151c

Kontrolliertes Sicherheitsforschungslabor zur Reproduktion von CVE-2024-1540 (GitHub-Actions-Befehlsinjektion in gradio-app/gradio deploy+test-visual.yml) — abgeflachter Schnappschuss von gradio-app/gradio @ f35f615e33a5dd90bfeb106b6f5dca689849fcef

Repository anzeigen
1vor 20h 58mNoch 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 Forschungsobjekt – 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 f35f615e33a5dd90bfeb106b6f5dca689849fcef (2024-02-09), weiterverbreitet 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 Secret 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-02-09 fixiert; siehe pinning.md in der Testumgebungs-Ausgabe für jede an der Momentaufnahme vorgenommene Änderung.

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 Sie schnell eine Demo oder Webanwendung für Ihr Machine-Learning-Modell, Ihre API oder eine beliebige Python-Funktion erstellen können. Anschließend können Sie mit den integrierten Freigabefunktionen von Gradio in nur wenigen Sekunden einen Link zu Ihrer 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ühren Sie dies in Ihrem Terminal oder Ihrer 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 finden Sie hier.

Ihre erste Demo erstellen

Sie können Gradio in Ihrem bevorzugten Code-Editor, Jupyter-Notebook, Google Colab oder überall dort ausführen, wo Sie Python schreiben. Schreiben wir Ihre 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 Sie folgen sollten, damit jeder, der mit Ihrem Code arbeitet, ihn leicht verstehen kann.

Führen Sie nun Ihren Code aus. Wenn Sie den Python-Code in einer Datei mit dem Namen z. B. app.py geschrieben haben, führen Sie python app.py im Terminal aus.

Die folgende Demo wird in einem Browser unter http://localhost:7860 geöffnet, wenn sie aus einer Datei ausgeführt wird. Wenn Sie in einem Notebook arbeiten, wird die Demo eingebettet im Notebook angezeigt.

hello_world_4 demo

Geben Sie Ihren Namen in das Textfeld links ein, ziehen Sie den Schieberegler und drücken Sie dann die Schaltfläche „Submit". Sie sollten rechts eine freundliche Begrüßung sehen.

[!TIP] Bei der lokalen Entwicklung können Sie Ihre Gradio-App im Hot-Reload-Modus ausführen, der die Gradio-App automatisch neu lädt, wenn Sie Änderungen an der Datei vornehmen. Geben Sie dazu einfach gradio vor dem Dateinamen ein, statt python. Im obigen Beispiel würden Sie in Ihrem Terminal gradio app.py eingeben. Erfahren Sie mehr über Hot Reloading im Hot-Reloading-Leitfaden.

Die Interface-Klasse verstehen

Sie werden feststellen, dass Sie für Ihre erste Demo eine Instanz der gr.Interface-Klasse erstellt haben. Die Interface-Klasse ist dafür konzipiert, Demos für Machine-Learning-Modelle zu erstellen, die einen 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 Ihrer Funktion entsprechen.
  • outputs: die Gradio-Komponente(n), die für die Ausgabe verwendet werden. Die Anzahl der Komponenten sollte der Anzahl der Rückgabewerte Ihrer Funktion entsprechen.

Das fn-Argument ist sehr flexibel – Sie können jede Python-Funktion übergeben, die Sie mit einer UI umhüllen möchten. Im obigen Beispiel haben wir eine relativ einfache Funktion gesehen, aber die Funktion könnte 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 können Sie den Namen dieser Komponenten als Zeichenfolge ("textbox") oder eine Instanz der Klasse (gr.Textbox()) übergeben.

Wenn Ihre Funktion mehr als ein Argument akzeptiert, wie im obigen Fall, übergeben Sie eine Liste von Eingabekomponenten an inputs, wobei jede Eingabekomponente einem der Argumente der Funktion in der Reihenfolge entspricht. Dasselbe gilt, wenn Ihre Funktion mehr als einen Wert zurückgibt: Übergeben Sie 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.

Ihre Demo teilen

Was nützt eine schöne Demo, wenn Sie sie nicht teilen können? Gradio ermöglicht es Ihnen, eine Machine-Learning-Demo einfach zu teilen, ohne sich um das Hosten auf einem Webserver kümmern zu müssen. Setzen Sie einfach share=True in launch(), und eine öffentlich zugängliche URL wird für Ihre 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 Sie diesen Code ausführen, wird in Sekundenschnelle eine öffentliche URL für Ihre Demo generiert, etwa so:

👉   https://a23dsf231adb.gradio.live

Jetzt kann jeder auf der Welt Ihre Gradio-Demo in seinem Browser ausprobieren, während das Machine-Learning-Modell und alle Berechnungen weiterhin lokal auf Ihrem Computer laufen.

Um mehr über das Teilen Ihrer Demo zu erfahren, lesen Sie unseren speziellen Leitfaden zum Teilen Ihrer Gradio-Anwendung.

Ein Überblick über Gradio

Bisher haben wir über die Interface-Klasse gesprochen, eine High-Level-Klasse, mit der Sie schnell Demos mit Gradio erstellen können. Aber was kann Gradio 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 stellen Sie eine Funktion bereit, und Gradio erstellt eine voll funktionsfähige Chatbot-UI. Wenn Sie daran interessiert sind, einen Chatbot zu erstellen, können Sie 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 können Sie 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.

Sie können mit gr.Blocks() sehr individuelle und komplexe Anwendungen erstellen. Beispielsweise 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-&-JavaScript-Ökosystem

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

  • Gradio Python Client (gradio_client): Fragen Sie jede Gradio-App programmatisch in Python ab.
  • Gradio JavaScript Client (@gradio/client): Fragen Sie jede Gradio-App programmatisch in JavaScript ab.
  • 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 zum Hosten von Gradio-Anwendungen – kostenlos!

Was kommt als Nächstes?

Lernen Sie Gradio weiterhin sequenziell mit den Gradio-Leitfäden kennen, die Erklärungen sowie Beispielcode und eingebettete interaktive Demos enthalten. Als Nächstes: Schlüsselfunktionen von Gradio-Demos.

Oder, wenn Sie die Grundlagen bereits kennen und nach etwas Bestimmtem suchen, können Sie in der technischeren API-Dokumentation suchen.

Fragen?

Wenn Sie einen Fehler melden oder eine Funktionsanfrage stellen möchten, erstellen Sie bitte ein Issue auf GitHub. Für allgemeine Fragen zur Nutzung sind wir auf unserem Discord-Server erreichbar und helfen gerne weiter.

Wenn Ihnen Gradio gefällt, hinterlassen Sie 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

Schauen Sie sich auch das Paper Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild, ICML HILL 2019 an, und zitieren Sie es bitte, wenn Sie Gradio in Ihrer Arbeit verwenden.

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