Клиентская библиотека Azure Document Translation для JavaScript — версия 1.0.0

Перевод документов — это облачная функция машинного перевода сервиса Переводчик Azure AI. Вы можете переводить множество сложных документов на все поддерживаемые языки и диалекты, сохраняя при этом оригинальную структуру и формат данных. API перевода документов поддерживает два процесса перевода:

Асинхронный пакетный перевод поддерживает обработку нескольких документов и больших файлов. Для процесса пакетного перевода требуется учетная запись Azure Blob Storage с контейнерами хранения для ваших исходных и переведенных документов.

Синхронный однофайлный перевод поддерживает обработку переводов одного файла. Процесс перевода файлов не требует учетной записи хранилища Azure Blob. Окончательный ответ содержит переведенный документ и возвращается непосредственно вызывающому клиенту.

Функция перевода документов поддерживает следующие операции:

  • Синхронный перевод документов: используется для синхронного перевода одного документа. Для метода не требуется учетная запись хранилища BLOB-объектов Azure.
  • Start batch translation: используется для выполнения асинхронного пакетного запроса на перевод. Для этого метода требуется учетная запись хранения BLOB-объектов Azure с контейнерами хранения для исходных и переведенных документов.
  • Получение статуса для всех переводческих заданий: используется для запроса списка и статуса всех переводческих заданий, отправленных пользователем (связанных с ресурсом).
  • Получите статус для конкретной работы переводчика: используется для запроса статуса конкретной работы переводчика. Ответ включает общее состояние задания и состояние документов, которые переводятся в рамках этого задания.
  • Получение статуса для всех документов: используется для запроса статуса всех документов на работе переводчика.
  • Получить статус для конкретного документа: Возвращает статус конкретного документа в задании, указанный в запросе параметрами запроса id и documentId.
  • Отмена перевода: Отмена задания перевода, которая сейчас обрабатывается или поставлена в очередь (ожидается). Операция не отменяется, если она уже завершена, не выполнена или по-прежнему отменена.
  • Получите поддерживаемые форматы: Возвращает список форматов документов или глоссариев, поддерживаемых функцией перевода документов.

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

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

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

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

Prerequisites

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

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

npm install @azure/ai-translation-document

Set up Хранилище BLOB-объектов Azure account

Для пакетного перевода требуется учетная запись Хранилище BLOB-объектов Azure. Для получения дополнительной информации о создании аккаунта Хранилище BLOB-объектов Azure смотрите здесь. Для создания контейнеров для исходных и целевых файлов см . здесь. Обязательно авторизуйте доступ к хранилищу ресурсов перевода, подробности здесь.

Когда «Разрешить доступ к ключу для хранилища» отключен на аккаунте хранения, на ресурсе переводчика активируется управляемая идентичность, и на аккаунте хранения назначается роль «Вкладчик данных блока хранилища», тогда можно использовать URL контейнера напрямую, и не потребуется генерировать SAS URI.

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

Эта библиотека предоставляет два клиента:

  • DocumentTranslationClient для пакетного перевода и операций с статусом перевода.
  • SingleDocumentTranslationClient для синхронного перевода одного документа.

Оба клиента могут аутентифицироваться с помощью учетных данных Microsoft Entra или API-ключа.

Использование учетной записи Microsoft Entra

Вы можете пройти аутентификацию с помощью Microsoft Entra ID, используя учетные данные из библиотеки @azure/identity. Чтобы использовать поставщик defaultAzureCredential, показанный ниже, или другие поставщики учетных данных, предоставленные пакетом Azure SDK, установите пакет :

npm install @azure/identity

Вам также потребуется зарегистрировать новое приложение Microsoft Entra и предоставить доступ к ресурсу переводчика, назначив соответствующую роль вашему руководителю сервиса.

Используя Node.js и Node-подобные среды, вы можете использовать класс DefaultAzureCredential для аутентификации клиента:

import { DocumentTranslationClient } from "@azure/ai-translation-document";
import { DefaultAzureCredential } from "@azure/identity";

