Daryl Lim Claude Opus 4.6 commited on
Commit
e0dc6e1
·
1 Parent(s): de4ab0d

refactor: cache language mappings and use model.device

Browse files

Cache _build_language_mappings() with @lru_cache since the result
never changes. Use model.device instead of calling _get_device()
again in translate().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +2 -1
app.py CHANGED
@@ -38,6 +38,7 @@ def _load_model() -> AutoModelForSeq2SeqLM:
38
  return AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME, torch_dtype=dtype).to(device)
39
 
40
 
 
41
  def _build_language_mappings() -> tuple[dict[str, str], list[str]]:
42
  tokenizer = _load_tokenizer()
43
  vocab = tokenizer.get_vocab()
@@ -49,7 +50,7 @@ def _build_language_mappings() -> tuple[dict[str, str], list[str]]:
49
  def translate(text: str, target_language_name: str) -> str:
50
  tokenizer = _load_tokenizer()
51
  model = _load_model()
52
- device = _get_device()
53
 
54
  name_to_code, _ = _build_language_mappings()
55
  target_code = name_to_code.get(target_language_name)
 
38
  return AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME, torch_dtype=dtype).to(device)
39
 
40
 
41
+ @lru_cache(maxsize=1)
42
  def _build_language_mappings() -> tuple[dict[str, str], list[str]]:
43
  tokenizer = _load_tokenizer()
44
  vocab = tokenizer.get_vocab()
 
50
  def translate(text: str, target_language_name: str) -> str:
51
  tokenizer = _load_tokenizer()
52
  model = _load_model()
53
+ device = model.device
54
 
55
  name_to_code, _ = _build_language_mappings()
56
  target_code = name_to_code.get(target_language_name)