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


Клиентская библиотека AZURE TextTranslation REST для JavaScript версии 1.0.0

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

Компонент "Перевод текста" поддерживает следующие методы:

Languages (Языки). Возвращает список языков, поддерживаемых операциями Translate (Перевод), Transliterate (Транслитерация) и Dictionary Lookup (Поиск по словарю).

Translate (Перевод). Перевод основного текста на одном исходном языке на несколько целевых языков с помощью единого запроса.

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

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

Dictionary lookup (Поиск по словарю). Возвращает слова, эквивалентные исходному термину, на целевом языке.

Dictionary example (Пример из словаря). Возвращает грамматическую структуру и примеры контекста для пары исходного и целевого терминов.

Чтобы использовать эту библиотеку, в значительной степени используйте наши клиентские документы REST .

Основные ссылки:

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

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

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

Предварительные требования

  • Существующая служба переводчика или ресурс Cognitive Services.

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

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

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

Создание ресурса службы Переводчика

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

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

Пакет JavaScript

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

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

Взаимодействие со службой с помощью клиентской библиотеки начинается с создания экземпляра класса TextTranslationClient . Вам потребуется ключ API или TokenCredential для создания экземпляра клиентского объекта. Дополнительные сведения о проверке подлинности с помощью cognitive services см. в статье Проверка подлинности запросов к службе "Переводчик".

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

Вы можете получить endpointи API keyRegion из ресурса Cognitive Services или из сведений о ресурсе службы Переводчик на портале Azure.

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

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

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

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

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

const translateCedential = new TranslatorCredential(apiKey, region);
const translationClient = TextTranslationClient(endpoint, translateCedential);

Примеры

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

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

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

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

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

const languages = langResponse.body;

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

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

if (languages.dictionary) {
  console.log("Dictionary languages:");
  for (const key in languages.dictionary) {
    const dictionaryLanguage = languages.dictionary[key];
    console.log(
      `${key} -- name: ${dictionaryLanguage.name} (${dictionaryLanguage.nativeName}), supported target languages count: ${dictionaryLanguage.translations.length}`
    );
  }
}

Основные сведения о языках см. в документации по службам.

Перевод

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

const inputText = [{ text: "This is a test." }];
const parameters = {
  to: "cs",
  from: "en",
};
const translateResponse = await translationClient.path("/translate").post({
  body: inputText,
  queryParameters: parameters,
});

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

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

Основные сведения о переводе см. в документации по службе.

Транслитерация

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

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

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

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

Основные сведения о транслитерации см. в документации по службам.

Разбивка по предложениям

Определяет расположение границ предложения в фрагменте текста.

const inputText = [{ text: "zhè shì gè cè shì。" }];
const parameters = {
  language: "zh-Hans",
  script: "Latn",
};
const breakSentenceResponse = await translationClient.path("/breaksentence").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(breakSentenceResponse)) {
  throw breakSentenceResponse.body;
}

const breakSentences = breakSentenceResponse.body;
for (const breakSentence of breakSentences) {
  console.log(`The detected sentece boundaries: '${breakSentence?.sentLen.join(", ")}'.`);
}

Концептуальное обсуждение предложения о перерыве см. в документации по службе.

Поиск по словарю

Возвращает слова, эквивалентные исходному термину, на целевом языке.

const inputText = [{ text: "fly" }];
const parameters = {
  to: "es",
  from: "en",
};
const dictionaryResponse = await translationClient.path("/dictionary/lookup").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(dictionaryResponse)) {
  throw dictionaryResponse.body;
}

const dictionaryEntries = dictionaryResponse.body;
for (const dictionaryEntry of dictionaryEntries) {
  console.log(
    `For the given input ${dictionaryEntry?.translations?.length} entries were found in the dictionary.`
  );
  console.log(
    `First entry: '${dictionaryEntry?.translations[0]?.displayTarget}', confidence: ${dictionaryEntry?.translations[0]?.confidence}.`
  );
}

Основные сведения о поиске в словаре см. в документации по службе.

Примеры словарей

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

const inputText = [{ text: "fly", translation: "volar" }];
const parameters = {
  to: "es",
  from: "en",
};
const dictionaryResponse = await translationClient.path("/dictionary/examples").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(dictionaryResponse)) {
  throw dictionaryResponse.body;
}

const dictionaryExamples = dictionaryResponse.body;
for (const dictionaryExample of dictionaryExamples) {
  console.log(
    `For the given input ${dictionaryExample?.examples?.length} examples were found in the dictionary.`
  );
  const firstExample = dictionaryExample?.examples[0];
  console.log(
    `Example: '${firstExample.targetPrefix + firstExample.targetTerm + firstExample.targetSuffix}'.`
  );
}

Общие сведения о примерах словарей см. в документации по службам.

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

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

Например, при отправке запроса на перевод без целевого языка перевода возвращается ошибка с сообщением 400 "Недопустимый запрос".

Различные коды ошибок, возвращаемые службой, можно найти в документации по службе.

Ведение журнала

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

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Более подробные инструкции по включению журналов см. в документации по пакету @azure и средства ведения журнала.