GradioアプリにExamplesで入力と出力の例を追加する

公開日:
目次

Gradioとは

Gradioは、Pythonで作成したAIモデルをWebアプリとして公開するためのライブラリです。

Gradioの使い方については、下記の記事を参考にしてください。

GradioのExamplesとは

GradioのExamplesとは、Gradioアプリの入力(または出力)の例を表示する機能です。

GradioのExamplesを使うと、ユーザがGradioアプリを使う際に使い方をわかりやすくできます。

Examplesを追加する方法

GradioのExamplesを追加するには、Gradio.Examples()を使います。

Gradio.Examples()の引数には、入力の例をリストで渡します。

examples = [
    ["Hello world!"],
    ["こんにちは世界!"],
    ["你好,世界!"],
]

Examplesを使った例

GradioのExamplesを使った例を紹介します。

GradioのExamplesを使って、入力の例を表示するGradioアプリを作ります。

import gradio as gr

def hello_world(text):
    return "Hello world!"

examples = [
    ["Hello world!"],
    ["こんにちは世界!"],
    ["你好,世界!"],
]

app = gr.Interface(
    hello_world,
    gr.inputs.Textbox(lines=2, placeholder="Enter text here..."),
    gr.outputs.Textbox(label="Output"),
    examples=examples,
    title="Hello world!",
    description="This is a simple Gradio app.",
    allow_flagging=False,
)

app.launch()

GradioのExamplesを理解する

GradioのExamplesを理解するために、GradioのExamplesのパラメータを見てみます。

このクラスは Dataset コンポーネントのラッパーで、 ブロックやインターフェイスのサンプルを作成するために使用します。Dataset コンポーネントにサンプルを投入し、イベントリスナーを割り当てて、サンプルをクリックすると入出力コンポーネントへの入力が行われるようにします。オプションで、高速な推論を行うためのExampleのキャッシュを処理します。

Examplesに必須なパラメータはexamplesとinputsのみです。それ以外はoptionalです。

Examplesのパラメータ

パラメータ 説明
examples クリックすることで、特定のコンポーネントに入力することができる入力の例。外側のリストがサンプルで、内側のリストが各入力コンポーネントに対応する入力で構成されるネストされたリストであるべきです。サンプルのディレクトリへのパスも指定できますが、gradioアプリを実行しているPythonファイルがあるディレクトリ内にあるべきです。複数の入力コンポーネントがあり、ディレクトリが提供される場合、対応する入力をリンクするための log.csv ファイルがディレクトリ内に存在する必要があります。
inputs 例に対応するコンポーネントまたはコンポーネントのリスト
outputs オプションで、例の出力に対応するコンポーネントまたはコンポーネントのリストを指定します。cache` が True の場合は必須である。
fn オプションで、サンプルに対応する出力を生成するために実行する関数を指定します。cache` が True の場合は必須である。
cache_examples True の場合、高速に実行するためにサンプルをキャッシュする。True の場合、 fnoutputs を指定する必要がある。
example_per_page 1ページにいくつの例を表示するか。
label examples コンポーネントに使用するラベル (デフォルトは "Examples")
elem_id HTML DOM 内でこのコンポーネントの ID として割り当てられるオプションの文字列。
run_on_click cache_examples が False の場合、例がクリックされても、関数は実行されません。これを True に設定すると、例がクリックされたときに関数が実行されます。cache_examples が True の場合は、何の効果もありません。
preprocess True の場合、予測関数を実行し、出力をキャッシュする前に、サンプルの入力の前処理を行います。cache_examples が True の場合のみ適用されます。
postprocess True の場合、予測関数を実行した後、キャッシュする前にサンプル出力を後処理します。cache_examples が True の場合のみ適用されます。
batch True の場合、この関数は入力のバッチを処理する必要があります。つまり、各パラメータの入力値のリストを受け入れる必要があります。cache_examples が True の場合のみ使用されます。