Spaces:
Sleeping
Sleeping
from dataclasses import dataclass, field | |
from typing import Dict, Literal, Tuple | |
from pydantic import BaseModel, ValidationError | |
from enum import Enum | |
class ModelNameMapping(BaseModel): | |
data: Dict[Tuple, str] = field(default_factory=dict) | |
def __getitem__(self, key: Tuple) -> str: | |
return self.data[key] | |
def get(self, key: Tuple) -> str: | |
return self.data.get(key, "") | |
class LanguagesEnum(Enum): | |
es = "es" | |
en = "en" | |
ca = "ca" | |
pt = "pt" | |
es_to_en: Tuple = (LanguagesEnum.es.value, LanguagesEnum.en.value) | |
es_to_ca: Tuple = (LanguagesEnum.es.value, LanguagesEnum.ca.value) | |
es_to_po: Tuple = (LanguagesEnum.es.value, LanguagesEnum.pt.value) | |
en_to_es: Tuple = (LanguagesEnum.en.value, LanguagesEnum.es.value) | |
en_to_po: Tuple = (LanguagesEnum.en.value, LanguagesEnum.pt.value) | |
ca_to_es: Tuple = (LanguagesEnum.ca.value, LanguagesEnum.es.value) | |
po_to_en: Tuple = (LanguagesEnum.pt.value, LanguagesEnum.en.value) | |
po_to_es: Tuple = (LanguagesEnum.pt.value, LanguagesEnum.es.value) | |
models = { | |
es_to_en: "Helsinki-NLP/opus-mt-es-en", | |
es_to_ca: "Helsinki-NLP/opus-mt-es-ca", | |
en_to_es: "Helsinki-NLP/opus-mt-en-es", | |
en_to_po: "Helsinki-NLP/opus-mt-tc-big-en-pt", | |
ca_to_es: "Helsinki-NLP/opus-mt-ca-es", | |
po_to_en: "Helsinki-NLP/opus-mt-pt-en", | |
po_to_es: "Helsinki-NLP/opus-mt-pt-es", | |
} | |
MODEL_NAME_MAPPING = ModelNameMapping(data=models) | |