kina006097's picture
ーカルでも認証情報を使うように修正
d4a1187
from typing import cast
import gradio as gr
from ai_api.config import ModelConfig
from ai_api.core.inference import Summarizer
# Summarizerのインスタンスをシングルトンとして管理
summarizer_instance: Summarizer | None = None
def get_summarizer() -> Summarizer:
"""Summarizerのインスタンスを一度だけ生成して返します。"""
global summarizer_instance
if summarizer_instance is None:
config = ModelConfig()
summarizer_instance = Summarizer(config=config)
return summarizer_instance
def summarize_text(text: str) -> str:
"""推論を実行するためのトップレベル関数。"""
summarizer = get_summarizer()
# castを使って、戻り値がstrであることをMypyに明示的に伝える
return cast(str, summarizer.summarize(text))
# Gradioインターフェースの定義
iface = gr.Interface(
fn=summarize_text,
inputs=gr.Textbox(lines=10, placeholder="要約したいテキストを入力してください..."),
outputs="text",
title="口コミ要約AI",
description="入力されたテキスト(口コミ)をAIが分析し、要約を生成します。",
api_name="predict",
)