Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gha-lab-8e9316151c — Laboratoire de recherche en sécurité contrôlé reproduisant la CVE-2024-1540 (injection de commande GitHub Actions dans gradio-app/gradio deploy+test-visual.yml) — instantané aplati de gradio-app/gradio @ f35f615e33a5dd90bfeb106b6f5dca689849fcef | Kitploit
Outils/GitHubGitHub/pvharmo2/gha-lab-8e9316151c
Analyse des VulnérabilitésExploitationApprentissage et ÉducationRessources Organisées
GitHubpvharmo2/gha-lab-8e9316151c

gha-lab-8e9316151c

Laboratoire de recherche en sécurité contrôlé reproduisant la CVE-2024-1540 (injection de commande GitHub Actions dans gradio-app/gradio deploy+test-visual.yml) — instantané aplati de gradio-app/gradio @ f35f615e33a5dd90bfeb106b6f5dca689849fcef

Voir le dépôt
1il y a 20h 58mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Artéfact de recherche automatisé — pas le projet en amont.

Ce dépôt est un laboratoire jetable construit par un harnais automatisé pour un mémoire de maîtrise à l'Université Laval sur la reproduction de vulnérabilités publiées dans les workflows GitHub Actions. Il s'agit d'un instantané verbatim de gradio-app/gradio au commit f35f615e33a5dd90bfeb106b6f5dca689849fcef (2024-02-09), redistribué sous la licence de ce projet, dont le fichier est inclus inchangé dans cet instantané.

Le projet en amont n'est pas impliqué, n'est jamais ciblé, et la vulnérabilité étudiée ici est déjà publique. Chaque secret et variable dans ce dépôt est une valeur factice générée aléatoirement — aucun identifiant réel n'est présent. Les références d'actions et les images d'exécuteur sont épinglées à ce qu'elles résolvaient le 2024-02-09 ; voir pinning.md dans la sortie du harnais pour chaque modification apportée à l'instantané.

Questions ou objections : [email protected]


gradio

gradio-backend gradio-ui


PyPI
PyPI downloads
Python version
Twitter follow

Site web | Documentation | Guides | Pour commencer | Exemples | 中文

Gradio : Créez des applications web de machine learning — en Python

Gradio est un package Python open source qui vous permet de créer rapidement une démo ou une application web pour votre modèle de machine learning, votre API, ou toute fonction Python arbitraire. Vous pouvez ensuite partager un lien vers votre démo ou application web en quelques secondes grâce aux fonctionnalités de partage intégrées de Gradio. Aucune expérience en JavaScript, CSS ou hébergement web requise !

Il suffit de quelques lignes de Python pour créer une belle démo comme celle ci-dessus, alors commençons 💫

Installation

Prérequis : Gradio nécessite Python 3.8 ou supérieur

Nous recommandons d'installer Gradio avec pip, qui est inclus par défaut dans Python. Exécutez ceci dans votre terminal ou invite de commande :

root@kitploit:~
pip install gradio

[!TIP] Il est préférable d'installer Gradio dans un environnement virtuel. Des instructions d'installation détaillées pour tous les systèmes d'exploitation courants sont fournies ici.

Créer votre première démo

Vous pouvez exécuter Gradio dans votre éditeur de code préféré, un notebook Jupyter, Google Colab, ou partout ailleurs où vous écrivez du Python. Écrivons votre première application Gradio :

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] Nous raccourcissons le nom importé de gradio à gr pour une meilleure lisibilité du code. C'est une convention largement adoptée que vous devriez suivre afin que toute personne travaillant avec votre code puisse le comprendre facilement.

Maintenant, exécutez votre code. Si vous avez écrit le code Python dans un fichier nommé, par exemple, app.py, vous exécuterez alors python app.py depuis le terminal.

La démo ci-dessous s'ouvrira dans un navigateur sur http://localhost:7860 si elle est exécutée depuis un fichier. Si vous exécutez dans un notebook, la démo apparaîtra intégrée dans le notebook.

hello_world_4 demo

Tapez votre nom dans la zone de texte à gauche, faites glisser le curseur, puis appuyez sur le bouton Soumettre. Vous devriez voir un message de bienvenue amical à droite.

[!TIP] Lors du développement en local, vous pouvez exécuter votre application Gradio en mode rechargement à chaud, qui recharge automatiquement l'application Gradio à chaque modification du fichier. Pour ce faire, tapez simplement gradio avant le nom du fichier au lieu de python. Dans l'exemple ci-dessus, vous taperiez : gradio app.py dans votre terminal. Apprenez-en plus sur le rechargement à chaud dans le Guide du rechargement à chaud.

Comprendre la classe Interface

Vous remarquerez que pour créer votre première démo, vous avez créé une instance de la classe gr.Interface. La classe Interface est conçue pour créer des démos pour les modèles de machine learning qui acceptent une ou plusieurs entrées et renvoient une ou plusieurs sorties.

La classe Interface a trois arguments principaux :

  • fn : la fonction à envelopper dans une interface utilisateur (UI)
  • inputs : le(s) composant(s) Gradio à utiliser pour l'entrée. Le nombre de composants doit correspondre au nombre d'arguments de votre fonction.
  • outputs : le(s) composant(s) Gradio à utiliser pour la sortie. Le nombre de composants doit correspondre au nombre de valeurs de retour de votre fonction.

L'argument fn est très flexible — vous pouvez passer n'importe quelle fonction Python que vous souhaitez envelopper avec une UI. Dans l'exemple ci-dessus, nous avons vu une fonction relativement simple, mais la fonction pourrait être n'importe quoi, d'un générateur de musique à un calculateur d'impôts en passant par la fonction de prédiction d'un modèle de machine learning pré-entraîné.

