davidpomerenke commited on
Commit
338dc9b
·
verified ·
1 Parent(s): 0044d85

Upload from GitHub Actions: Evaluate Google Translate

Browse files
Files changed (9) hide show
  1. .gitignore +1 -0
  2. evals/main.py +6 -21
  3. evals/models.py +50 -1
  4. evals/tasks.py +20 -14
  5. languages.json +26 -26
  6. models.json +319 -32
  7. pyproject.toml +1 -0
  8. results.json +0 -0
  9. uv.lock +199 -0
.gitignore CHANGED
@@ -3,6 +3,7 @@ fleurs
3
  spbleu
4
  .cache
5
  .env
 
6
 
7
  # Python-generated files
8
  __pycache__/
 
3
  spbleu
4
  .cache
5
  .env
6
+ *_credentials.json
7
 
8
  # Python-generated files
9
  __pycache__/
evals/main.py CHANGED
@@ -1,47 +1,32 @@
1
  import asyncio
2
  from time import time
3
 
4
- t0 = time()
5
-
6
  import pandas as pd
7
  from languages import languages
8
-
9
- print(f"loaded languages in {time() - t0:.2f}s")
10
- t0 = time()
11
-
12
  from models import models
13
-
14
- print(f"loaded models in {time() - t0:.2f}s")
15
- t0 = time()
16
-
17
  from tasks import tasks
18
-
19
- print(f"loaded tasks in {time() - t0:.2f}s")
20
- t0 = time()
21
-
22
  from tqdm.asyncio import tqdm_asyncio
23
 
24
  # ===== config =====
25
 
26
  n_sentences = 10
27
- n_models = 35
28
-
29
 
30
  # ===== run evaluation and aggregate results =====
31
 
32
 
33
  async def evaluate():
34
- # FIXME we should not need this for loop, but it helps
35
- for n_languages in range(0, 200):
36
  print(f"running evaluations for {n_languages} languages")
37
  old_results = pd.read_json("results.json")
38
  old_models = pd.read_json("models.json")
39
  # get all combinations of model, language and task
40
  combis = [
41
  (model, lang.bcp_47, task_name)
42
- for task_name, task in tasks.items()
43
  for lang in languages.iloc[:n_languages].itertuples()
44
- for model in models["id"].iloc[:n_models]
 
45
  ]
46
  # filter out combinations that have already been evaluated
47
  combis = pd.DataFrame(combis, columns=["model", "bcp_47", "task"])
@@ -69,7 +54,7 @@ async def evaluate():
69
  results = results.sort_values(by=["model", "bcp_47", "task", "metric"])
70
  results.to_json("results.json", **args)
71
  # save up-to-date info on models and languages
72
- all_models = pd.concat([old_models, pd.DataFrame(models)])
73
  all_models = all_models.drop_duplicates(subset=["id"]).sort_values(by=["id"])
74
  all_models.to_json("models.json", **args)
75
  pd.DataFrame(languages).to_json("languages.json", **args)
 
1
  import asyncio
2
  from time import time
3
 
 
 
4
  import pandas as pd
5
  from languages import languages
 
 
 
 
6
  from models import models
 
 
 
 
7
  from tasks import tasks
 
 
 
 
8
  from tqdm.asyncio import tqdm_asyncio
9
 
10
  # ===== config =====
11
 
12
  n_sentences = 10
 
 
13
 
14
  # ===== run evaluation and aggregate results =====
15
 
16
 
17
  async def evaluate():
18
+ # FIXME we should not need this for-loop, but it helps
19
+ for n_languages in range(100, 101):
20
  print(f"running evaluations for {n_languages} languages")
21
  old_results = pd.read_json("results.json")
22
  old_models = pd.read_json("models.json")
23
  # get all combinations of model, language and task
24
  combis = [
25
  (model, lang.bcp_47, task_name)
26
+ for model in models["id"]
27
  for lang in languages.iloc[:n_languages].itertuples()
28
+ for task_name, task in tasks.items()
29
+ if task_name in models[models["id"] == model]["tasks"].iloc[0]
30
  ]
31
  # filter out combinations that have already been evaluated
32
  combis = pd.DataFrame(combis, columns=["model", "bcp_47", "task"])
 
54
  results = results.sort_values(by=["model", "bcp_47", "task", "metric"])
55
  results.to_json("results.json", **args)
56
  # save up-to-date info on models and languages
57
+ all_models = pd.concat([pd.DataFrame(models), old_models])
58
  all_models = all_models.drop_duplicates(subset=["id"]).sort_values(by=["id"])
59
  all_models.to_json("models.json", **args)
60
  pd.DataFrame(languages).to_json("languages.json", **args)
evals/models.py CHANGED
@@ -8,8 +8,10 @@ import pandas as pd
8
  from aiolimiter import AsyncLimiter
9
  from dotenv import load_dotenv
10
  from elevenlabs import AsyncElevenLabs
 
11
  from huggingface_hub import AsyncInferenceClient, HfApi
12
  from joblib.memory import Memory
 
13
  from openai import AsyncOpenAI, PermissionDeniedError
14
  from requests import HTTPError, get
15
 
@@ -47,7 +49,9 @@ important_models = [
47
  ]
48
 
49
  blocklist = [
50
- "microsoft/wizardlm-2-8x22b" # temporarily rate-limited
 
 
51
  ]
52
 
53
  transcription_models = [
@@ -106,6 +110,23 @@ def get_current_popular_models(date: date):
106
  return [m for m in models if m]
107
 
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  load_dotenv()
110
  client = AsyncOpenAI(
111
  base_url="https://openrouter.ai/api/v1",
@@ -115,6 +136,7 @@ client = AsyncOpenAI(
115
  openrouter_rate_limit = AsyncLimiter(max_rate=20, time_period=1)
116
  elevenlabs_rate_limit = AsyncLimiter(max_rate=2, time_period=1)
117
  huggingface_rate_limit = AsyncLimiter(max_rate=5, time_period=1)
 
118
 
119
 
120
  @cache
@@ -130,6 +152,25 @@ async def complete(**kwargs) -> str | None:
130
  return response.choices[0].message.content.strip()
131
 
132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  @cache
134
  async def transcribe_elevenlabs(path, model):
135
  modelname = model.split("/")[-1]
@@ -239,6 +280,14 @@ def load_models(date: date):
239
  creation_date=creation_date_hf.combine_first(creation_date_or),
240
  )
241
  # models = models[models["cost"] <= 2.0].reset_index(drop=True)
 
 
 
 
 
 
 
 
242
  return models
243
 
244
 
 
8
  from aiolimiter import AsyncLimiter
9
  from dotenv import load_dotenv
10
  from elevenlabs import AsyncElevenLabs
11
+ from google.cloud import translate_v2 as translate
12
  from huggingface_hub import AsyncInferenceClient, HfApi
13
  from joblib.memory import Memory
14
+ from langcodes import closest_supported_match
15
  from openai import AsyncOpenAI, PermissionDeniedError
16
  from requests import HTTPError, get
17
 
 
49
  ]
50
 
51
  blocklist = [
52
+ "microsoft/wizardlm-2-8x22b", # temporarily rate-limited
53
+ "google/gemini-2.5-pro", # something wrong FIXME
54
+ "google/gemini-2.5-pro-preview", # something wrong FIXME
55
  ]
56
 
57
  transcription_models = [
 
110
  return [m for m in models if m]
111
 
112
 
113
+ def get_translation_models():
114
+ return pd.DataFrame(
115
+ [
116
+ {
117
+ "id": "google/translate-v2",
118
+ "name": "Google Translate",
119
+ "provider_name": "Google",
120
+ "cost": 20.0,
121
+ "size": None,
122
+ "type": "closed-source",
123
+ "license": None,
124
+ "tasks": ["translation_from", "translation_to"],
125
+ }
126
+ ]
127
+ )
128
+
129
+
130
  load_dotenv()
131
  client = AsyncOpenAI(
132
  base_url="https://openrouter.ai/api/v1",
 
136
  openrouter_rate_limit = AsyncLimiter(max_rate=20, time_period=1)
137
  elevenlabs_rate_limit = AsyncLimiter(max_rate=2, time_period=1)
138
  huggingface_rate_limit = AsyncLimiter(max_rate=5, time_period=1)
139
+ google_rate_limit = AsyncLimiter(max_rate=10, time_period=1)
140
 
141
 
142
  @cache
 
152
  return response.choices[0].message.content.strip()
153
 
154
 
155
+ translate_client = translate.Client()
156
+ supported_languages = [l["language"] for l in translate_client.get_languages()]
157
+
158
+
159
+ @cache
160
+ async def translate_google(text, source_language, target_language):
161
+ source_language = closest_supported_match(source_language, supported_languages)
162
+ target_language = closest_supported_match(target_language, supported_languages)
163
+ if source_language == target_language:
164
+ return text
165
+ if source_language is None or target_language is None:
166
+ return None
167
+ async with google_rate_limit:
168
+ response = translate_client.translate(
169
+ text, source_language=source_language, target_language=target_language
170
+ )
171
+ return response["translatedText"]
172
+
173
+
174
  @cache
175
  async def transcribe_elevenlabs(path, model):
176
  modelname = model.split("/")[-1]
 
280
  creation_date=creation_date_hf.combine_first(creation_date_or),
281
  )
282
  # models = models[models["cost"] <= 2.0].reset_index(drop=True)
283
+ models["tasks"] = [
284
+ ["translation_from", "translation_to", "classification", "mmlu", "mgsm"]
285
+ ] * len(models)
286
+ models = pd.concat([models, get_translation_models()])
287
+ models = models[ # temporary fix FIXME
288
+ (models["id"] != "google/gemini-2.5-pro")
289
+ & (models["id"] != "google/gemini-2.5-pro-preview")
290
+ ]
291
  return models
292
 
293
 
evals/tasks.py CHANGED
@@ -1,7 +1,6 @@
1
  import random
2
  from functools import partial
3
  from textwrap import dedent
4
-
5
  import evaluate
6
  import pandas as pd
7
  import sentencepiece as spm
@@ -9,7 +8,7 @@ from datasets_.flores import flores_sentences
9
  from datasets_.mgsm import load_mgsm, parse_number
10
  from datasets_.mmlu import load_mmlu
11
  from languages import languages, script_name
12
- from models import complete, transcribe
13
 
14
  bleu = evaluate.load("bleu")
15
  chrf = evaluate.load("chrf")
@@ -40,24 +39,31 @@ async def translate_and_evaluate(model, bcp_47, sentence_nr, mode="from"):
40
  original_sentence = flores_sentences(original_language)["text"][sentence_nr].strip()
41
  target_sentence = flores_sentences(target_language)["text"][sentence_nr].strip()
42
  script = script_name(target_language.flores_path.split("_")[1])
43
- prediction = await complete(
44
- model=model,
45
- messages=[
46
- {
47
- "role": "user",
48
- "content": f"Translate the following text to the {target_language.language_name} language; use the {script} script; reply only with the translation:\n\n{original_sentence}",
49
- }
50
- ],
51
- temperature=0,
52
- max_tokens=1024,
53
- )
 
 
 
 
 
54
  if prediction:
55
  bleu_score = bleu.compute(
56
  predictions=[prediction],
57
  references=[target_sentence],
58
  tokenizer=tokenizer.tokenize,
59
  )
60
- chrf_score = chrf.compute(predictions=[prediction], references=[target_sentence])
 
 
61
  else:
62
  bleu_score = {"bleu": 0}
63
  chrf_score = {"score": 0}
 
1
  import random
2
  from functools import partial
3
  from textwrap import dedent
 
4
  import evaluate
5
  import pandas as pd
6
  import sentencepiece as spm
 
8
  from datasets_.mgsm import load_mgsm, parse_number
9
  from datasets_.mmlu import load_mmlu
10
  from languages import languages, script_name
11
+ from models import complete, transcribe, translate_google
12
 
13
  bleu = evaluate.load("bleu")
14
  chrf = evaluate.load("chrf")
 
39
  original_sentence = flores_sentences(original_language)["text"][sentence_nr].strip()
40
  target_sentence = flores_sentences(target_language)["text"][sentence_nr].strip()
41
  script = script_name(target_language.flores_path.split("_")[1])
42
+ if model == "google/translate-v2":
43
+ prediction = await translate_google(
44
+ original_sentence, original_language.bcp_47, target_language.bcp_47
45
+ )
46
+ else:
47
+ prediction = await complete(
48
+ model=model,
49
+ messages=[
50
+ {
51
+ "role": "user",
52
+ "content": f"Translate the following text to the {target_language.language_name} language; use the {script} script; reply only with the translation:\n\n{original_sentence}",
53
+ }
54
+ ],
55
+ temperature=0,
56
+ max_tokens=1024,
57
+ )
58
  if prediction:
59
  bleu_score = bleu.compute(
60
  predictions=[prediction],
61
  references=[target_sentence],
62
  tokenizer=tokenizer.tokenize,
63
  )
64
+ chrf_score = chrf.compute(
65
+ predictions=[prediction], references=[target_sentence]
66
+ )
67
  else:
68
  bleu_score = {"bleu": 0}
69
  chrf_score = {"score": 0}
languages.json CHANGED
@@ -7,7 +7,7 @@
7
  "family":"Indo-European",
8
  "flores_path":"eng_Latn",
9
  "fleurs_tag":"en_us",
10
- "commonvoice_hours":2670.0,
11
  "commonvoice_locale":"en",
12
  "in_benchmark":true
13
  },
@@ -19,7 +19,7 @@
19
  "family":"Sino-Tibetan",
20
  "flores_path":"cmn_Hans",
21
  "fleurs_tag":"cmn_hans_cn",
22
- "commonvoice_hours":422.0,
23
  "commonvoice_locale":"zh-TW",
24
  "in_benchmark":true
25
  },
