Поделиться через


Клиентская библиотека Azure TextTranslation REST для JavaScript — версия 2.0.0-beta.1

Перевод текста Azure — это облачный REST API, предоставляемый сервисом Azure Translator. Он использует технологию нейронного машинного перевода для обеспечения точных, контекстно релевантных и семантически точных переводов текста в реальном времени во всех поддерживаемых языках.

Клиентская библиотека предлагает несколько ключевых функций:

  • Получите список языков, поддерживаемых для операций перевода и транслитерации, а также модели LLM, доступные для переводов.

  • Выполнить детерминированный перевод текста с указанного исходного языка на целевой язык с настраиваемыми параметрами для обеспечения точности и сохранения контекстной целостности.

  • Выполните транслитерацию, преобразуя текст из исходного сценария в альтернативное представление сценария.

  • Используйте модели LLM для создания вариантов перевода, специфичных для тона и гендера.

Для использования этой библиотеки используется документация клиента REST

Ключевые ссылки:

Начало работы

Поддерживаемые в настоящее время среды

  • Версии LTS Node.js
  • Последние версии Edge, Chrome, Safar и Firefox

Предпосылки

  • Существующий сервис переводчика или ресурс когнитивных служб.

Установите пакет @azure-rest/ai-translation-text.

Установите клиентскую библиотеку Azure Text Translation REST для JavaScript с помощью npm:

npm install @azure-rest/ai-translation-text

Создать ресурс сервиса Translator

Вы можете создать ресурс для переводчика после создания ресурса для переводчика.

Поддержка веб-браузеров

Пакет JavaScript

Чтобы использовать эту клиентную библиотеку в браузере, сначала необходимо использовать пакет. Дополнительные сведения о том, как это сделать, см. в нашей документации по .

аутентификация клиента;

Взаимодействие с сервисом через клиентскую библиотеку начинается с создания экземпляра класса TextTranslationClient . Вам понадобится ключ API или TokenCredential для создания клиентского объекта. Для получения дополнительной информации об аутентификации с помощью когнитивных сервисов см. раздел «Запросы аутентификации в службу переводчика».

Получение ключа API

Вы можете получить endpoint, API key и Region из ресурса Cognitive Services или Translator Service в Azure Portal.

В качестве альтернативы используйте фрагмент Azure CLI ниже, чтобы получить API-ключ из ресурса сервиса Translator.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Создайте TextTranslationClient с помощью ключа API и учетной данных региона

Когда у вас есть значение для ключа API и региона, создайте TranslatorCredential.

С помощью значения TranslatorCredential вы можете создать TextTranslationClient:

import TextTranslationClient, { TranslatorCredential } from "@azure-rest/ai-translation-text";

const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
  key,
  region,
};
const translationClient = TextTranslationClient(endpoint, credential);

Примеры

В следующем разделе представлены несколько фрагментов кода с использованием clientвышеуказанного и рассматриваются основные функции, присутствующие в этой клиентской библиотеке.

Получение поддерживаемых языков

Получает набор языков, поддерживаемых в настоящее время другими операциями переводчика.

import TextTranslationClient, {
  TranslatorCredential,
  isUnexpected,
} from "@azure-rest/ai-translation-text";

const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
  key,
  region,
};
const translationClient = TextTranslationClient(endpoint, credential);

const langResponse = await translationClient.path("/languages").get();

if (isUnexpected(langResponse)) {
  throw langResponse.body.error;
}

const languages = langResponse.body;

if (languages.translation) {
  console.log("Translated languages:");
  for (const [key, translationLanguage] of Object.entries(languages.translation)) {
    console.log(`${key} -- name: ${translationLanguage.name} (${translationLanguage.nativeName})`);
  }
}

if (languages.transliteration) {
  console.log("Transliteration languages:");
  for (const [key, transliterationLanguage] of Object.entries(languages.transliteration)) {
    console.log(
      `${key} -- name: ${transliterationLanguage.name} (${transliterationLanguage.nativeName})`,
    );
  }
}

if (languages.models) {
  console.log("Available LLM Models:");
  for (const model in languages.models) {
    console.log(model);
  }
}

Пожалуйста, обратитесь к документации сервиса для концептуального обсуждения языков.

Translate

Перевод текста с одного исходного языка на несколько целевых языков по одному запросу.

import TextTranslationClient, {
  TranslatorCredential,
  isUnexpected,
} from "@azure-rest/ai-translation-text";

const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
  key,
  region,
};
const translationClient = TextTranslationClient(endpoint, credential);

const input = {
  text: "This is a test.",
  targets: [{ language: "cs" }],
  language: "en",
};
const translateResponse = await translationClient.path("/translate").post({
  body: { inputs: [input] },
});

if (isUnexpected(translateResponse)) {
  throw translateResponse.body.error;
}

const translations = translateResponse.body.value;
for (const translation of translations) {
  console.log(
    `Text was translated to: '${translation?.translations[0]?.language}' and the result is: '${translation?.translations[0]?.text}'.`,
  );
}

Пожалуйста, обратитесь к документации по сервису для концептуального обсуждения перевода.

Transliterate

Преобразование символов или букв исходного языка в соответствующие им символы и буквы на целевом языке.

import TextTranslationClient, {
  TranslatorCredential,
  isUnexpected,
} from "@azure-rest/ai-translation-text";

const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
  key,
  region,
};
const translationClient = TextTranslationClient(endpoint, credential);

const inputText = [{ text: "这是个测试。" }];
const parameters = {
  language: "zh-Hans",
  fromScript: "Hans",
  toScript: "Latn",
};
const transliterateResponse = await translationClient.path("/transliterate").post({
  body: { inputs: inputText },
  queryParameters: parameters,
});

if (isUnexpected(transliterateResponse)) {
  throw transliterateResponse.body.error;
}

const transliterations = transliterateResponse.body.value;
for (const transliteration of transliterations) {
  console.log(
    `Input text was transliterated to '${transliteration?.script}' script. Transliterated text: '${transliteration?.text}'.`,
  );
}

Пожалуйста, обратитесь к сервисной документации для концептуального обсуждения транслитература.

Устранение неполадок

Когда вы взаимодействуете с сервисом Translator через клиентскую библиотеку TextTranslator, ошибки, возвращаемые сервисом Translator, соответствуют тем же HTTP-кодам статуса, что и для запросов REST API.

Например, если вы подаёте запрос на перевод без целевой языка перевода, 400 возвращается ошибка, указывающая на «Плохой запрос».

Logging

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. В альтернативном порядке, логирование можно включить во время выполнения, вызвав setLogLevel в @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.