const endpoint = "https://<translator-instance>.cognitiveservices.azure.com";
const client = new DocumentTranslationClient(endpoint, new DefaultAzureCredential());

Для среды браузера используйте InteractiveBrowserCredential from @azure/identity the package для аутентификации:

import { InteractiveBrowserCredential } from "@azure/identity";
import { DocumentTranslationClient } from "@azure/ai-translation-document";

const credential = new InteractiveBrowserCredential({
  tenantId: "<YOUR_TENANT_ID>",
  clientId: "<YOUR_CLIENT_ID>",
});
const client = new DocumentTranslationClient("<endpoint>", credential);

Использование ключа API

Вы также можете аутентифицироваться с помощью API-ключа ресурса с помощью KeyCredential:

import { KeyCredential } from "@azure/core-auth";
import { DocumentTranslationClient } from "@azure/ai-translation-document";

const endpoint = "https://<translator-instance>.cognitiveservices.azure.com";
const credential: KeyCredential = { key: "YOUR_SUBSCRIPTION_KEY" };
const client = new DocumentTranslationClient(endpoint, credential);

Пакет JavaScript

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

Ключевые понятия

ClientTranslationDocumentClient

DocumentTranslationClient является интерфейсом для асинхронного пакетного перевода и для запросов перевода и статуса документа. Пакетный перевод требует аккаунта Хранилище BLOB-объектов Azure с контейнерами для исходных и переведённых документов.

SingleDocumentTranslationClient

SingleDocumentTranslationClient является интерфейсом для синхронного перевода одного документа. Не требуется учетная запись Хранилище BLOB-объектов Azure; переведённый документ возвращается напрямую в ответе.

Примеры

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

Синхронный перевод документов

Используется для синхронного перевода одного документа. Для метода не требуется учетная запись хранилища BLOB-объектов Azure.

import { SingleDocumentTranslationClient } from "@azure/ai-translation-document";
import { DefaultAzureCredential } from "@azure/identity";
import { writeFile } from "node:fs/promises";

const endpoint = "https://<translator-instance>.cognitiveservices.azure.com";
const client = new SingleDocumentTranslationClient(endpoint, new DefaultAzureCredential());
const response = await client.translate("hi", {
  document: {
    contents: "This is a test.",
    contentType: "text/html",
    filename: "test-input.txt",
  },
});
if (response.readableStreamBody) {
  await writeFile("test-output.txt", response.readableStreamBody);
}

Пакетный перевод документов

Используется для выполнения асинхронного пакетного запроса перевода. Для этого метода требуется учетная запись хранения BLOB-объектов Azure с контейнерами хранения для исходных и переведенных документов. Указывайте исходный и целевой контейнеры URL (при необходимости с токенами SAS) и проводите опрос до завершения операции.

import { DocumentTranslationClient } from "@azure/ai-translation-document";
import { DefaultAzureCredential } from "@azure/identity";

const endpoint = "https://<translator-instance>.cognitiveservices.azure.com";
const client = new DocumentTranslationClient(endpoint, new DefaultAzureCredential());
const poller = client.startTranslation({
  inputs: [
    {
      source: { sourceUrl: "<source container SAS URL>" },
      targets: [{ targetUrl: "<target container SAS URL>", language: "fr" }],
    },
  ],
});
const result = await poller.pollUntilDone();
console.log(`Translation status: ${result.status}`);

Получите поддерживаемые форматы

Возвращает список форматов документов, поддерживаемых функцией перевода документов.

import { DocumentTranslationClient } from "@azure/ai-translation-document";
import { DefaultAzureCredential } from "@azure/identity";

const endpoint = "https://<translator-instance>.cognitiveservices.azure.com";
const client = new DocumentTranslationClient(endpoint, new DefaultAzureCredential());
const formats = await client.getSupportedFormats("Document");
for (const format of formats.value) {
  console.log(format.format);
}

Troubleshooting

Лесозаготовка

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

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

setLogLevel("info");

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

Вклад

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