@@ -43,7 +43,7 @@
43
  "family":"Indo-European",
44
  "flores_path":"spa_Latn",
45
  "fleurs_tag":"es_419",
46
- "commonvoice_hours":447.0,
47
  "commonvoice_locale":"es",
48
  "in_benchmark":true
49
  },
@@ -79,7 +79,7 @@
79
  "family":"Indo-European",
80
  "flores_path":"fra_Latn",
81
  "fleurs_tag":"fr_fr",
82
- "commonvoice_hours":1063.0,
83
  "commonvoice_locale":"fr",
84
  "in_benchmark":true
85
  },
@@ -103,7 +103,7 @@
103
  "family":"Indo-European",
104
  "flores_path":"por_Latn",
105
  "fleurs_tag":"pt_br",
106
- "commonvoice_hours":179.0,
107
  "commonvoice_locale":"pt",
108
  "in_benchmark":true
109
  },
@@ -127,7 +127,7 @@
127
  "family":"Indo-European",
128
  "flores_path":"rus_Cyrl",
129
  "fleurs_tag":"ru_ru",
130
- "commonvoice_hours":244.0,
131
  "commonvoice_locale":"ru",
132
  "in_benchmark":true
133
  },
@@ -163,7 +163,7 @@
163
  "family":"Indo-European",
164
  "flores_path":"deu_Latn",
165
  "fleurs_tag":"de_de",
166
- "commonvoice_hours":1368.0,
167
  "commonvoice_locale":"de",
168
  "in_benchmark":true
169
  },
@@ -1183,7 +1183,7 @@
1183
  "family":"Indo-European",
1184
  "flores_path":"bel_Cyrl",
1185
  "fleurs_tag":"be_by",
1186
- "commonvoice_hours":1808.0,
1187
  "commonvoice_locale":"be",
1188
  "in_benchmark":true
1189
  },
@@ -1207,7 +1207,7 @@
1207
  "family":"Indo-European",
1208
  "flores_path":"tgk_Cyrl",
1209
  "fleurs_tag":"tg_tj",
1210
- "commonvoice_hours":0.2,
1211
  "commonvoice_locale":"tg",
1212
  "in_benchmark":true
1213
  },
@@ -1291,7 +1291,7 @@
1291
  "family":"Indo-European",
1292
  "flores_path":"cat_Latn",
1293
  "fleurs_tag":"ca_es",
1294
- "commonvoice_hours":2857.0,
1295
  "commonvoice_locale":"ca",
1296
  "in_benchmark":true
1297
  },
@@ -1375,7 +1375,7 @@
1375
  "family":"Turkic",
1376
  "flores_path":"uig_Arab",
1377
  "fleurs_tag":null,
1378
- "commonvoice_hours":379.0,
1379
  "commonvoice_locale":"ug",
1380
  "in_benchmark":true
1381
  },
@@ -1555,7 +1555,7 @@
1555
  "family":"Indo-European",
1556
  "flores_path":"slk_Latn",
1557
  "fleurs_tag":"sk_sk",
1558
- "commonvoice_hours":49.0,
1559
  "commonvoice_locale":"sk",
1560
  "in_benchmark":true
1561
  },
@@ -1675,7 +1675,7 @@
1675
  "family":"Tupian",
1676
  "flores_path":"gug_Latn",
1677
  "fleurs_tag":null,
1678
- "commonvoice_hours":3.8,
1679
  "commonvoice_locale":"gn",
1680
  "in_benchmark":true
1681
  },
@@ -1747,7 +1747,7 @@
1747
  "family":"Indo-European",
1748
  "flores_path":"nob_Latn",
1749
  "fleurs_tag":"nb_no",
1750
- "commonvoice_hours":0.3,
1751
  "commonvoice_locale":"nb-NO",
1752
  "in_benchmark":true
1753
  },
@@ -2167,7 +2167,7 @@
2167
  "family":"Indo-European",
2168
  "flores_path":"glg_Latn",
2169
  "fleurs_tag":"gl_es",
2170
- "commonvoice_hours":116.0,
2171
  "commonvoice_locale":"gl",
2172
  "in_benchmark":true
2173
  },
@@ -2827,8 +2827,8 @@
2827
  "family":"Sino-Tibetan",
2828
  "flores_path":"brx_Deva",
2829
  "fleurs_tag":null,
2830
- "commonvoice_hours":null,
2831
- "commonvoice_locale":null,
2832
  "in_benchmark":true
2833
  },
2834
  {
@@ -3019,7 +3019,7 @@
3019
  "family":"Indo-European",
3020
  "flores_path":"mkd_Cyrl",
3021
  "fleurs_tag":"mk_mk",
3022
- "commonvoice_hours":19.0,
3023
  "commonvoice_locale":"mk",
3024
  "in_benchmark":true
3025
  },
@@ -3331,7 +3331,7 @@
3331
  "family":"Indo-European",
3332
  "flores_path":"gle_Latn",
3333
  "fleurs_tag":"ga_ie",
3334
- "commonvoice_hours":7.0,
3335
  "commonvoice_locale":"ga-IE",
3336
  "in_benchmark":true
3337
  },
@@ -3535,7 +3535,7 @@
3535
  "family":null,
3536
  "flores_path":"eus_Latn",
3537
  "fleurs_tag":null,
3538
- "commonvoice_hours":412.0,
3539
  "commonvoice_locale":"eu",
3540
  "in_benchmark":true
3541
  },
@@ -3559,7 +3559,7 @@
3559
  "family":"Abkhaz-Adyge",
3560
  "flores_path":null,
3561
  "fleurs_tag":null,
3562
- "commonvoice_hours":69.0,
3563
  "commonvoice_locale":"kbd",
3564
  "in_benchmark":false
3565
  },
@@ -4411,7 +4411,7 @@
4411
  "family":"Indo-European",
4412
  "flores_path":null,
4413
  "fleurs_tag":null,
