Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gha-lab-ee08e207a8 — # 認可されたセキュリティ研究ラボによるCVE-2024-4253(GHSA-r897-wrpm-h4vw)の再現:gradio-app/gradioのtest-functional.ymlにおけるworkflow_runコマンドインジェクション | Kitploit
ツール/GitHubGitHub/pvharmo2/gha-lab-ee08e207a8
脆弱性分析エクスプロイト学習と教育ラボと実践
GitHubpvharmo2/gha-lab-ee08e207a8

gha-lab-ee08e207a8

# 認可されたセキュリティ研究ラボによるCVE-2024-4253(GHSA-r897-wrpm-h4vw)の再現:gradio-app/gradioのtest-functional.ymlにおけるworkflow_runコマンドインジェクション

リポジトリを見る
15時間40分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

自動化された研究アーティファクト — 上流プロジェクトではありません。

このリポジトリは、Université Laval の修士論文のために、公開されている GitHub Actions ワークフローの脆弱性を再現する目的で自動化ハーネスによって構築された使い捨てのラボです。これは gradio-app/gradio のコミット a81e36967c0973012e90ec7cf03b99cf3fea88ec(2024-04-30)時点の逐語的なスナップショットであり、そのプロジェクト自身のライセンスの下で再配布されています。ライセンスファイルはこのスナップショットに変更なしで含まれています。

上流プロジェクトは関与しておらず、決して標的にはなりません。ここで研究されている脆弱性はすでに公開されています。このリポジトリ内のすべてのシークレットと変数はランダムに生成されたダミー値であり、実際の認証情報は含まれていません。アクションの参照とランナーイメージは、2024-04-30 時点で解決されたものに固定されています。スナップショットに加えられたすべての変更については、ハーネス出力内の pinning.md を参照してください。

質問や異議がある場合: [email protected]


gradio

gradio-backend gradio-ui
PyPI

PyPI downloads
Python version
Twitter follow

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

Gradio: Python で機械学習 Web アプリを構築

Gradio はオープンソースの Python パッケージで、機械学習モデル、API、または任意の Python 関数のデモや Web アプリケーションをすばやく構築できます。Gradio の組み込み共有機能を使えば、デモや Web アプリケーションへのリンクを数秒で共有できます。JavaScript、CSS、Web ホスティングの経験は不要です!

上記のような美しいデモを作成するには、ほんの数行の Python コードが必要です。さっそく始めましょう 💫

インストール

前提条件: Gradio には Python 3.8 以降が必要です。

Python にデフォルトで含まれている pip を使用して Gradio をインストールすることをお勧めします。ターミナルまたはコマンドプロンプトで次を実行してください:

root@kitploit:~
pip install gradio

[!TIP] Gradio は仮想環境にインストールするのが最適です。すべての一般的なオペレーティングシステム向けの詳細なインストール手順はこちらに記載されています。

最初のデモを構築する

Gradio は、お気に入りのコードエディタ、Jupyter ノートブック、Google Colab、その他 Python を書くあらゆる場所で実行できます。最初の 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] コードの可読性を高めるため、インポート名を gradio から gr に短縮しています。これは広く採用されている慣例であり、あなたのコードを扱う誰もが簡単に理解できるように、この慣例に従うべきです。

次に、コードを実行します。Python コードを例えば app.py というファイルに書いた場合、ターミナルで python app.py を実行します。

ファイルから実行する場合、以下のデモはブラウザで http://localhost:7860 に開きます。ノートブック内で実行している場合、デモはノートブック内に埋め込まれて表示されます。

hello_world_4 demo

左側のテキストボックスに名前を入力し、スライダーをドラッグして、Submit ボタンを押します。右側にフレンドリーな挨拶が表示されるはずです。

[!TIP] ローカルで開発する場合、ホットリロードモードで Gradio アプリを実行できます。これにより、ファイルに変更を加えるたびに Gradio アプリが自動的にリロードされます。これを行うには、python の代わりにファイル名の前に gradio と入力するだけです。上記の例では、ターミナルで gradio app.py と入力します。ホットリロードの詳細については、ホットリロードガイドをご覧ください。

Interface クラスを理解する

最初のデモを作成するために、gr.Interface クラスのインスタンスを作成したことに気づくでしょう。Interface クラスは、1 つ以上の入力を受け取り、1 つ以上の出力を返す機械学習モデルのデモを作成するように設計されています。

Interface クラスには 3 つの主要な引数があります:

  • fn: ユーザーインターフェース (UI) でラップする関数
  • inputs: 入力に使用する Gradio コンポーネント。コンポーネントの数は関数の引数の数と一致する必要があります。
  • outputs: 出力に使用する Gradio コンポーネント。コンポーネントの数は関数の戻り値の数と一致する必要があります。

fn 引数は非常に柔軟です — UI でラップしたい任意の Python 関数を渡すことができます。上記の例では比較的単純な関数を見ましたが、関数は音楽ジェネレーターから税計算機、事前学習済み機械学習モデルの予測関数まで、何でもかまいません。

