Головна/Провайдери/Провайдери та вендори ENУКРРУС API-довідник (ReDoc) ↗

Провайдери та вендори

26 провайдерів, чому 106 рядків консолі згорнулись у них, і як обирався вихідний код.

curl "https://languages.service.custom.mt/v1/providers"
curl "https://languages.service.custom.mt/v1/providers/deepl_api"
curl "https://languages.service.custom.mt/v1/providers/deepl_api/languages?effective=true"

Каталог

Коди провайдерів — ті самі, що у provider_credentials. Один ідентифікатор резолвить кред там і код мови тут; викликачеві не треба перекладати між двома схемами іменування.

Вендор Провайдери
OpenAI openai_api
Anthropic anthropic_api
Google Cloud google_translate, gemini_api
Microsoft Azure microsoft_translator
Amazon Web Services amazon_translate
DeepL deepl_api
Translated modernmt_api, lara_api
LanguageWire languagewire_api
SYSTRAN systran_translate
Tencent tencent_transmart
Alibaba Cloud alibaba_translate
Baidu baidu_translate
Naver papago_translate
Supertext supertext_translate
XL8 xl8_translate
Tarjama tarjama_mt
Tahrirchi tilmoch_api, sayqalchi_api
Widn.AI widn_tower_anthill, widn_tower_sugarloaf, widn_tower_vesuvius
Internal custom_finetuned_mt
Yandex Cloud yandex_translate
Pangeanic pangea_mt

Warning

in_credentials_catalog: false yandex_translate і pangea_mt несуть мапінги консолі — в одного Yandex їх 102, — але запису в provider_credentials ще не мають. Вони лишені тут, щоб наявний трафік і далі резолвився, і позначені в API, щоб викликач бачив: мапінг є, контракту на креди за ним немає.

Чому 106 рядків консолі стали 26

У таблиці translation_provider консолі один рядок на модель: OpenAI GPT 4o-2024-11-20, OpenAI GPT 5-mini-2025-08-07, Gemini 2.5 Pro тощо — плюс рядки *_in_sys / *_out_sys, які є білінговими лічильниками, а не рушіями.

Рядки моделей згортаються у провайдера API свого вендора, бо підтримка мов — це властивість ендпоінта вендора, а не чекпоінта за ним. provider_credentials уже трактує модель як поле конфігурації model_id під одним кредом, а дублювати таблицю на 130 мов для кожної моделі означало б 17 таблиць, які треба тримати синхронними лише для OpenAI.

Білінгові лічильники відкинуті: вони несуть посилання на регіональні коди, скопійовані з батьківської моделі, і їхній імпорт подвоював би кожен мапінг.

Для викликачів нічого не ламається — кожен згорнутий service_name лишається аліасом провайдера:

curl ".../v1/resolve?provider=OpenAiGPT4o_2024_11_20_Provider&language=zh-CN"
# → { "provider": "openai_api", "code": "zh-CN", … }

AutoML-провайдери консолі згортаються так само: GoogleAutoMLProvider адресує google_translate, LaraAutoMLProviderlara_api. Їхні коди йдуть у ті самі API вендорів.

Як обирався вихідний код

Для 97 пар (провайдер, мова) консоль пропонувала кілька кодів. Переможець обирається так:

  1. прапорець is_default консолі на регіональному коді,
  2. дорівнює власному канонічному коду мови — коли конкурує кілька написань і одне з них те, як ми вже називаємо мову, надсилати інше означає розходитись без причини,
  3. канонічність BCP-47 (es-419 над ES-LA),
  4. найновіший легасі-провайдер, що його обрав, — рядки пізніших моделей курувалися свіжіше за зразка 2023 року,
  5. найменший id регіонального коду — збігається з .first() консолі при нічиїх.

На відміну від канонічного коду мови, тут коротший тег ніколи не має переваги сам по собі. Якщо API DeepL хоче zh-Hans і тільки zh-Hans — рядок консолі, що це каже, і є фактом; правило 2 спрацьовує лише коли кілька написань справді конкурують.

Кожне написання-програвший стає вхідним аліасом, тож ніщо, що резолвиться сьогодні, не перестає. Усі 97 рішень перелічені в data/seed/REPORT.md.

Явне проти ефективного

# лише пари, які хтось налаштував
curl ".../v1/providers/deepl_api/languages"

# усі мови, включно з фолбеками — те, що провайдер справді отримає
curl ".../v1/providers/deepl_api/languages?effective=true"

У DeepL 3 явні рядки й 348 ефективних. Це не прогалина: базовим мовам рядок не потрібен, а регіональні фолбечаться за Fallback Policies. Смуги покриття в адмінці показують розподіл по провайдерах.

Далі