4414
- "commonvoice_hours":1.0,
4415
  "commonvoice_locale":"os",
4416
  "in_benchmark":false
4417
  },
@@ -4615,7 +4615,7 @@
4615
  "family":"Turkic",
4616
  "flores_path":null,
4617
  "fleurs_tag":null,
4618
- "commonvoice_hours":15.0,
4619
  "commonvoice_locale":"sah",
4620
  "in_benchmark":false
4621
  },
@@ -4651,7 +4651,7 @@
4651
  "family":"Abkhaz-Adyge",
4652
  "flores_path":null,
4653
  "fleurs_tag":null,
4654
- "commonvoice_hours":23.0,
4655
  "commonvoice_locale":"ady",
4656
  "in_benchmark":false
4657
  },
@@ -7051,7 +7051,7 @@
7051
  "family":"Indo-European",
7052
  "flores_path":null,
7053
  "fleurs_tag":null,
7054
- "commonvoice_hours":2.9,
7055
  "commonvoice_locale":"hsb",
7056
  "in_benchmark":false
7057
  },
@@ -7219,7 +7219,7 @@
7219
  "family":"Atlantic-Congo",
7220
  "flores_path":null,
7221
  "fleurs_tag":null,
7222
- "commonvoice_hours":0.0,
7223
  "commonvoice_locale":"nmg",
7224
  "in_benchmark":false
7225
  },
 
7
  "family":"Indo-European",
8
  "flores_path":"eng_Latn",
9
  "fleurs_tag":"en_us",
10
+ "commonvoice_hours":2673.0,
11
  "commonvoice_locale":"en",
12
  "in_benchmark":true
13
  },
 
19
  "family":"Sino-Tibetan",
20
  "flores_path":"cmn_Hans",
21
  "fleurs_tag":"cmn_hans_cn",
22
+ "commonvoice_hours":423.0,
23
  "commonvoice_locale":"zh-TW",
24
  "in_benchmark":true
25
  },
 
43
  "family":"Indo-European",
44
  "flores_path":"spa_Latn",
45
  "fleurs_tag":"es_419",
46
+ "commonvoice_hours":448.0,
47
  "commonvoice_locale":"es",
48
  "in_benchmark":true
49
  },
 
79
  "family":"Indo-European",
80
  "flores_path":"fra_Latn",
81
  "fleurs_tag":"fr_fr",
82
+ "commonvoice_hours":1064.0,
83
  "commonvoice_locale":"fr",
84
  "in_benchmark":true
85
  },
 
103
  "family":"Indo-European",
104
  "flores_path":"por_Latn",
105
  "fleurs_tag":"pt_br",
106
+ "commonvoice_hours":180.0,
107
  "commonvoice_locale":"pt",
108
  "in_benchmark":true
109
  },
 
127
  "family":"Indo-European",
128
  "flores_path":"rus_Cyrl",
129
  "fleurs_tag":"ru_ru",
130
+ "commonvoice_hours":245.0,
131
  "commonvoice_locale":"ru",
132
  "in_benchmark":true
133
  },
 
163
  "family":"Indo-European",
164
  "flores_path":"deu_Latn",
165
  "fleurs_tag":"de_de",
166
+ "commonvoice_hours":1369.0,
167
  "commonvoice_locale":"de",
168
  "in_benchmark":true
169
  },
 
1183
  "family":"Indo-European",
1184
  "flores_path":"bel_Cyrl",
1185
  "fleurs_tag":"be_by",
1186
+ "commonvoice_hours":1809.0,
1187
  "commonvoice_locale":"be",
1188
  "in_benchmark":true
1189
  },
 
1207
  "family":"Indo-European",
1208
  "flores_path":"tgk_Cyrl",
1209
  "fleurs_tag":"tg_tj",
1210
+ "commonvoice_hours":0.4,
1211
  "commonvoice_locale":"tg",
1212
  "in_benchmark":true
1213
  },
 
1291
  "family":"Indo-European",
1292
  "flores_path":"cat_Latn",
1293
  "fleurs_tag":"ca_es",
1294
+ "commonvoice_hours":2862.0,
1295
  "commonvoice_locale":"ca",
1296
  "in_benchmark":true
1297
  },
 
1375
  "family":"Turkic",
1376
  "flores_path":"uig_Arab",
1377
  "fleurs_tag":null,
1378
+ "commonvoice_hours":410.0,
1379
  "commonvoice_locale":"ug",
1380
  "in_benchmark":true
1381
  },
 
1555
  "family":"Indo-European",
1556
  "flores_path":"slk_Latn",
1557
  "fleurs_tag":"sk_sk",
1558
+ "commonvoice_hours":51.0,
1559
  "commonvoice_locale":"sk",
1560
  "in_benchmark":true
1561
  },
 
1675
  "family":"Tupian",
1676
  "flores_path":"gug_Latn",
1677
  "fleurs_tag":null,
1678
+ "commonvoice_hours":4.0,
1679
  "commonvoice_locale":"gn",
1680
  "in_benchmark":true
1681
  },
 
1747
  "family":"Indo-European",
1748
  "flores_path":"nob_Latn",
1749
  "fleurs_tag":"nb_no",
1750
+ "commonvoice_hours":0.4,
1751
  "commonvoice_locale":"nb-NO",
1752
  "in_benchmark":true
1753
  },
 
2167
  "family":"Indo-European",
2168
  "flores_path":"glg_Latn",
2169
  "fleurs_tag":"gl_es",
2170
+ "commonvoice_hours":117.0,
2171
  "commonvoice_locale":"gl",
2172
  "in_benchmark":true
2173
  },
 
2827
  "family":"Sino-Tibetan",
2828
  "flores_path":"brx_Deva",
2829
  "fleurs_tag":null,
2830
+ "commonvoice_hours":0.0,
2831
+ "commonvoice_locale":"brx",
2832
  "in_benchmark":true
2833
  },
2834
  {
 
3019
  "family":"Indo-European",
3020
  "flores_path":"mkd_Cyrl",
3021
  "fleurs_tag":"mk_mk",
3022
+ "commonvoice_hours":20.0,
3023
  "commonvoice_locale":"mk",
3024
  "in_benchmark":true
3025
  },
 
3331
  "family":"Indo-European",
3332
  "flores_path":"gle_Latn",
3333
  "fleurs_tag":"ga_ie",
3334
+ "commonvoice_hours":8.2,
3335
  "commonvoice_locale":"ga-IE",
3336
  "in_benchmark":true
3337
  },
 
3535
  "family":null,
3536
  "flores_path":"eus_Latn",
3537
  "fleurs_tag":null,
3538
+ "commonvoice_hours":438.0,
3539
  "commonvoice_locale":"eu",
3540
  "in_benchmark":true
3541
  },
 
3559
  "family":"Abkhaz-Adyge",
3560
  "flores_path":null,
3561
  "fleurs_tag":null,
3562
+ "commonvoice_hours":82.0,
3563
  "commonvoice_locale":"kbd",
3564
  "in_benchmark":false
3565
  },
 
4411
  "family":"Indo-European",
4412
  "flores_path":null,
4413
  "fleurs_tag":null,
4414
+ "commonvoice_hours":1.4,
4415
  "commonvoice_locale":"os",
4416
  "in_benchmark":false
4417
  },
 
4615
  "family":"Turkic",
4616
  "flores_path":null,
4617
  "fleurs_tag":null,
4618
+ "commonvoice_hours":16.0,
4619
  "commonvoice_locale":"sah",
4620
  "in_benchmark":false
4621
  },
 
4651
  "family":"Abkhaz-Adyge",
4652
  "flores_path":null,
4653
  "fleurs_tag":null,
4654
+ "commonvoice_hours":29.0,
4655
  "commonvoice_locale":"ady",
4656
  "in_benchmark":false
4657
  },
 
7051
  "family":"Indo-European",
7052
  "flores_path":null,
7053
  "fleurs_tag":null,
7054
+ "commonvoice_hours":3.0,
7055
  "commonvoice_locale":"hsb",
7056
  "in_benchmark":false
7057
  },
 
7219
  "family":"Atlantic-Congo",
7220
  "flores_path":null,
7221
  "fleurs_tag":null,
7222
+ "commonvoice_hours":11.0,
7223
  "commonvoice_locale":"nmg",
7224
  "in_benchmark":false
7225
  },
models.json CHANGED
@@ -8,7 +8,14 @@
8
  "size":null,
9
  "type":"closed-source",
10
  "license":null,
11
- "creation_date":1733356800000
 
 
 
 
 
 
 
12
  },
13
  {
14
  "id":"anthropic\/claude-3.5-sonnet",
@@ -19,7 +26,14 @@
19
  "size":null,
20
  "type":"closed-source",
21
  "license":null,
22
- "creation_date":1729555200000
 
 
 
 
 
 
 
23
  },
24
  {
25
  "id":"anthropic\/claude-3.7-sonnet",
@@ -30,7 +44,14 @@
30
  "size":null,
31
  "type":"closed-source",
32
  "license":null,
33
- "creation_date":1740355200000
 
 
 
 
 
 
 
34
  },
35
  {
36
  "id":"anthropic\/claude-sonnet-4",
@@ -41,7 +62,14 @@
41
  "size":null,
42
  "type":"closed-source",
43
  "license":null,
44
- "creation_date":1747872000000
 
 
 
 
 
 
 
45
  },
46
  {
47
  "id":"deepseek\/deepseek-chat",
@@ -52,7 +80,14 @@
52
  "size":684531386000.0,
53
  "type":"open-source",
54
  "license":"",
55
- "creation_date":1735084800000
 
 
 
 
 
 
 
56
  },
57
  {
58
  "id":"deepseek\/deepseek-chat-v3-0324",
@@ -63,7 +98,14 @@
63
  "size":684531386000.0,
64
  "type":"open-source",
65
  "license":"Mit",
66
- "creation_date":1742774400000
 
 
 
 
 
 
 
67
  },