input と output 引数は、1 つ以上の Gradio コンポーネントを受け取ります。これから見ていくように、Gradio には機械学習アプリケーション向けに設計された 30 以上の組み込みコンポーネント(gr.Textbox()、gr.Image()、gr.HTML() コンポーネントなど)が含まれています。

[!TIP] inputs と outputs 引数には、これらのコンポーネントの名前を文字列("textbox")として渡すか、クラスのインスタンス(gr.Textbox())として渡すことができます。

関数が上記のように複数の引数を受け取る場合、入力コンポーネントのリストを inputs に渡します。各入力コンポーネントは関数の引数の 1 つに順番に対応します。関数が複数の値を返す場合も同様です。コンポーネントのリストを outputs に渡すだけです。この柔軟性により、Interface クラスはデモを作成するための非常に強力な方法となっています。

gr.Interface については、Interfaces の構築に関するシリーズでさらに詳しく説明します。

デモを共有する

美しいデモも共有できなければ意味がありません。Gradio を使用すると、Web サーバーでのホスティングの手間を心配することなく、機械学習デモを簡単に共有できます。launch() で share=True を設定するだけで、デモ用の公開 URL が作成されます。サンプルデモをもう一度見て、最後の行を次のように変更してみましょう:

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 🚀

このコードを実行すると、数秒でデモ用の公開 URL が生成されます。次のようなものです:

👉   https://a23dsf231adb.gradio.live

これで、世界中の誰もがブラウザから Gradio デモを試すことができ、機械学習モデルとすべての計算は引き続きお使いのコンピューター上でローカルに実行されます。

デモの共有について詳しくは、Gradio アプリケーションの共有に関する専用ガイドをご覧ください。

Gradio の概要

これまで、Gradio でデモをすばやく構築できる高レベルクラスである Interface クラスについて説明してきました。しかし、Gradio には他に何ができるのでしょうか?

gr.ChatInterface によるチャットボット

Gradio には、チャットボット UI の作成に特化して設計されたもう 1 つの高レベルクラス gr.ChatInterface が含まれています。Interface と同様に、関数を指定すると Gradio が完全に機能するチャットボット UI を作成します。チャットボットの作成に興味がある場合は、gr.ChatInterface に関する専用ガイドに直接進んでください。

gr.Blocks によるカスタムデモ

Gradio は、より柔軟なレイアウトとデータフローで Web アプリを設計するための低レベルアプローチも、gr.Blocks クラスで提供しています。Blocks を使用すると、コンポーネントがページ上のどこに表示されるかを制御したり、複雑なデータフロー(出力が他の関数への入力として機能するなど)を処理したり、ユーザーの操作に基づいてコンポーネントのプロパティ/可視性を更新したりできます — これらすべてを Python で行えます。

gr.Blocks() を使用すると、非常にカスタムで複雑なアプリケーションを構築できます。例えば、人気の画像生成 Automatic1111 Web UI は Gradio Blocks を使用して構築されています。gr.Blocks については、Blocks での構築に関するシリーズでさらに詳しく説明します。

Gradio の Python & JavaScript エコシステム

これがコアの gradio Python ライブラリの要点ですが、Gradio は実際にはそれ以上のものです! これは、Python または JavaScript で機械学習アプリケーションを構築したり、プログラムでクエリしたりできる Python および JavaScript ライブラリのエコシステム全体です。Gradio エコシステムの他の関連部分は次のとおりです:

  • Gradio Python Client (gradio_client): Python で任意の Gradio アプリをプログラム的にクエリします。
  • Gradio JavaScript Client (@gradio/client): JavaScript で任意の Gradio アプリをプログラム的にクエリします。
  • Gradio-Lite (@gradio/lite): Pyodide のおかげで、ブラウザ内で完全に実行される Gradio アプリを Python で記述できます(サーバー不要!)。
  • Hugging Face Spaces: Gradio アプリケーションを無料でホストする最も人気のある場所です。

次のステップは?

Gradio Guides を使用して Gradio を順番に学習し続けてください。説明、サンプルコード、埋め込みのインタラクティブデモが含まれています。次は: Gradio デモの主要機能です。

または、基本をすでに理解していて特定のものを探している場合は、より技術的な API ドキュメントを検索できます。

質問は?

バグを報告したい場合や機能リクエストがある場合は、GitHub に issue を作成してください。使用方法に関する一般的な質問については、Discord サーバーで対応していますので、お気軽にご相談ください。

Gradio が気に入ったら、GitHub で ⭐ を残してください!

オープンソーススタック

Gradio は、多くの素晴らしいオープンソースライブラリの上に構築されています!

huggingface python fastapi encode svelte vite pnpm tailwind storybook chromatic

ライセンス

Gradio は、このリポジトリのルートディレクトリにある LICENSE ファイルに記載されている Apache License 2.0 の下でライセンスされています。

引用

論文 Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild, ICML HILL 2019 もご覧ください。Gradio を研究で使用する場合は、引用してください。

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},
}
ツールをダウンロード