MTeguri's picture
Update app.py
6c93c18 verified
"""
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)