68
  {
69
  "id":"deepseek\/deepseek-r1",
@@ -74,7 +116,14 @@
74
  "size":684531386000.0,
75
  "type":"open-source",
76
  "license":"Mit",
77
- "creation_date":1737331200000
 
 
 
 
 
 
 
78
  },
79
  {
80
  "id":"deepseek\/deepseek-r1-0528",
@@ -85,7 +134,8 @@
85
  "size":684531386000.0,
86
  "type":"open-source",
87
  "license":"Mit",
88
- "creation_date":1748390400000
 
89
  },
90
  {
91
  "id":"google\/gemini-2.0-flash-001",
@@ -96,7 +146,14 @@
96
  "size":null,
97
  "type":"closed-source",
98
  "license":null,
99
- "creation_date":1738713600000
 
 
 
 
 
 
 
100
  },
101
  {
102
  "id":"google\/gemini-2.0-flash-lite-001",
@@ -107,7 +164,50 @@
107
  "size":null,
108
  "type":"closed-source",
109
  "license":null,
110
- "creation_date":1740441600000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  },
112
  {
113
  "id":"google\/gemini-2.5-flash-preview",
@@ -118,7 +218,14 @@
118
  "size":null,
119
  "type":"closed-source",
120
  "license":null,
121
- "creation_date":1744848000000
 
 
 
 
 
 
 
122
  },
123
  {
124
  "id":"google\/gemini-2.5-flash-preview-05-20",
@@ -129,7 +236,50 @@
129
  "size":null,
130
  "type":"closed-source",
131
  "license":null,
132
- "creation_date":1747699200000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  },
134
  {
135
  "id":"google\/gemini-2.5-pro-preview-05-06",
@@ -140,7 +290,14 @@
140
  "size":null,
141
  "type":"closed-source",
142
  "license":null,
143
- "creation_date":1746576000000
 
 
 
 
 
 
 
144
  },
145
  {
146
  "id":"google\/gemini-flash-1.5",
@@ -151,7 +308,14 @@
151
  "size":null,
152
  "type":"closed-source",
153
  "license":null,
154
- "creation_date":1715644800000
 
 
 
 
 
 
 
155
  },
156
  {
157
  "id":"google\/gemini-flash-1.5-8b",
@@ -162,7 +326,14 @@
162
  "size":null,
163
  "type":"closed-source",
164
  "license":null,
165
- "creation_date":1727913600000
 
 
 
 
 
 
 
166
  },
167
  {
168
  "id":"google\/gemma-3-27b-it",
@@ -173,7 +344,29 @@
173
  "size":27432406640.0,
174
  "type":"open-source",
175
  "license":"Gemma",
176
- "creation_date":1740787200000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  },
178
  {
179
  "id":"gryphe\/mythomax-l2-13b",
@@ -184,7 +377,14 @@
184
  "size":null,
185
  "type":"open-source",
186
  "license":"Other",
187
- "creation_date":1691625600000
 
 
 
 
 
 
 
188
  },
189
  {
190
  "id":"meta-llama\/llama-3-70b-instruct",
@@ -195,7 +395,14 @@
195
  "size":70553706496.0,
196
  "type":"open-source",
197
  "license":"Llama3",
198
- "creation_date":1713312000000
 
 
 
 
 
 
 
199
  },
200
  {
201
  "id":"meta-llama\/llama-3.1-70b-instruct",
@@ -206,7 +413,14 @@
206
  "size":70553706496.0,
207
  "type":"open-source",
208
  "license":"Llama3.1",
209
- "creation_date":1721088000000
 
 
 
 
 
 
 
210
  },
211
  {
212
  "id":"meta-llama\/llama-3.1-8b-instruct",
@@ -217,7 +431,8 @@
217
  "size":8030261248.0,
218
  "type":"open-source",
219
  "license":"Llama3.1",
220
- "creation_date":1721260800000
 
221
  },
222
  {
223
  "id":"meta-llama\/llama-3.2-1b-instruct",
@@ -228,7 +443,8 @@
228
  "size":1235814400.0,
229
  "type":"open-source",
230
  "license":"Llama3.2",
231
- "creation_date":1726617600000
 
232
  },
233
  {
234
  "id":"meta-llama\/llama-3.3-70b-instruct",
@@ -239,7 +455,14 @@
239
  "size":70553706496.0,
240
  "type":"open-source",
241
  "license":"Llama3.3",
242
- "creation_date":1732579200000
 
 
 
 
 
 
 
243
  },
244
  {
245
  "id":"meta-llama\/llama-4-maverick",
@@ -250,7 +473,14 @@
250
  "size":401583781376.0,
251
  "type":"open-source",
252
  "license":"Other",
253
- "creation_date":1743465600000
 
 
 
 
 
 
 
254
  },
255
  {
256
  "id":"microsoft\/phi-4",
@@ -261,7 +491,14 @@
261
  "size":14659507200.0,
262
  "type":"open-source",
263
  "license":"Mit",
264
- "creation_date":1733875200000
 
 
 
 
 
 
 
265
  },
266
  {
267
  "id":"microsoft\/phi-4-multimodal-instruct",
@@ -272,7 +509,14 @@
272
  "size":5574460384.0,
273
  "type":"open-source",
274
  "license":"Mit",
275
- "creation_date":1740355200000
 
 
 
 
 
 
 
276
  },
277
  {
278
  "id":"mistralai\/mistral-nemo",
@@ -283,7 +527,14 @@
283
  "size":12247782400.0,
284
  "type":"open-source",
285
  "license":"Apache 2.0",
286
- "creation_date":1721174400000
 
 
 
 
 
 
 
287
  },
288
  {
289
  "id":"mistralai\/mistral-saba",
@@ -294,7 +545,14 @@
294
  "size":null,
295
  "type":"closed-source",
296
  "license":null,
297
- "creation_date":1739750400000
 
 
 
 
 
 
 
298
  },
299
  {
300
  "id":"mistralai\/mistral-small-3.1-24b-instruct",
@@ -305,7 +563,14 @@
305
  "size":24011361280.0,
306
  "type":"open-source",
307
  "license":"Apache 2.0",
308
- "creation_date":1741651200000
 
 
 
 
 
 
 
309
  },
310
  {
311
  "id":"openai\/gpt-4.1",
@@ -316,7 +581,8 @@
316
  "size":null,
317
  "type":"closed-source",
318
  "license":null,
319
- "creation_date":1744588800000
 
320
  },
321
  {
322
  "id":"openai\/gpt-4.1-mini",
@@ -327,7 +593,14 @@
327
  "size":null,
328
  "type":"closed-source",
329
  "license":null,
330
- "creation_date":1744588800000
 
 
 
 
 
 
 
331
  },
332
  {
333
  "id":"openai\/gpt-4.1-nano",
@@ -338,7 +611,14 @@
338
  "size":null,
339
  "type":"closed-source",
340
  "license":null,
341
- "creation_date":1744588800000
 
 
 
 
 
 
 
342
  },
343
  {
344
  "id":"openai\/gpt-4o-mini",
@@ -349,6 +629,13 @@
349
  "size":null,
350
  "type":"closed-source",
351
  "license":null,
352
- "creation_date":1721260800000
 
 
 
 
 
 
 
353
  }
354
  ]
 
8
  "size":null,
9
  "type":"closed-source",
10
  "license":null,
11
+ "creation_date":1733356800000,
12
+ "tasks":[
13
+ "translation_from",
14
+ "translation_to",
15
+ "classification",
16
+ "mmlu",
17
+ "mgsm"
18
+ ]
19
  },
20
  {
21
  "id":"anthropic\/claude-3.5-sonnet",
 
26
  "size":null,
27
  "type":"closed-source",
28
  "license":null,
29
+ "creation_date":1729555200000,
30
+ "tasks":[
31
+ "translation_from",
32
+ "translation_to",
33
+ "classification",
34
+ "mmlu",
35
+ "mgsm"
36
+ ]
37
  },
38
  {
39
  "id":"anthropic\/claude-3.7-sonnet",
 
44
  "size":null,
45
  "type":"closed-source",
46
  "license":null,
47
+ "creation_date":1740355200000,
48
+ "tasks":[
49
+ "translation_from",
50
+ "translation_to",
51
+ "classification",
52
+ "mmlu",
53
+ "mgsm"
54
+ ]
55
  },
56
  {
57
  "id":"anthropic\/claude-sonnet-4",
 
62
  "size":null,
63
  "type":"closed-source",
64
  "license":null,
65
+ "creation_date":1747872000000,
66
+ "tasks":[
67
+ "translation_from",
68
+ "translation_to",
69
+ "classification",
70
+ "mmlu",
71
+ "mgsm"
72
+ ]
73
  },
74
  {
75
  "id":"deepseek\/deepseek-chat",
 
80
  "size":684531386000.0,
81
  "type":"open-source",
82
  "license":"",
83
+ "creation_date":1735084800000,
84
+ "tasks":[
85
+ "translation_from",
86
+ "translation_to",
87
+ "classification",
88
+ "mmlu",
89
+ "mgsm"
90
+ ]
91
  },
92
  {
93
  "id":"deepseek\/deepseek-chat-v3-0324",
 
98
  "size":684531386000.0,
99
  "type":"open-source",
100
  "license":"Mit",
101
+ "creation_date":1742774400000,
102
+ "tasks":[
103
+ "translation_from",
104
+ "translation_to",
105
+ "classification",
106
+ "mmlu",
107
+ "mgsm"
108
+ ]
109
  },
110
  {
111
  "id":"deepseek\/deepseek-r1",
 
116
  "size":684531386000.0,
117
  "type":"open-source",
118
  "license":"Mit",
119
+ "creation_date":1737331200000,
120
+ "tasks":[
121
+ "translation_from",
122
+ "translation_to",
123
+ "classification",
124
+ "mmlu",
125
+ "mgsm"
126
+ ]
127
  },
