| | """ |
| | BMSKステータス表示ミニアプリ |
| | -------------------------------- |
| | Gradio の `load` イベントでランダムな警告文を1件表示するミニアプリ。 |
| | 主に処理水の水質指標に関する警告メッセージをユーザーに提示する。 |
| | """ |
| |
|
| | from __future__ import annotations |
| |
|
| | import random |
| | from typing import List |
| |
|
| | import gradio as gr |
| |
|
| |
|
| | def display_message() -> str: |
| | """ |
| | ステータス用のメッセージ候補から1件をランダムに選んで返す。 |
| | |
| | 警告対象は以下を含む: |
| | - T-N |
| | - T-P |
| | - SS |
| | - CODMn |
| | |
| | Returns: |
| | str: ランダムに選ばれた警告メッセージ。 |
| | """ |
| | messages: List[str] = [ |
| | "処理水のBODが放流基準値を超えています。", |
| | "処理水のCODcr(s)が放流基準値を超えています。", |
| | "処理水のT-Pが放流基準値を超えています。", |
| | "処理水のSSが放流基準値を超えています。", |
| | "処理水のCODMnが放流基準値を超えています。", |
| | ] |
| | return random.choice(messages) |
| |
|
| |
|
| | with gr.Blocks() as demo: |
| | """ |
| | Gradio アプリ本体。 |
| | - Markdown タイトルを表示 |
| | - ステータス出力用の Textbox を設置 |
| | - アプリ読み込み時 (`load` イベント) に display_message() を呼び出し、 |
| | 警告メッセージを Textbox に出力する |
| | """ |
| | gr.Markdown("# BMSKステータス") |
| | output_text = gr.Textbox(label="ステータス", interactive=False) |
| |
|
| | |
| | demo.load(fn=display_message, inputs=None, outputs=output_text, api_name="status") |
| |
|
| |
|
| | if __name__ == "__main__": |
| | """ |
| | スクリプトを直接実行した場合に Gradio アプリを起動するエントリーポイント。 |
| | mcp_server=True により Model Context Protocol サーバーとしても起動可能。 |
| | """ |
| | demo.launch(mcp_server=True) |