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


Запуск пакетного перевода

Справочная
функция. Azure AI Translator → ВЕРСИЯ API перевода
документов: 2024-05-01
HTTP: POST

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

Запросить URL-адрес

Внимание

Для всех запросов API к функции перевода документов требуется конечная точка личного домена, расположенная на странице обзора ресурсов в портал Azure.

  curl -i -X POST "{document-translation-endpoint}/translator/document/batches?api-version={date}"

Заголовки запросов

Заголовки запроса.

Заголовки Description Условие
Ocp-Apim-Subscription-Key Ключ API службы переводчика из портал Azure. Обязательный
Ocp-Apim-Subscription-Region Регион, в котором был создан ресурс. Требуется при использовании регионального (географического) ресурса, например западной части США.
&маркер.
Content-Type Тип содержимого для полезных данных. Допустимые значения: application/json или charset=UTF-8. Обязательный

BatchRequest (body)

  • Каждый запрос может содержать несколько документов и должен содержать исходный и целевой контейнер для каждого документа. Типы исходных носителей: application/json, text/jsonapplication/*+json.

  • Если задан фильтр по префиксу и суффиксу, он используется для соответствующей фильтрации папок. Префикс применяется к подпути после имени контейнера.

  • Глоссарии можно включить в запрос. Если глоссарий имеет недопустимый формат или недоступен во время перевода, в статусе документа будет отображаться ошибка.

  • Если файл с тем же именем уже существует в целевом месте назначения, задание завершается ошибкой.

  • Параметр targetUrl для каждого целевого языка должен быть уникальным.


{
  "inputs": [
    {
      "source": {
        "sourceUrl": "https://myblob.blob.core.windows.net/Container/",
        "filter": {
          "prefix": "FolderA",
          "suffix": ".txt"
        },
        "language": "en",
        "storageSource": "AzureBlob"
      },
      "targets": [
        {
          "targetUrl": "https://myblob.blob.core.windows.net/TargetUrl/",
          "category": "general",
          "language": "fr",
          "glossaries": [
            {
              "glossaryUrl": "https://myblob.blob.core.windows.net/Container/myglossary.xlf",
              "format": "XLIFF",
              "version": "2.0",
              "storageSource": "AzureBlob"
            }
          ],
          "storageSource": "AzureBlob"
        }
      ],
      "storageType": "Folder"
    }
  ],
}

Входные данные

Определение запроса на перевод входного пакета.

Параметр ключа Тип Обязательное поле Параметры запроса Description
Входы array Истина • источник (объект)• целевые объекты (массив)



• storageType (string)
Входные исходные данные.

inputs.source

Определение исходных данных.

Параметр ключа Тип Обязательное поле Параметры запроса Description
inputs.source object Истина • sourceUrl (string)• filter (object)



• language (string)

• storageSource (string)
Исходные данные для входных документов.
inputs.source.sourceUrl string Истина •струна Расположение контейнера для исходного файла или папки.
inputs.source.filter object False • префикс (string)

• суффикс (строка)
Строки с учетом регистра для фильтрации документов в исходном пути.
inputs.source.filter.prefix string False •струна Строка префикса с учетом регистра для фильтрации документов в исходном пути для перевода. Часто используется для назначения вложенных папок для перевода. Пример: FolderA.
inputs.source.filter.suffix string False •струна Строка суффикса с учетом регистра для фильтрации документов в исходном пути для перевода. Чаще всего используется для расширений файлов. Пример: ".txt"
inputs.source.language string False •струна Код языка для исходных документов. Если этот параметр не указан, выполняется автоматическое определение.
inputs.source.storageSource string False •струна Источник хранилища для входных данных. По умолчанию — AzureBlob.

inputs.targets

Определение целевых и глоссарий данных.

Параметр ключа Тип Обязательное поле Параметры запроса Description
inputs.targets array Истина • targetUrl (string)• категория (string)



• язык (string)

• глоссарии (массив)

• storageSource (string)
Целевые объекты и данные глоссариев для переведенных документов.
inputs.targetUrl string Истина •струна Расположение расположения контейнера для переведенных документов.
inputs.targets.category string False •струна Классификация или категория для запроса на перевод. Пример: общие.
inputs.targets.language string Истина •струна Код целевого языка. Пример: "fr".
inputs.targets.glossaries array False • glossaryUrl (string)• format (string)



• version (string)• version (string)

• storageSource (string)
См. статью "Создание и использование глоссарий"
inputs.targets.glossaries.glossaryUrl string True (при использовании глоссариев) •струна Расположение глоссария. Расширение файла используется для извлечения форматирования, если параметр формата не указан. Если языковая пара перевода отсутствует в глоссарии, она не применяется.
inputs.targets.glossaries.format string False •струна Указанный формат файла для глоссария. Чтобы проверить, поддерживается ли формат файла, см. статью "Получение поддерживаемых форматов глоссарий".
inputs.targets.glossaries.version string False •струна Индикатор версии. Пример: "2.0".
inputs.targets.glossaries.storageSource string False •струна Источник хранилища для глоссарий. По умолчанию — _AzureBlob_.
inputs.targets.storageSource string False •струна Источник хранилища для targets.defaults _AzureBlob_.

inputs.storageType

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

Параметр ключа Тип Обязательное поле Параметры запроса Description
inputs.storageType string False ••Folder

File
Тип хранилища для строки, указывающей источник входных документов. Допустимы только "Папка" или "Файл".

Параметры

Определение запроса на перевод входного пакета.

Параметр ключа Тип Обязательное поле Параметры запроса Description
options object False Исходные сведения для входных документов.
options.experimental boolean False ••true

false
Указывает, включает ли запрос экспериментальную функцию (если применимо). Допустимы только логические true значения или false допустимые значения.

Пример запроса

Ниже приведены примеры пакетных запросов.

Примечание.

В следующих примерах доступ к содержимому контейнера службы хранилища Azure ограничен с помощью маркера подписанного URL-адреса (SAS).

Перевод всех документов в контейнере

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?{SAS-token-query-string}"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?{SAS-token-query-string}",
                    "language": "fr"
                }
            ]
        }
    ]
}

Перевод всех документов в контейнере с применением глоссариев

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?{SAS-token-query-string}"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?{SAS-token-query-string}",
                    "language": "fr",
                    "glossaries": [
                        {
                            "glossaryUrl": "https://my.blob.core.windows.net/glossaries/en-fr.xlf?{SAS-token-query-string}",
                            "format": "xliff",
                            "version": "1.2"
                        }
                    ]

                }
            ]
        }
    ]
}

Перевод содержимого указанной папки в контейнере

Убедитесь, что имя папки (учитывает регистр) в качестве префикса в фильтре.

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?{SAS-token-query-string}",
                "filter": {
                    "prefix": "MyFolder/"
                }
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?{SAS-token-query-string}",
                    "language": "fr"
                }
            ]
        }
    ]
}

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

  • Укажите "storageType": File.
  • Создайте исходный URL-адрес и маркер SAS для конкретного большого двоичного объекта или документа.
  • Укажите имя целевого файла в целевом URL-адресе. Маркер SAS по-прежнему предназначен для контейнера.

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

{
    "inputs": [
        {
            "storageType": "File",
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en/source-english.docx?{SAS-token-query-string}"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-Spanish.docx?{SAS-token-query-string}",
                    "language": "es"
                },
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-German.docx?{SAS-token-query-string}",
                    "language": "de"
                }
            ]
        }
    ]
}

Совет

Этот метод возвращает параметр задания id для строк запроса запроса get-translation-status, get-documents-status, get-document-status и запроса на отмену перевода.

  • Задание можно найти в значении id URL-адреса url-адреса заголовка Operation-Location ответа метода POSTstart-batch-translation. Буквенно-цифровой строкой, следующей за /document/ параметром, является задание idоперации:

    Заголовок ответа URL-адрес ответа
    Operation-Location {document-translation-endpoint}/translator/document/9dce0aa9-78dc-41ba-8cae-2e2f3c2ff8ec?api-version=2024-05-01
  • Вы также можете использовать запрос на получение списка заданий перевода и их idсостояний.

Коды состояния ответа

Ниже приведены возможные коды состояния HTTP, которые возвращает запрос.

Код состояния Description
202 Принято. Успешный запрос и созданный пакетный запрос. Заголовок Operation-Location указывает URL-адрес состояния с идентификатором операции ID.HeadersOperation-Location: string
400 Недопустимый запрос. Недопустимый запрос. Проверить входные параметры.
401 Не авторизовано. Проверьте свои учетные данные.
429 Слишком высокая частота запросов.
500 Внутренняя ошибка сервера.
503 В настоящее время служба недоступна. Повторите попытку позже.
Другие коды состояния • Слишком много запросов. Сервер недоступен

Отклик в случае ошибки

Параметр ключа Тип Описание
кодом string Перечисления, содержащие коды ошибок высокого уровня. Возможные значения:</br/>• InternalServerError
• InvalidArgument
• InvalidRequest
• RequestRateTooHigh
• ResourceNotFound
• ServiceUnavailable
• Unauthorized
message string Получает сообщение об ошибке высокого уровня.
innerError InnerTranslationError Новый формат внутренней ошибки, соответствующий рекомендациям ПО API служб искусственного интеллекта Azure. Это сообщение об ошибке содержит обязательные свойства: ErrorCode, message и необязательные свойства target, details(key value pair), а также внутреннюю ошибку (ее можно вложить).
inner.Errorcode string Получает строку с ошибкой кода.
innerError.message string Получает сообщение об ошибке высокого уровня.
innerError.target string Получает источник ошибки. Например, это будет documents или document id если документ недопустим.

Пример ответа с ошибкой

{
  "error": {
    "code": "ServiceUnavailable",
    "message": "Service is temporary unavailable",
    "innerError": {
      "code": "ServiceTemporaryUnavailable",
      "message": "Service is currently unavailable.  Please try again later"
    }
  }
}

Следующие шаги

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