""" 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) # アプリ読み込み時に display_message を実行して Textbox に出力 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)