128
  {
129
  "id":"deepseek\/deepseek-r1-0528",
 
134
  "size":684531386000.0,
135
  "type":"open-source",
136
  "license":"Mit",
137
+ "creation_date":1748390400000.0,
138
+ "tasks":null
139
  },
140
  {
141
  "id":"google\/gemini-2.0-flash-001",
 
146
  "size":null,
147
  "type":"closed-source",
148
  "license":null,
149
+ "creation_date":1738713600000,
150
+ "tasks":[
151
+ "translation_from",
152
+ "translation_to",
153
+ "classification",
154
+ "mmlu",
155
+ "mgsm"
156
+ ]
157
  },
158
  {
159
  "id":"google\/gemini-2.0-flash-lite-001",
 
164
  "size":null,
165
  "type":"closed-source",
166
  "license":null,
167
+ "creation_date":1740441600000,
168
+ "tasks":[
169
+ "translation_from",
170
+ "translation_to",
171
+ "classification",
172
+ "mmlu",
173
+ "mgsm"
174
+ ]
175
+ },
176
+ {
177
+ "id":"google\/gemini-2.5-flash",
178
+ "name":"Gemini 2.5 Flash",
179
+ "provider_name":"Google",
180
+ "cost":2.5,
181
+ "hf_id":null,
182
+ "size":null,
183
+ "type":"closed-source",
184
+ "license":null,
185
+ "creation_date":1750118400000,
186
+ "tasks":[
187
+ "translation_from",
188
+ "translation_to",
189
+ "classification",
190
+ "mmlu",
191
+ "mgsm"
192
+ ]
193
+ },
194
+ {
195
+ "id":"google\/gemini-2.5-flash-lite-preview-06-17",
196
+ "name":"Gemini 2.5 Flash Lite Preview 06-17",
197
+ "provider_name":"Google",
198
+ "cost":0.4,
199
+ "hf_id":null,
200
+ "size":null,
201
+ "type":"closed-source",
202
+ "license":null,
203
+ "creation_date":1750118400000,
204
+ "tasks":[
205
+ "translation_from",
206
+ "translation_to",
207
+ "classification",
208
+ "mmlu",
209
+ "mgsm"
210
+ ]
211
  },
212
  {
213
  "id":"google\/gemini-2.5-flash-preview",
 
218
  "size":null,
219
  "type":"closed-source",
220
  "license":null,
221
+ "creation_date":1744848000000,
222
+ "tasks":[
223
+ "translation_from",
224
+ "translation_to",
225
+ "classification",
226
+ "mmlu",
227
+ "mgsm"
228
+ ]
229
  },
230
  {
231
  "id":"google\/gemini-2.5-flash-preview-05-20",
 
236
  "size":null,
237
  "type":"closed-source",
238
  "license":null,
239
+ "creation_date":1747699200000,
240
+ "tasks":[
241
+ "translation_from",
242
+ "translation_to",
243
+ "classification",
244
+ "mmlu",
245
+ "mgsm"
246
+ ]
247
+ },
248
+ {
249
+ "id":"google\/gemini-2.5-pro",
250
+ "name":"Gemini 2.5 Pro",
251
+ "provider_name":"Google",
252
+ "cost":10.0,
253
+ "hf_id":null,
254
+ "size":null,
255
+ "type":"closed-source",
256
+ "license":null,
257
+ "creation_date":1750118400000.0,
258
+ "tasks":[
259
+ "translation_from",
260
+ "translation_to",
261
+ "classification",
262
+ "mmlu",
263
+ "mgsm"
264
+ ]
265
+ },
266
+ {
267
+ "id":"google\/gemini-2.5-pro-preview",
268
+ "name":"Gemini 2.5 Pro Preview 06-05",
269
+ "provider_name":"Google",
270
+ "cost":10.0,
271
+ "hf_id":null,
272
+ "size":null,
273
+ "type":"closed-source",
274
+ "license":null,
275
+ "creation_date":1749081600000.0,
276
+ "tasks":[
277
+ "translation_from",
278
+ "translation_to",
279
+ "classification",
280
+ "mmlu",
281
+ "mgsm"
282
+ ]
283
  },
284
  {
285
  "id":"google\/gemini-2.5-pro-preview-05-06",
 
290
  "size":null,
291
  "type":"closed-source",
292
  "license":null,
293
+ "creation_date":1746576000000,
294
+ "tasks":[
295
+ "translation_from",
296
+ "translation_to",
297
+ "classification",
298
+ "mmlu",
299
+ "mgsm"
300
+ ]
301
  },
302
  {
303
  "id":"google\/gemini-flash-1.5",
 
308
  "size":null,
309
  "type":"closed-source",
310
  "license":null,
311
+ "creation_date":1715644800000,
312
+ "tasks":[
313
+ "translation_from",
314
+ "translation_to",
315
+ "classification",
316
+ "mmlu",
317
+ "mgsm"
318
+ ]
319
  },
320
  {
321
  "id":"google\/gemini-flash-1.5-8b",
 
326
  "size":null,
327
  "type":"closed-source",
328
  "license":null,
329
+ "creation_date":1727913600000,
330
+ "tasks":[
331
+ "translation_from",
332
+ "translation_to",
333
+ "classification",
334
+ "mmlu",
335
+ "mgsm"
336
+ ]
337
  },
338
  {
339
  "id":"google\/gemma-3-27b-it",
 
344
  "size":27432406640.0,
345
  "type":"open-source",
346
  "license":"Gemma",
347
+ "creation_date":1740787200000,
348
+ "tasks":[
349
+ "translation_from",
350
+ "translation_to",
351
+ "classification",
352
+ "mmlu",
353
+ "mgsm"
354
+ ]
355
+ },
356
+ {
357
+ "id":"google\/translate-v2",
358
+ "name":"Google Translate",
359
+ "provider_name":"Google",
360
+ "cost":20.0,
361
+ "hf_id":null,
362
+ "size":null,
363
+ "type":"closed-source",
364
+ "license":null,
365
+ "creation_date":null,
366
+ "tasks":[
367
+ "translation_from",
368
+ "translation_to"
369
+ ]
370
  },
371
  {
372
  "id":"gryphe\/mythomax-l2-13b",
 
377
  "size":null,
378
  "type":"open-source",
379
  "license":"Other",
380
+ "creation_date":1691625600000,
381
+ "tasks":[
382
+ "translation_from",
383
+ "translation_to",
384
+ "classification",
385
+ "mmlu",
386
+ "mgsm"
387
+ ]
388
  },
389
  {
390
  "id":"meta-llama\/llama-3-70b-instruct",
 
395
  "size":70553706496.0,
396
  "type":"open-source",
397
  "license":"Llama3",
398
+ "creation_date":1713312000000,
399
+ "tasks":[
400
+ "translation_from",
401
+ "translation_to",
402
+ "classification",
403
+ "mmlu",
404
+ "mgsm"
405
+ ]
406
  },
407
  {
408
  "id":"meta-llama\/llama-3.1-70b-instruct",
 
413
  "size":70553706496.0,
414
  "type":"open-source",
415
  "license":"Llama3.1",
416
+ "creation_date":1721088000000,
417
+ "tasks":[
418
+ "translation_from",
419
+ "translation_to",
420
+ "classification",
421
+ "mmlu",
422
+ "mgsm"
423
+ ]
424
  },
425
  {
426
  "id":"meta-llama\/llama-3.1-8b-instruct",
 
431
  "size":8030261248.0,
432
  "type":"open-source",
433
  "license":"Llama3.1",
434
+ "creation_date":1721260800000.0,
435
+ "tasks":null
436
  },
437
  {
438
  "id":"meta-llama\/llama-3.2-1b-instruct",
 
443
  "size":1235814400.0,
444
  "type":"open-source",
445
  "license":"Llama3.2",
446
+ "creation_date":1726617600000.0,
447
+ "tasks":null
448
  },
449
  {
450
  "id":"meta-llama\/llama-3.3-70b-instruct",
 
455
  "size":70553706496.0,
456
  "type":"open-source",
457
  "license":"Llama3.3",
458
+ "creation_date":1732579200000,
459
+ "tasks":[
460
+ "translation_from",
461
+ "translation_to",
462
+ "classification",
463
+ "mmlu",
464
+ "mgsm"
465
+ ]
466
  },
467
  {
468
  "id":"meta-llama\/llama-4-maverick",
 
473
  "size":401583781376.0,
474
  "type":"open-source",
475
  "license":"Other",
476
+ "creation_date":1743465600000,
477
+ "tasks":[
478
+ "translation_from",
479
+ "translation_to",
480
+ "classification",
481
+ "mmlu",
482
+ "mgsm"
483
+ ]
484
  },
485
  {
486
  "id":"microsoft\/phi-4",
 
491
  "size":14659507200.0,
492
  "type":"open-source",
493
  "license":"Mit",
494
+ "creation_date":1733875200000,
495
+ "tasks":[
496
+ "translation_from",
497
+ "translation_to",
498
+ "classification",
499
+ "mmlu",
500
+ "mgsm"
501
+ ]
502
  },
503
  {
504
  "id":"microsoft\/phi-4-multimodal-instruct",
 
509
  "size":5574460384.0,
510
  "type":"open-source",
511
  "license":"Mit",
512
+ "creation_date":1740355200000,
513
+ "tasks":[
514
+ "translation_from",
515
+ "translation_to",
516
+ "classification",
517
+ "mmlu",
518
+ "mgsm"
519
+ ]
520
  },
521
  {
522
  "id":"mistralai\/mistral-nemo",
 
527
  "size":12247782400.0,
528
  "type":"open-source",
529
  "license":"Apache 2.0",
530
+ "creation_date":1721174400000,
531
+ "tasks":[
532
+ "translation_from",
533
+ "translation_to",
534
+ "classification",
535
+ "mmlu",
536
+ "mgsm"
537
+ ]
538
  },
