Spaces:
Sleeping
Sleeping
| from typing import cast | |
| from transformers import T5ForConditionalGeneration, T5Tokenizer | |
| from ai_api.config import ModelConfig | |
| class Summarizer: | |
| """ | |
| AIモデルを管理し、テキスト要約を実行するクラス。 | |
| """ | |
| def __init__(self, config: ModelConfig) -> None: | |
| self.config = config | |
| # __init__で一度だけtokenizerとmodelを初期化 | |
| self.tokenizer = T5Tokenizer.from_pretrained( | |
| self.config.NAME, revision=self.config.REVISION | |
| ) | |
| self.model = T5ForConditionalGeneration.from_pretrained( | |
| self.config.NAME, revision=self.config.REVISION | |
| ) | |
| def summarize(self, text: str) -> str: | |
| """ | |
| 与えられたテキストを要約する。 | |
| """ | |
| # 保持しているtokenizerとmodelを使って要約 | |
| input_ids = self.tokenizer.encode(text, return_tensors="pt") | |
| output_ids = self.model.generate( | |
| input_ids, max_length=50, min_length=10, do_sample=False | |
| ) | |
| summary = self.tokenizer.decode(output_ids[0], skip_special_tokens=True) | |
| return cast(str, summary) | |