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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gha-lab-40e23db109 — セキュリティ研究ラボ: CVE-2024-4254 (GHSA-fc78-c36r-cc59) の管理下での再現 — gradio-app/gradio @ d4c503a における deploy-website.yml のフォークチェックアウト/コード実行 | Kitploit
ツール/GitHubGitHub/pvharmo2/gha-lab-40e23db109
脆弱性分析クラウドセキュリティDevSecOpsサプライチェーンセキュリティ学習と教育
GitHubpvharmo2/gha-lab-40e23db109

gha-lab-40e23db109

セキュリティ研究ラボ: CVE-2024-4254 (GHSA-fc78-c36r-cc59) の管理下での再現 — gradio-app/gradio @ d4c503a における deploy-website.yml のフォークチェックアウト/コード実行

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

人気

すべて見る →

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

すべてのツールを探索

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

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

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

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

上流プロジェクトは関与しておらず、標的にもされていません。ここで研究されている脆弱性はすでに公開されています。このリポジトリ内のすべてのシークレットと変数はランダムに生成されたダミー値であり、実際の認証情報は含まれていません。アクションの参照とランナーイメージは、2024-08-02時点で解決されたものに固定されています。スナップショットに加えられたすべての変更については、ハーネス出力内の 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は、機械学習モデル、API、または任意のPython関数のデモやWebアプリケーションをすばやく構築できるオープンソースのPythonパッケージです。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については、インターフェースの構築に関するシリーズでさらに詳しく説明します。

デモを共有する

美しいデモも共有できなければ意味がありません。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クライアント(gradio_client): Pythonで任意のGradioアプリをプログラム的にクエリします。
  • Gradio JavaScriptクライアント(@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},
}
ツールをダウンロード