Les arguments input et output acceptent un ou plusieurs composants Gradio. Comme nous le verrons, Gradio inclut plus de 30 composants intégrés (tels que les composants gr.Textbox(), gr.Image() et gr.HTML()) conçus pour les applications de machine learning.

[!TIP] Pour les arguments inputs et outputs, vous pouvez passer le nom de ces composants sous forme de chaîne ("textbox") ou une instance de la classe (gr.Textbox()).

Si votre fonction accepte plus d'un argument, comme c'est le cas ci-dessus, passez une liste de composants d'entrée à inputs, chaque composant d'entrée correspondant à l'un des arguments de la fonction, dans l'ordre. Il en va de même si votre fonction renvoie plus d'une valeur : passez simplement une liste de composants à outputs. Cette flexibilité fait de la classe Interface un moyen très puissant de créer des démos.

Nous approfondirons gr.Interface dans notre série sur la création d'interfaces.

Partager votre démo

À quoi bon une belle démo si vous ne pouvez pas la partager ? Gradio vous permet de partager facilement une démo de machine learning sans avoir à vous soucier des tracas d'hébergement sur un serveur web. Il suffit de définir share=True dans launch(), et une URL accessible publiquement sera créée pour votre démo. Reprenons notre exemple de démo, mais modifions la dernière ligne comme suit :

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)  # Partagez votre démo avec juste 1 paramètre supplémentaire 🚀

Lorsque vous exécutez ce code, une URL publique sera générée pour votre démo en quelques secondes, quelque chose comme :

👉   https://a23dsf231adb.gradio.live

Maintenant, n'importe qui dans le monde peut essayer votre démo Gradio depuis son navigateur, tandis que le modèle de machine learning et tous les calculs continuent de s'exécuter localement sur votre ordinateur.

Pour en savoir plus sur le partage de votre démo, lisez notre guide dédié sur le partage de votre application Gradio.

Un aperçu de Gradio

Jusqu'à présent, nous avons parlé de la classe Interface, qui est une classe de haut niveau permettant de créer rapidement des démos avec Gradio. Mais que fait d'autre Gradio ?

Chatbots avec gr.ChatInterface

Gradio inclut une autre classe de haut niveau, gr.ChatInterface, spécialement conçue pour créer des interfaces de chatbot. Comme pour Interface, vous fournissez une fonction et Gradio crée une interface de chatbot entièrement fonctionnelle. Si vous êtes intéressé par la création d'un chatbot, vous pouvez passer directement à notre guide dédié sur gr.ChatInterface.

Démos personnalisées avec gr.Blocks

Gradio offre également une approche de bas niveau pour concevoir des applications web avec des mises en page et des flux de données plus flexibles grâce à la classe gr.Blocks. Blocks vous permet de contrôler où les composants apparaissent sur la page, de gérer des flux de données complexes (par exemple, les sorties peuvent servir d'entrées à d'autres fonctions) et de mettre à jour les propriétés/la visibilité des composants en fonction des interactions utilisateur — le tout en Python.

Vous pouvez créer des applications très personnalisées et complexes avec gr.Blocks(). Par exemple, la populaire interface web de génération d'images Automatic1111 Web UI est construite avec Gradio Blocks. Nous approfondissons gr.Blocks dans notre série sur la création avec Blocks.

L'écosystème Python et JavaScript de Gradio

C'est l'essentiel de la bibliothèque Python gradio de base, mais Gradio est en réalité bien plus ! C'est tout un écosystème de bibliothèques Python et JavaScript qui vous permet de créer des applications de machine learning, ou de les interroger par programmation, en Python ou en JavaScript. Voici d'autres parties liées de l'écosystème Gradio :

  • Client Python Gradio (gradio_client) : interrogez n'importe quelle application Gradio par programmation en Python.
  • Client JavaScript Gradio (@gradio/client) : interrogez n'importe quelle application Gradio par programmation en JavaScript.
  • Gradio-Lite (@gradio/lite) : écrivez des applications Gradio en Python qui s'exécutent entièrement dans le navigateur (aucun serveur nécessaire !), grâce à Pyodide.
  • Hugging Face Spaces : l'endroit le plus populaire pour héberger vos applications Gradio — gratuitement !

Et ensuite ?

Continuez à apprendre Gradio de manière séquentielle avec les Guides Gradio, qui incluent des explications ainsi que des exemples de code et des démos interactives intégrées. Prochaine étape : les fonctionnalités clés des démos Gradio.

Ou, si vous connaissez déjà les bases et recherchez quelque chose de spécifique, vous pouvez consulter la documentation API plus technique.

Questions ?

Si vous souhaitez signaler un bug ou faire une demande de fonctionnalité, veuillez créer un problème sur GitHub. Pour des questions générales sur l'utilisation, nous sommes disponibles sur notre serveur Discord et heureux de vous aider.

Si vous aimez Gradio, laissez-nous une ⭐ sur GitHub !

Pile open source

Gradio est construit sur de nombreuses merveilleuses bibliothèques open source !

huggingface python fastapi encode svelte vite pnpm tailwind storybook chromatic

Licence

Gradio est sous licence Apache License 2.0, disponible dans le fichier LICENSE à la racine de ce dépôt.

Citation

Consultez également l'article Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild, ICML HILL 2019, et citez-le si vous utilisez Gradio dans vos travaux.

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},
}
Télécharger l’outil