539
  {
540
  "id":"mistralai\/mistral-saba",
 
545
  "size":null,
546
  "type":"closed-source",
547
  "license":null,
548
+ "creation_date":1739750400000,
549
+ "tasks":[
550
+ "translation_from",
551
+ "translation_to",
552
+ "classification",
553
+ "mmlu",
554
+ "mgsm"
555
+ ]
556
  },
557
  {
558
  "id":"mistralai\/mistral-small-3.1-24b-instruct",
 
563
  "size":24011361280.0,
564
  "type":"open-source",
565
  "license":"Apache 2.0",
566
+ "creation_date":1741651200000,
567
+ "tasks":[
568
+ "translation_from",
569
+ "translation_to",
570
+ "classification",
571
+ "mmlu",
572
+ "mgsm"
573
+ ]
574
  },
575
  {
576
  "id":"openai\/gpt-4.1",
 
581
  "size":null,
582
  "type":"closed-source",
583
  "license":null,
584
+ "creation_date":1744588800000.0,
585
+ "tasks":null
586
  },
587
  {
588
  "id":"openai\/gpt-4.1-mini",
 
593
  "size":null,
594
  "type":"closed-source",
595
  "license":null,
596
+ "creation_date":1744588800000,
597
+ "tasks":[
598
+ "translation_from",
599
+ "translation_to",
600
+ "classification",
601
+ "mmlu",
602
+ "mgsm"
603
+ ]
604
  },
605
  {
606
  "id":"openai\/gpt-4.1-nano",
 
611
  "size":null,
612
  "type":"closed-source",
613
  "license":null,
614
+ "creation_date":1744588800000,
615
+ "tasks":[
616
+ "translation_from",
617
+ "translation_to",
618
+ "classification",
619
+ "mmlu",
620
+ "mgsm"
621
+ ]
622
  },
623
  {
624
  "id":"openai\/gpt-4o-mini",
 
629
  "size":null,
630
  "type":"closed-source",
631
  "license":null,
632
+ "creation_date":1721260800000,
633
+ "tasks":[
634
+ "translation_from",
635
+ "translation_to",
636
+ "classification",
637
+ "mmlu",
638
+ "mgsm"
639
+ ]
640
  }
641
  ]
