Upgrade modal apps

This commit is contained in:
2025-03-25 11:09:01 +01:00
parent 821d7c0692
commit cfb1b2f9bc
6 changed files with 146 additions and 136 deletions

View File

@@ -6,7 +6,7 @@ Reflector GPU backend - transcriber
import os
import threading
from modal import Image, Secret, App, asgi_app, method, enter
from modal import App, Image, Secret, asgi_app, enter, method
from pydantic import BaseModel
# Seamless M4T
@@ -137,7 +137,7 @@ transcriber_image = (
@app.cls(
gpu="A10G",
timeout=60 * 5,
container_idle_timeout=60 * 5,
scaledown_window=60 * 5,
allow_concurrent_inputs=4,
image=transcriber_image,
)
@@ -169,195 +169,195 @@ class Translator:
# TODO: Enhance with complete list of lang codes
seamless_lang_code = {
# Afrikaans
'af': 'afr',
"af": "afr",
# Amharic
'am': 'amh',
"am": "amh",
# Modern Standard Arabic
'ar': 'arb',
"ar": "arb",
# Moroccan Arabic
'ary': 'ary',
"ary": "ary",
# Egyptian Arabic
'arz': 'arz',
"arz": "arz",
# Assamese
'as': 'asm',
"as": "asm",
# North Azerbaijani
'az': 'azj',
"az": "azj",
# Belarusian
'be': 'bel',
"be": "bel",
# Bengali
'bn': 'ben',
"bn": "ben",
# Bosnian
'bs': 'bos',
"bs": "bos",
# Bulgarian
'bg': 'bul',
"bg": "bul",
# Catalan
'ca': 'cat',
"ca": "cat",
# Cebuano
'ceb': 'ceb',
"ceb": "ceb",
# Czech
'cs': 'ces',
"cs": "ces",
# Central Kurdish
'ku': 'ckb',
"ku": "ckb",
# Mandarin Chinese
'cmn': 'cmn_Hant',
"cmn": "cmn_Hant",
# Welsh
'cy': 'cym',
"cy": "cym",
# Danish
'da': 'dan',
"da": "dan",
# German
'de': 'deu',
"de": "deu",
# Greek
'el': 'ell',
"el": "ell",
# English
'en': 'eng',
"en": "eng",
# Estonian
'et': 'est',
"et": "est",
# Basque
'eu': 'eus',
"eu": "eus",
# Finnish
'fi': 'fin',
"fi": "fin",
# French
'fr': 'fra',
"fr": "fra",
# Irish
'ga': 'gle',
"ga": "gle",
# West Central Oromo,
'gaz': 'gaz',
"gaz": "gaz",
# Galician
'gl': 'glg',
"gl": "glg",
# Gujarati
'gu': 'guj',
"gu": "guj",
# Hebrew
'he': 'heb',
"he": "heb",
# Hindi
'hi': 'hin',
"hi": "hin",
# Croatian
'hr': 'hrv',
"hr": "hrv",
# Hungarian
'hu': 'hun',
"hu": "hun",
# Armenian
'hy': 'hye',
"hy": "hye",
# Igbo
'ig': 'ibo',
"ig": "ibo",
# Indonesian
'id': 'ind',
"id": "ind",
# Icelandic
'is': 'isl',
"is": "isl",
# Italian
'it': 'ita',
"it": "ita",
# Javanese
'jv': 'jav',
"jv": "jav",
# Japanese
'ja': 'jpn',
"ja": "jpn",
# Kannada
'kn': 'kan',
"kn": "kan",
# Georgian
'ka': 'kat',
"ka": "kat",
# Kazakh
'kk': 'kaz',
"kk": "kaz",
# Halh Mongolian
'khk': 'khk',
"khk": "khk",
# Khmer
'km': 'khm',
"km": "khm",
# Kyrgyz
'ky': 'kir',
"ky": "kir",
# Korean
'ko': 'kor',
"ko": "kor",
# Lao
'lo': 'lao',
"lo": "lao",
# Lithuanian
'lt': 'lit',
"lt": "lit",
# Ganda
'lg': 'lug',
"lg": "lug",
# Luo
'luo': 'luo',
"luo": "luo",
# Standard Latvian
'lv': 'lvs',
"lv": "lvs",
# Maithili
'mai': 'mai',
"mai": "mai",
# Malayalam
'ml': 'mal',
"ml": "mal",
# Marathi
'mr': 'mar',
"mr": "mar",
# Macedonian
'mk': 'mkd',
"mk": "mkd",
# Maltese
'mt': 'mlt',
"mt": "mlt",
# Meitei
'mni': 'mni',
"mni": "mni",
# Burmese
'my': 'mya',
"my": "mya",
# Dutch
'nl': 'nld',
"nl": "nld",
# Norwegian Nynorsk
'nn': 'nno',
"nn": "nno",
# Norwegian Bokmål
'nb': 'nob',
"nb": "nob",
# Nepali
'ne': 'npi',
"ne": "npi",
# Nyanja
'ny': 'nya',
"ny": "nya",
# Odia
'or': 'ory',
"or": "ory",
# Punjabi
'pa': 'pan',
"pa": "pan",
# Southern Pashto
'pbt': 'pbt',
"pbt": "pbt",
# Western Persian
'pes': 'pes',
"pes": "pes",
# Polish
'pl': 'pol',
"pl": "pol",
# Portuguese
'pt': 'por',
"pt": "por",
# Romanian
'ro': 'ron',
"ro": "ron",
# Russian
'ru': 'rus',
"ru": "rus",
# Slovak
'sk': 'slk',
"sk": "slk",
# Slovenian
'sl': 'slv',
"sl": "slv",
# Shona
'sn': 'sna',
"sn": "sna",
# Sindhi
'sd': 'snd',
"sd": "snd",
# Somali
'so': 'som',
"so": "som",
# Spanish
'es': 'spa',
"es": "spa",
# Serbian
'sr': 'srp',
"sr": "srp",
# Swedish
'sv': 'swe',
"sv": "swe",
# Swahili
'sw': 'swh',
"sw": "swh",
# Tamil
'ta': 'tam',
"ta": "tam",
# Telugu
'te': 'tel',
"te": "tel",
# Tajik
'tg': 'tgk',
"tg": "tgk",
# Tagalog
'tl': 'tgl',
"tl": "tgl",
# Thai
'th': 'tha',
"th": "tha",
# Turkish
'tr': 'tur',
"tr": "tur",
# Ukrainian
'uk': 'ukr',
"uk": "ukr",
# Urdu
'ur': 'urd',
"ur": "urd",
# Northern Uzbek
'uz': 'uzn',
"uz": "uzn",
# Vietnamese
'vi': 'vie',
"vi": "vie",
# Yoruba
'yo': 'yor',
"yo": "yor",
# Cantonese
'yue': 'yue',
"yue": "yue",
# Standard Malay
'ms': 'zsm',
"ms": "zsm",
# Zulu
'zu': 'zul'
"zu": "zul",
}
return seamless_lang_code.get(lang_code, "eng")
@@ -381,7 +381,7 @@ class Translator:
@app.function(
container_idle_timeout=60,
scaledown_window=60,
timeout=60,
allow_concurrent_inputs=40,
secrets=[
@@ -413,9 +413,9 @@ def web():
@app.post("/translate", dependencies=[Depends(apikey_auth)])
async def translate(
text: str,
source_language: Annotated[str, Body(...)] = "en",
target_language: Annotated[str, Body(...)] = "fr",
text: str,
source_language: Annotated[str, Body(...)] = "en",
target_language: Annotated[str, Body(...)] = "fr",
) -> TranslateResponse:
func = translatorstub.translate_text.spawn(
text=text,