pyproject.toml CHANGED
@@ -20,6 +20,7 @@ dev = [
20
  "datasets>=3.6.0",
21
  "elevenlabs>=1.58.1",
22
  "evaluate>=0.4.3",
 
23
  "huggingface-hub>=0.31.1",
24
  "jiwer>=3.1.0",
25
  "joblib>=1.5.0",
 
20
  "datasets>=3.6.0",
21
  "elevenlabs>=1.58.1",
22
  "evaluate>=0.4.3",
23
+ "google-cloud-translate>=3.21.0",
24
  "huggingface-hub>=0.31.1",
25
  "jiwer>=3.1.0",
26
  "joblib>=1.5.0",
results.json CHANGED
The diff for this file is too large to render. See raw diff
 
uv.lock CHANGED
@@ -1,6 +1,10 @@
1
  version = 1
2
  revision = 2
3
  requires-python = ">=3.12"
 
 
 
 
4
 
5
  [[package]]
6
  name = "aiohappyeyeballs"
@@ -132,6 +136,15 @@ wheels = [
132
  { url = "https://files.pythonhosted.org/packages/c6/8c/bc5457de4c004b1a623b31f7bc8d0375fb699b7d67df11879098b4b7b7c8/bert_score-0.3.13-py3-none-any.whl", hash = "sha256:bbbb4c7fcdaa46d7681aff49f37f96faa09ed74e1b150e659bdc6b58a66989b9", size = 61135, upload-time = "2023-02-20T21:07:27.226Z" },
133
  ]
134
 
 
 
 
 
 
 
 
 
 
135
  [[package]]
136
  name = "certifi"
137
  version = "2025.4.26"
@@ -450,6 +463,145 @@ http = [
450
  { name = "aiohttp" },
451
  ]
452
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
453
  [[package]]
454
  name = "h11"
455
  version = "0.16.0"
@@ -694,6 +846,7 @@ dev = [
694
  { name = "datasets" },
695
  { name = "elevenlabs" },
696
  { name = "evaluate" },
 
697
  { name = "huggingface-hub" },
698
  { name = "jiwer" },
699
  { name = "joblib" },
@@ -718,6 +871,7 @@ requires-dist = [
718
  { name = "elevenlabs", marker = "extra == 'dev'", specifier = ">=1.58.1" },
719
  { name = "evaluate", marker = "extra == 'dev'", specifier = ">=0.4.3" },
720
  { name = "fastapi", specifier = ">=0.115.12" },
 
721
  { name = "huggingface-hub", marker = "extra == 'dev'", specifier = ">=0.31.1" },
722
  { name = "jiwer", marker = "extra == 'dev'", specifier = ">=3.1.0" },
723
  { name = "joblib", specifier = ">=1.5.0" },
@@ -1348,6 +1502,18 @@ wheels = [
1348
  { url = "https://files.pythonhosted.org/packages/b8/d3/c3cb8f1d6ae3b37f83e1de806713a9b3642c5895f0215a62e1a4bd6e5e34/propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40", size = 12376, upload-time = "2025-03-26T03:06:10.5Z" },
1349
  ]
1350
 
 
 
 
 
 
 
 
 
 
 
 
 
1351
  [[package]]
1352
  name = "protobuf"
1353
  version = "6.30.2"
@@ -1397,6 +1563,27 @@ wheels = [
1397
  { url = "https://files.pythonhosted.org/packages/37/40/ad395740cd641869a13bcf60851296c89624662575621968dcfafabaa7f6/pyarrow-20.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:82f1ee5133bd8f49d31be1299dc07f585136679666b502540db854968576faf9", size = 25944982, upload-time = "2025-04-27T12:33:04.72Z" },
1398
  ]
1399
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1400
  [[package]]
1401
  name = "pydantic"
1402
  version = "2.11.4"
@@ -1645,6 +1832,18 @@ wheels = [
1645
  { url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229, upload-time = "2025-03-30T14:15:12.283Z" },
1646
  ]
1647
 
 
 
 
 
 
 
 
 
 
 
 
 
1648
  [[package]]
1649
  name = "sacrebleu"
1650
  version = "2.5.1"
 
1
  version = 1
2
  revision = 2
3
  requires-python = ">=3.12"
4
+ resolution-markers = [
5
+ "python_full_version >= '3.13'",
6
+ "python_full_version < '3.13'",
7
+ ]
8
 
9
  [[package]]
10
  name = "aiohappyeyeballs"
 
136
  { url = "https://files.pythonhosted.org/packages/c6/8c/bc5457de4c004b1a623b31f7bc8d0375fb699b7d67df11879098b4b7b7c8/bert_score-0.3.13-py3-none-any.whl", hash = "sha256:bbbb4c7fcdaa46d7681aff49f37f96faa09ed74e1b150e659bdc6b58a66989b9", size = 61135, upload-time = "2023-02-20T21:07:27.226Z" },
137
  ]
138
 
139
+ [[package]]
140
+ name = "cachetools"
141
+ version = "5.5.2"
142
+ source = { registry = "https://pypi.org/simple" }
143
+ sdist = { url = "https://files.pythonhosted.org/packages/6c/81/3747dad6b14fa2cf53fcf10548cf5aea6913e96fab41a3c198676f8948a5/cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4", size = 28380, upload-time = "2025-02-20T21:01:19.524Z" }
144
+ wheels = [
145
+ { url = "https://files.pythonhosted.org/packages/72/76/20fa66124dbe6be5cafeb312ece67de6b61dd91a0247d1ea13db4ebb33c2/cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a", size = 10080, upload-time = "2025-02-20T21:01:16.647Z" },
146
+ ]
147
+
148
  [[package]]
149
  name = "certifi"
150
  version = "2025.4.26"
 
463
  { name = "aiohttp" },
464
  ]
465
 
466
+ [[package]]
467
+ name = "google-api-core"
468
+ version = "2.25.1"
469
+ source = { registry = "https://pypi.org/simple" }
470
+ dependencies = [
471
+ { name = "google-auth" },
472
+ { name = "googleapis-common-protos" },
473
+ { name = "proto-plus" },
474
+ { name = "protobuf" },
475
+ { name = "requests" },
476
+ ]
477
+ sdist = { url = "https://files.pythonhosted.org/packages/dc/21/e9d043e88222317afdbdb567165fdbc3b0aad90064c7e0c9eb0ad9955ad8/google_api_core-2.25.1.tar.gz", hash = "sha256:d2aaa0b13c78c61cb3f4282c464c046e45fbd75755683c9c525e6e8f7ed0a5e8", size = 165443, upload-time = "2025-06-12T20:52:20.439Z" }
478
+ wheels = [
479
+ { url = "https://files.pythonhosted.org/packages/14/4b/ead00905132820b623732b175d66354e9d3e69fcf2a5dcdab780664e7896/google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7", size = 160807, upload-time = "2025-06-12T20:52:19.334Z" },
480
+ ]
481
+
482
+ [package.optional-dependencies]
483
+ grpc = [
484
+ { name = "grpcio" },
485
+ { name = "grpcio-status" },
486
+ ]
487
+
488
+ [[package]]
489
+ name = "google-auth"
490
+ version = "2.40.3"
491
+ source = { registry = "https://pypi.org/simple" }
492
+ dependencies = [
493
+ { name = "cachetools" },
494
+ { name = "pyasn1-modules" },
495
+ { name = "rsa" },
496
+ ]
497
+ sdist = { url = "https://files.pythonhosted.org/packages/9e/9b/e92ef23b84fa10a64ce4831390b7a4c2e53c0132568d99d4ae61d04c8855/google_auth-2.40.3.tar.gz", hash = "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77", size = 281029, upload-time = "2025-06-04T18:04:57.577Z" }
498
+ wheels = [
499
+ { url = "https://files.pythonhosted.org/packages/17/63/b19553b658a1692443c62bd07e5868adaa0ad746a0751ba62c59568cd45b/google_auth-2.40.3-py2.py3-none-any.whl", hash = "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca", size = 216137, upload-time = "2025-06-04T18:04:55.573Z" },
500
+ ]
501
+
502
+ [[package]]
503
+ name = "google-cloud-core"
504
+ version = "2.4.3"
505
+ source = { registry = "https://pypi.org/simple" }
506
+ dependencies = [
507
+ { name = "google-api-core" },
508
+ { name = "google-auth" },
509
+ ]
510
+ sdist = { url = "https://files.pythonhosted.org/packages/d6/b8/2b53838d2acd6ec6168fd284a990c76695e84c65deee79c9f3a4276f6b4f/google_cloud_core-2.4.3.tar.gz", hash = "sha256:1fab62d7102844b278fe6dead3af32408b1df3eb06f5c7e8634cbd40edc4da53", size = 35861, upload-time = "2025-03-10T21:05:38.948Z" }
511
+ wheels = [
512
+ { url = "https://files.pythonhosted.org/packages/40/86/bda7241a8da2d28a754aad2ba0f6776e35b67e37c36ae0c45d49370f1014/google_cloud_core-2.4.3-py2.py3-none-any.whl", hash = "sha256:5130f9f4c14b4fafdff75c79448f9495cfade0d8775facf1b09c3bf67e027f6e", size = 29348, upload-time = "2025-03-10T21:05:37.785Z" },
513
+ ]
514
+
515
+ [[package]]
516
+ name = "google-cloud-translate"
517
+ version = "3.21.0"
518
+ source = { registry = "https://pypi.org/simple" }
519
+ dependencies = [
520
+ { name = "google-api-core", extra = ["grpc"] },
521
+ { name = "google-auth" },
522
+ { name = "google-cloud-core" },
523
+ { name = "grpc-google-iam-v1" },
524
+ { name = "proto-plus" },
525
+ { name = "protobuf" },
526
+ ]
527
+ sdist = { url = "https://files.pythonhosted.org/packages/7b/cd/409ddbdc7b0c83f858e033f11e3a9d65231bac4e244071373d39fe53caf3/google_cloud_translate-3.21.0.tar.gz", hash = "sha256:94a91f075d039caad33978fa7fc432a9e71c422ec1678a264cbd265c2fc06dfb", size = 265935, upload-time = "2025-06-25T12:23:26.589Z" }
528
+ wheels = [
529
+ { url = "https://files.pythonhosted.org/packages/ce/de/f7fd71d21209bb5ca194472953d35d2a82618c986038f76d893caa8cb735/google_cloud_translate-3.21.0-py3-none-any.whl", hash = "sha256:6a297cda2ca5ba28a8c9a29087610edfe640896016512760a8ae577b774ac6b2", size = 204141, upload-time = "2025-06-25T12:23:25.449Z" },
530
+ ]
531
+
532
+ [[package]]
533
+ name = "googleapis-common-protos"
534
+ version = "1.70.0"
535
+ source = { registry = "https://pypi.org/simple" }
536
+ dependencies = [
537
+ { name = "protobuf" },
538
+ ]
539
+ sdist = { url = "https://files.pythonhosted.org/packages/39/24/33db22342cf4a2ea27c9955e6713140fedd51e8b141b5ce5260897020f1a/googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257", size = 145903, upload-time = "2025-04-14T10:17:02.924Z" }
540
+ wheels = [
541
+ { url = "https://files.pythonhosted.org/packages/86/f1/62a193f0227cf15a920390abe675f386dec35f7ae3ffe6da582d3ade42c7/googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8", size = 294530, upload-time = "2025-04-14T10:17:01.271Z" },
542
+ ]
543
+
544
+ [package.optional-dependencies]
545
+ grpc = [
546
+ { name = "grpcio" },
547
+ ]
548
+
549
+ [[package]]
550
+ name = "grpc-google-iam-v1"
551
+ version = "0.14.2"
552
+ source = { registry = "https://pypi.org/simple" }
553
+ dependencies = [
554
+ { name = "googleapis-common-protos", extra = ["grpc"] },
555
+ { name = "grpcio" },
556
+ { name = "protobuf" },
557
+ ]
558
+ sdist = { url = "https://files.pythonhosted.org/packages/b9/4e/8d0ca3b035e41fe0b3f31ebbb638356af720335e5a11154c330169b40777/grpc_google_iam_v1-0.14.2.tar.gz", hash = "sha256:b3e1fc387a1a329e41672197d0ace9de22c78dd7d215048c4c78712073f7bd20", size = 16259, upload-time = "2025-03-17T11:40:23.586Z" }
559
+ wheels = [
560
+ { url = "https://files.pythonhosted.org/packages/66/6f/dd9b178aee7835b96c2e63715aba6516a9d50f6bebbd1cc1d32c82a2a6c3/grpc_google_iam_v1-0.14.2-py3-none-any.whl", hash = "sha256:a3171468459770907926d56a440b2bb643eec1d7ba215f48f3ecece42b4d8351", size = 19242, upload-time = "2025-03-17T11:40:22.648Z" },
561
+ ]
562
+
563
+ [[package]]
564
+ name = "grpcio"
565
+ version = "1.73.1"
566
+ source = { registry = "https://pypi.org/simple" }
567
+ sdist = { url = "https://files.pythonhosted.org/packages/79/e8/b43b851537da2e2f03fa8be1aef207e5cbfb1a2e014fbb6b40d24c177cd3/grpcio-1.73.1.tar.gz", hash = "sha256:7fce2cd1c0c1116cf3850564ebfc3264fba75d3c74a7414373f1238ea365ef87", size = 12730355, upload-time = "2025-06-26T01:53:24.622Z" }
568
+ wheels = [
569
+ { url = "https://files.pythonhosted.org/packages/b8/41/456caf570c55d5ac26f4c1f2db1f2ac1467d5bf3bcd660cba3e0a25b195f/grpcio-1.73.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:921b25618b084e75d424a9f8e6403bfeb7abef074bb6c3174701e0f2542debcf", size = 5334621, upload-time = "2025-06-26T01:52:23.602Z" },
570
+ { url = "https://files.pythonhosted.org/packages/2a/c2/9a15e179e49f235bb5e63b01590658c03747a43c9775e20c4e13ca04f4c4/grpcio-1.73.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:277b426a0ed341e8447fbf6c1d6b68c952adddf585ea4685aa563de0f03df887", size = 10601131, upload-time = "2025-06-26T01:52:25.691Z" },
571
+ { url = "https://files.pythonhosted.org/packages/0c/1d/1d39e90ef6348a0964caa7c5c4d05f3bae2c51ab429eb7d2e21198ac9b6d/grpcio-1.73.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:96c112333309493c10e118d92f04594f9055774757f5d101b39f8150f8c25582", size = 5759268, upload-time = "2025-06-26T01:52:27.631Z" },
572
+ { url = "https://files.pythonhosted.org/packages/8a/2b/2dfe9ae43de75616177bc576df4c36d6401e0959833b2e5b2d58d50c1f6b/grpcio-1.73.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f48e862aed925ae987eb7084409a80985de75243389dc9d9c271dd711e589918", size = 6409791, upload-time = "2025-06-26T01:52:29.711Z" },
573
+ { url = "https://files.pythonhosted.org/packages/6e/66/e8fe779b23b5a26d1b6949e5c70bc0a5fd08f61a6ec5ac7760d589229511/grpcio-1.73.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83a6c2cce218e28f5040429835fa34a29319071079e3169f9543c3fbeff166d2", size = 6003728, upload-time = "2025-06-26T01:52:31.352Z" },
574
+ { url = "https://files.pythonhosted.org/packages/a9/39/57a18fcef567784108c4fc3f5441cb9938ae5a51378505aafe81e8e15ecc/grpcio-1.73.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:65b0458a10b100d815a8426b1442bd17001fdb77ea13665b2f7dc9e8587fdc6b", size = 6103364, upload-time = "2025-06-26T01:52:33.028Z" },
575
+ { url = "https://files.pythonhosted.org/packages/c5/46/28919d2aa038712fc399d02fa83e998abd8c1f46c2680c5689deca06d1b2/grpcio-1.73.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0a9f3ea8dce9eae9d7cb36827200133a72b37a63896e0e61a9d5ec7d61a59ab1", size = 6749194, upload-time = "2025-06-26T01:52:34.734Z" },
576
+ { url = "https://files.pythonhosted.org/packages/3d/56/3898526f1fad588c5d19a29ea0a3a4996fb4fa7d7c02dc1be0c9fd188b62/grpcio-1.73.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:de18769aea47f18e782bf6819a37c1c528914bfd5683b8782b9da356506190c8", size = 6283902, upload-time = "2025-06-26T01:52:36.503Z" },
577
+ { url = "https://files.pythonhosted.org/packages/dc/64/18b77b89c5870d8ea91818feb0c3ffb5b31b48d1b0ee3e0f0d539730fea3/grpcio-1.73.1-cp312-cp312-win32.whl", hash = "sha256:24e06a5319e33041e322d32c62b1e728f18ab8c9dbc91729a3d9f9e3ed336642", size = 3668687, upload-time = "2025-06-26T01:52:38.678Z" },
578
+ { url = "https://files.pythonhosted.org/packages/3c/52/302448ca6e52f2a77166b2e2ed75f5d08feca4f2145faf75cb768cccb25b/grpcio-1.73.1-cp312-cp312-win_amd64.whl", hash = "sha256:303c8135d8ab176f8038c14cc10d698ae1db9c480f2b2823f7a987aa2a4c5646", size = 4334887, upload-time = "2025-06-26T01:52:40.743Z" },
579
+ { url = "https://files.pythonhosted.org/packages/37/bf/4ca20d1acbefabcaba633ab17f4244cbbe8eca877df01517207bd6655914/grpcio-1.73.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:b310824ab5092cf74750ebd8a8a8981c1810cb2b363210e70d06ef37ad80d4f9", size = 5335615, upload-time = "2025-06-26T01:52:42.896Z" },
580
+ { url = "https://files.pythonhosted.org/packages/75/ed/45c345f284abec5d4f6d77cbca9c52c39b554397eb7de7d2fcf440bcd049/grpcio-1.73.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:8f5a6df3fba31a3485096ac85b2e34b9666ffb0590df0cd044f58694e6a1f6b5", size = 10595497, upload-time = "2025-06-26T01:52:44.695Z" },
581
+ { url = "https://files.pythonhosted.org/packages/a4/75/bff2c2728018f546d812b755455014bc718f8cdcbf5c84f1f6e5494443a8/grpcio-1.73.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:052e28fe9c41357da42250a91926a3e2f74c046575c070b69659467ca5aa976b", size = 5765321, upload-time = "2025-06-26T01:52:46.871Z" },
582
+ { url = "https://files.pythonhosted.org/packages/70/3b/14e43158d3b81a38251b1d231dfb45a9b492d872102a919fbf7ba4ac20cd/grpcio-1.73.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c0bf15f629b1497436596b1cbddddfa3234273490229ca29561209778ebe182", size = 6415436, upload-time = "2025-06-26T01:52:49.134Z" },
583
+ { url = "https://files.pythonhosted.org/packages/e5/3f/81d9650ca40b54338336fd360f36773be8cb6c07c036e751d8996eb96598/grpcio-1.73.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ab860d5bfa788c5a021fba264802e2593688cd965d1374d31d2b1a34cacd854", size = 6007012, upload-time = "2025-06-26T01:52:51.076Z" },
584
+ { url = "https://files.pythonhosted.org/packages/55/f4/59edf5af68d684d0f4f7ad9462a418ac517201c238551529098c9aa28cb0/grpcio-1.73.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:ad1d958c31cc91ab050bd8a91355480b8e0683e21176522bacea225ce51163f2", size = 6105209, upload-time = "2025-06-26T01:52:52.773Z" },
585
+ { url = "https://files.pythonhosted.org/packages/e4/a8/700d034d5d0786a5ba14bfa9ce974ed4c976936c2748c2bd87aa50f69b36/grpcio-1.73.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f43ffb3bd415c57224c7427bfb9e6c46a0b6e998754bfa0d00f408e1873dcbb5", size = 6753655, upload-time = "2025-06-26T01:52:55.064Z" },
586
+ { url = "https://files.pythonhosted.org/packages/1f/29/efbd4ac837c23bc48e34bbaf32bd429f0dc9ad7f80721cdb4622144c118c/grpcio-1.73.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:686231cdd03a8a8055f798b2b54b19428cdf18fa1549bee92249b43607c42668", size = 6287288, upload-time = "2025-06-26T01:52:57.33Z" },
587
+ { url = "https://files.pythonhosted.org/packages/d8/61/c6045d2ce16624bbe18b5d169c1a5ce4d6c3a47bc9d0e5c4fa6a50ed1239/grpcio-1.73.1-cp313-cp313-win32.whl", hash = "sha256:89018866a096e2ce21e05eabed1567479713ebe57b1db7cbb0f1e3b896793ba4", size = 3668151, upload-time = "2025-06-26T01:52:59.405Z" },
588
+ { url = "https://files.pythonhosted.org/packages/c2/d7/77ac689216daee10de318db5aa1b88d159432dc76a130948a56b3aa671a2/grpcio-1.73.1-cp313-cp313-win_amd64.whl", hash = "sha256:4a68f8c9966b94dff693670a5cf2b54888a48a5011c5d9ce2295a1a1465ee84f", size = 4335747, upload-time = "2025-06-26T01:53:01.233Z" },
589
+ ]
590
+
591
+ [[package]]
592
+ name = "grpcio-status"
593
+ version = "1.73.1"
594
+ source = { registry = "https://pypi.org/simple" }
595
+ dependencies = [
596
+ { name = "googleapis-common-protos" },
597
+ { name = "grpcio" },
598
+ { name = "protobuf" },
599
+ ]
600
+ sdist = { url = "https://files.pythonhosted.org/packages/f6/59/9350a13804f2e407d76b3962c548e023639fc1545056e342c6bad0d4fd30/grpcio_status-1.73.1.tar.gz", hash = "sha256:928f49ccf9688db5f20cd9e45c4578a1d01ccca29aeaabf066f2ac76aa886668", size = 13664, upload-time = "2025-06-26T02:02:50.083Z" }
601
+ wheels = [
602
+ { url = "https://files.pythonhosted.org/packages/2e/50/ee32e6073e2c3a4457be168e2bbf84d02ad9d2c18c4a578a641480c293d4/grpcio_status-1.73.1-py3-none-any.whl", hash = "sha256:538595c32a6c819c32b46a621a51e9ae4ffcd7e7e1bce35f728ef3447e9809b6", size = 14422, upload-time = "2025-06-26T02:02:08.415Z" },
603
+ ]
604
+
605
  [[package]]
606
  name = "h11"
607
  version = "0.16.0"
 
846
  { name = "datasets" },
847
  { name = "elevenlabs" },
848
  { name = "evaluate" },
849
+ { name = "google-cloud-translate" },
850
  { name = "huggingface-hub" },
851
  { name = "jiwer" },
852
  { name = "joblib" },
 
871
  { name = "elevenlabs", marker = "extra == 'dev'", specifier = ">=1.58.1" },
872
  { name = "evaluate", marker = "extra == 'dev'", specifier = ">=0.4.3" },
873
  { name = "fastapi", specifier = ">=0.115.12" },
874
+ { name = "google-cloud-translate", marker = "extra == 'dev'", specifier = ">=3.21.0" },
875
  { name = "huggingface-hub", marker = "extra == 'dev'", specifier = ">=0.31.1" },
876
  { name = "jiwer", marker = "extra == 'dev'", specifier = ">=3.1.0" },
877
  { name = "joblib", specifier = ">=1.5.0" },
 
1502
  { url = "https://files.pythonhosted.org/packages/b8/d3/c3cb8f1d6ae3b37f83e1de806713a9b3642c5895f0215a62e1a4bd6e5e34/propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40", size = 12376, upload-time = "2025-03-26T03:06:10.5Z" },
1503
  ]
1504
 
1505
+ [[package]]
1506
+ name = "proto-plus"
1507
+ version = "1.26.1"
1508
+ source = { registry = "https://pypi.org/simple" }
1509
+ dependencies = [
1510
+ { name = "protobuf" },
1511
+ ]
1512
+ sdist = { url = "https://files.pythonhosted.org/packages/f4/ac/87285f15f7cce6d4a008f33f1757fb5a13611ea8914eb58c3d0d26243468/proto_plus-1.26.1.tar.gz", hash = "sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012", size = 56142, upload-time = "2025-03-10T15:54:38.843Z" }
1513
+ wheels = [
1514
+ { url = "https://files.pythonhosted.org/packages/4e/6d/280c4c2ce28b1593a19ad5239c8b826871fc6ec275c21afc8e1820108039/proto_plus-1.26.1-py3-none-any.whl", hash = "sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66", size = 50163, upload-time = "2025-03-10T15:54:37.335Z" },
1515
+ ]
1516
+
1517
  [[package]]
1518
  name = "protobuf"
1519
  version = "6.30.2"
 
1563
  { url = "https://files.pythonhosted.org/packages/37/40/ad395740cd641869a13bcf60851296c89624662575621968dcfafabaa7f6/pyarrow-20.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:82f1ee5133bd8f49d31be1299dc07f585136679666b502540db854968576faf9", size = 25944982, upload-time = "2025-04-27T12:33:04.72Z" },
1564
  ]
1565
 
1566
+ [[package]]
1567
+ name = "pyasn1"
1568
+ version = "0.6.1"
1569
+ source = { registry = "https://pypi.org/simple" }
1570
+ sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322, upload-time = "2024-09-10T22:41:42.55Z" }
1571
+ wheels = [
1572
+ { url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135, upload-time = "2024-09-11T16:00:36.122Z" },
1573
+ ]
1574
+
1575
+ [[package]]
1576
+ name = "pyasn1-modules"
1577
+ version = "0.4.2"
1578
+ source = { registry = "https://pypi.org/simple" }
1579
+ dependencies = [
1580
+ { name = "pyasn1" },
1581
+ ]
1582
+ sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892, upload-time = "2025-03-28T02:41:22.17Z" }
1583
+ wheels = [
1584
+ { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259, upload-time = "2025-03-28T02:41:19.028Z" },
1585
+ ]
1586
+
1587
  [[package]]
1588
  name = "pydantic"
1589
  version = "2.11.4"
 
1832
  { url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229, upload-time = "2025-03-30T14:15:12.283Z" },
1833
  ]
1834
 
1835
+ [[package]]
1836
+ name = "rsa"
1837
+ version = "4.9.1"
1838
+ source = { registry = "https://pypi.org/simple" }
1839
+ dependencies = [
1840
+ { name = "pyasn1" },
1841
+ ]
1842
+ sdist = { url = "https://files.pythonhosted.org/packages/da/8a/22b7beea3ee0d44b1916c0c1cb0ee3af23b700b6da9f04991899d0c555d4/rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75", size = 29034, upload-time = "2025-04-16T09:51:18.218Z" }
1843
+ wheels = [
1844
+ { url = "https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762", size = 34696, upload-time = "2025-04-16T09:51:17.142Z" },
1845
+ ]
1846
+
1847
  [[package]]
1848
  name = "sacrebleu"
1849
  version = "2.5.1"