Introducción a la traducción asincrónica de documentos

Traducción de documentos es una característica basada en la nube del servicio Traductor de Azure AI que traduce de forma asincrónica documentos completos en los idiomas admitidos y varios formatos de archivo. En este inicio rápido, va a aprender a usar la traducción de documentos con el lenguaje de programación que prefiera para traducir un documento de origen a un idioma de destino, conservando la estructura y el formato de texto.

Requisitos previos

Importante

  • Los SDK de traducción de documentos Java y JavaScript están actualmente disponibles en versión preliminar pública. Las características, los enfoques y los procesos pueden cambiar, antes de la versión de disponibilidad general (GA), en función de los comentarios de los usuarios.

  • Los SDK de C# y Python son versiones de disponibilidad general (GA) listas para su uso en aplicaciones de producción.

  • La traducción de documentos se admite actualmente solo en el recurso de Translator (servicio único) y no se incluye en los servicios de Azure AI (multiservicio).

  • La traducción de documentos solo se admite en el plan de servicio Estándar S1 (pago por uso) o en el plan de descuento por volumen D3. ConsultePrecios de los servicios de Azure AI: Translator.

Para empezar, necesitará lo siguiente:

  • Una cuenta de Azure activa. En caso de no tener ninguna, puede crear una cuenta gratuita

  • Una cuenta de Azure Blob Storage. También tendrá que crear contenedores en la cuenta de Azure Blob Storage para los archivos de origen y destino:

    • Contenedor de origen. En este contenedor se cargan los archivos para su traducción (obligatorio).
    • Contenedor de destino. En este contenedor se almacenan los archivos traducidos (obligatorio).
  • Un recurso Translator de servicio único (no un recurso multiservicio de servicios de Azure AI):

    Complete los campos de detalles de proyecto e instancia de Translator de la siguiente manera:

    1. Suscripción. Seleccione una de las suscripciones de Azure disponibles.

    2. Grupo de recursos. Puede crear un nuevo grupo de recursos o agregar el recurso a un grupo ya existente que comparta el mismo ciclo de vida, permisos y directivas.

    3. Región del recurso. Elija Global a menos que su empresa o aplicación requiera una región específica. Si planea usar una identidad administrada asignada por el sistema para la autenticación, elija una región geográfica como Oeste de EE. UU.

    4. Nombre. Escriba el nombre que eligió para el recurso. El nombre que elija debe ser único en Azure.

      Nota

      La traducción de documentos requiere un punto de conexión de dominio personalizado. El valor que escriba en el campo Nombre será el parámetro de nombre de dominio personalizado para el punto de conexión.

    5. Plan de tarifa. La traducción de documentos no es compatible con el nivel gratis. Seleccione Estándar S1 para probar el servicio.

    6. Seleccione Revisar + crear.

    7. Revise los términos de servicio y seleccione Crear para implementar el recurso.

    8. Una vez que el recurso se implemente correctamente, seleccione Ir al recurso.

Recuperar la clave y el punto de conexión de traducción de documentos

Las solicitudes al servicio Translator requieren una clave de solo lectura y un punto de conexión personalizado para autenticar el acceso. El punto de conexión de dominio personalizado es una dirección URL con el nombre del recurso, el nombre de host y los subdirectorios de Translator, y está disponible en Azure Portal.

  1. Si ha creado un nuevo recurso, después de implementarlo, seleccione Ir al recurso. Si tiene un recurso de traducción de documentos existente, vaya directamente a la página del recurso.

  2. En el raíl izquierdo, en Administración de recursos, seleccione Claves y punto de conexión.

  3. Puede copiar y pegar key y document translation endpoint en los ejemplos de código para autenticar la solicitud en el servicio traducción de documentos. Solo se necesita una clave para realizar una llamada API.

    Screenshot showing the get your key field in Azure portal.

Creación de contenedores de Azure Blob Storage

Tiene que crear contenedores en la cuenta de Azure Blob Storage para los archivos de origen y destino.

  • Contenedor de origen. En este contenedor se cargan los archivos para su traducción (obligatorio).
  • Contenedor de destino. En este contenedor se almacenan los archivos traducidos (obligatorio).

Autenticación necesaria

Los elementos sourceUrl, targetUrl y el elemento opcional glossaryUrl deben incluir un token de firma de acceso compartido (SAS), que se anexa como una cadena de consulta. El token se puede asignar al contenedor o a blobs específicos. ConsulteCreación de tokens de SAS para el proceso de traducción de documentos.

  • El contenedor de origen o blob debe designar acceso de lectura y de lista.
  • El destino contenedor o blob debe designar escritura y acceso.
  • El blob del glosario debe designar acceso de lectura y lista.

Sugerencia

  • Si va a traducir varios archivos (blobs) en una operación, delegue el acceso de SAS en el nivel de contenedor.
  • Si va a traducir un único archivo (blob) en una operación, delegue el acceso de SAS en el nivel de blob.
  • Como alternativa a los tokens de SAS, puede usar una identidad administrada asignada por el sistema para la autenticación.

Documento de ejemplo

Para este proyecto, necesita un documento de origen cargado en el contenedor de origen. Para ese inicio rápido puede descargar nuestro documento de ejemplo de traducción de documentos. El idioma de origen es inglés.

Configuración de un entorno de C#/.NET

En este inicio rápido, se va a usar la versión más reciente del IDE de Visual Studio para compilar y ejecutar la aplicación.

  1. Inicie Visual Studio.

  2. En la página Introducción, seleccione Crear un proyecto.

    Screenshot of Visual Studio 2022 get started window.

  3. En la página Crear un proyecto, escriba consola en el cuadro de búsqueda. Elija la plantilla Aplicación de consola y, a continuación, seleccione Siguiente.

    Screenshot of Visual Studio 2022 create new project page.

  4. En la ventana de diálogo Configure su nuevo proyecto, escriba document-translation-qs en el cuadro Nombre de proyecto. Después, haga clic en Siguiente.

    Screenshot of Visual Studio 2022 configure new project set-up window.

  5. En la ventana de diálogo Información adicional, seleccione .NET 6.0 (Compatibilidad a largo plazo) y, a continuación, seleccione Crear.

    Screenshot of Visual Studio 2022 additional information set-up window.

Instalación de Newtonsoft.Json

  1. Haga clic con el botón derecho en el proyecto document-translation-qs y seleccione Administrar paquetes NuGet...

    Screenshot of select NuGet package window in Visual Studio.

  2. Seleccione la pestaña Examinar y escriba NewtonsoftJson.

    Screenshot of select prerelease NuGet package in Visual Studio.

  3. Seleccione la versión estable más reciente en el menú desplegable e instale el paquete en el proyecto.

    Screenshot of install selected NuGet package window.

Traducción de todos los documentos de un contenedor de almacenamiento

Nota

  • A partir de .NET 6, los nuevos proyectos que usan la plantilla console generan un nuevo estilo de programa que difiere de las versiones anteriores.
  • El nuevo tipo de salida usa características recientes de C# que simplifican el código que debe escribir.
  • Cuando se usa la versión más reciente, solo es necesario escribir el cuerpo del método Main. Es decir, no es necesario incluir instrucciones de nivel superior, directivas Using globales o directivas Using implícitas.
  • Para obtener más información, consulte Las nuevas plantillas de C# generan instrucciones de nivel superior.
  1. Abra el archivo Program.cs.

  2. Elimine el código preexistente, incluida la línea Console.WriteLine("Hello World!").

  3. Copie y pegue el código de ejemplo de traducción de documentos en el archivo Program.cs.

    • Actualice {your-document-translation-endpoint} y {your-key} con los valores de la instancia de Translator de Azure Portal.

    • Actualice {your-source-container-SAS-URL} y {your-target-container-SAS-URL} con los valores de la instancia de contenedores de la cuenta de Storage de Azure Portal.

Ejemplo de código

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para más información, consulteSeguridad de servicios de Azure AI.

using System.Text;

class Program
{
    private static readonly string endpoint = "{your-document-translator-endpoint}/translator/text/batch/v1.1";

    private static readonly string key = "{your-key}";

    static readonly string route = "/batches";
    static readonly string sourceURL = "\" {your-source-container-SAS-URL}\"";
    static readonly string targetURL = " \"{your-target-container-SAS-URL}\"";


    static readonly string json = ("{\"inputs\": [{\"source\": {\"sourceUrl\":"+sourceURL+" ,\"storageSource\": \"AzureBlob\",\"language\": \"en\"}, \"targets\": [{\"targetUrl\":"+targetURL+",\"storageSource\": \"AzureBlob\",\"category\": \"general\",\"language\": \"es\"}]}]}");

    static async Task Main(string[] args)
    {
        using HttpClient client = new HttpClient();
        using HttpRequestMessage request = new HttpRequestMessage();
        {

            StringContent content = new StringContent(json, Encoding.UTF8, "application/json");

            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            request.Content = content;

            HttpResponseMessage response = await client.SendAsync(request);
            string result = response.Content.ReadAsStringAsync().Result;
            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine($"Status code: {response.StatusCode}");
                Console.WriteLine();
                Console.WriteLine($"Response Headers:");
                Console.WriteLine(response.Headers);
            }
            else
                Console.Write("Error");

        }

    }

}

Ejecución de la aplicación

Una vez que haya agregado un código de ejemplo a la aplicación, seleccione el Iniciar verde que se encuentra el lado de document-translation-qs para compilar y ejecutar el programa, o bien presione F5.

Screenshot: run your Visual Studio program.

Tras completarse correctamente:

  • Los documentos traducidos se pueden encontrar en el contenedor de destino.
  • El método POST correcto devuelve un código de respuesta 202 Accepted que indica que el servicio ha creado la solicitud por lotes.
  • La solicitud POST también devuelve encabezados de respuesta, entre los que se incluye Operation-Location, que proporciona un valor utilizado en las solicitudes GET posteriores.

Configure el entorno de Go

Puede usar cualquier editor de texto para escribir aplicaciones de Go. Se recomienda usar la versión más reciente de Visual Studio Code y la extensión Go.

Sugerencia

Si es la primera vez que usa Go, pruebe el módulo de Learn Introducción a Go.

Si aún no lo ha hecho, descargue e instale Go.

  1. Descargue la versión más reciente de Go para su sistema operativo.

  2. Cuando se haya completado la descarga, ejecute el instalador.

  3. Abra un símbolo del sistema e introduzca el siguiente comando para confirmar que Go esté instalado:

    go version
    

Traducción de todos los documentos de un contenedor de almacenamiento

  1. En una ventana de consola (como CMD, PowerShell o Bash), cree un nuevo directorio para la aplicación que se llame document-translation-qs y vaya a él.

  2. Cree un nuevo archivo de Go denominado document-translation.go en el directorio document-translation-qs.

  3. Copie y pegue el código de ejemplo de traducción de documentos en el archivo document-translation.go.

    • Actualice {your-document-translation-endpoint} y {your-key} con los valores de la instancia de Translator de Azure Portal.

    • Actualice {your-source-container-SAS-URL} y {your-target-container-SAS-URL} con los valores de la instancia de contenedores de la cuenta de Storage de Azure Portal.

Ejemplo de código

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para más información, consulte Seguridad de servicios de Azure AI.

package main

import (
  "bytes"
  "encoding/json"
  "fmt"
  "net/http"
)

func main() {

    httpposturl := "{your-document-translation-endpoint}/translator/text/batch/v1.1/batches"
    fmt.Println("Response", httpposturl)

    var jsonData = []byte(`{
        "inputs": [
            {
                "source": {
                    "sourceUrl": "{your-source-container-SAS-URL}"
                },
                "targets": [
                    {
                        "{your-target-container-SAS-URL}",
                        "language": "fr"
                    }
                ]
            }
        ]
    }`)

    request, error := http.NewRequest("POST", httpposturl, bytes.NewBuffer(jsonData))
    request.Header.Set("Content-Type", "application/json")
    request.Header.Set("Ocp-Apim-Subscription-Key", "{your-key}")

    client := &http.Client{}
    response, error := client.Do(request)
    if error != nil {
        panic(error)
    }
    defer response.Body.Close()

    fmt.Println("response Status:", response.Status)
    var printHeader = (response.Header)
    prettyJSON, _ := json.MarshalIndent(printHeader, "", "  ")
    fmt.Printf("%s\n", prettyJSON)
}

Ejecute la aplicación Go

Una vez que haya agregado un código de ejemplo a la aplicación, el programa Go se podrá ejecutar mediante un símbolo del sistema o terminal. Asegúrese de que la ruta de acceso del símbolo del sistema esté establecida en la carpeta document-translation-qs y use el siguiente comando:

go run document-translation.go

Tras completarse correctamente:

  • Los documentos traducidos se pueden encontrar en el contenedor de destino.
  • El método POST correcto devuelve un código de respuesta 202 Accepted que indica que el servicio ha creado la solicitud por lotes.
  • La solicitud POST también devuelve encabezados de respuesta, entre los que se incluye Operation-Location, que proporciona un valor utilizado en las solicitudes GET posteriores.

Configuración del entorno Java

En este inicio rápido, se usará la herramienta de automatización de compilaciones Gradle para crear y ejecutar la aplicación.

  • Debe tener instalada la versión más reciente de Visual Studio Code o del IDE que prefiera usar. ConsulteJava en Visual Studio Code.

    Sugerencia

    • Visual Studio Code ofrece un paquete de codificación para Java para Windows y macOS. El paquete de codificación es un conjunto de VS Code, el Kit de desarrollo de Java (JDK) y una colección de extensiones sugeridas por Microsoft. El paquete de codificación también se puede usar para corregir un entorno de desarrollo existente.
    • Si usa VS Code y el paquete de codificación para Java, instale la extensión Gradle para Java.
  • Si no usa Visual Studio Code, asegúrese de que tiene lo siguiente instalado en el entorno de desarrollo:

Creación de un proyecto de Gradle

  1. En una ventana de consola (como CMD, PowerShell o Bash), cree un nuevo directorio para la aplicación que se llame document-translation y vaya a él.

    mkdir document-translation && document-translation
    
    mkdir document-translation; cd document-translation
    
  2. Ejecute el comando gradle init desde el directorio document-translation. Este comando creará archivos de compilación esenciales para Gradle, como build.gradle.kts, que se usa en el entorno de ejecución para crear y configurar la aplicación.

    gradle init --type basic
    
  3. Cuando se le solicite que elija un DSL, seleccione Kotlin.

  4. Acepte el nombre predeterminado del proyecto (document-translation). Para ello, presione las teclas INTRO o ENTRAR.

    Nota

    Puede tardar unos minutos en crearse toda la aplicación, pero pronto debería ver varias carpetas y archivos, incluido build-gradle.kts.

  5. Actualice build.gradle.kts con el siguiente código:

plugins {
  java
  application
}
application {
  mainClass.set("DocumentTranslation")
}
repositories {
  mavenCentral()
}
dependencies {
  implementation("com.squareup.okhttp3:okhttp:4.10.0")
  implementation("com.google.code.gson:gson:2.9.0")
}

Traducción de todos los documentos de un contenedor de almacenamiento

  1. En el directorio document-translation, ejecute el siguiente comando:

    mkdir -p src/main/java
    

    El comando crea la siguiente estructura de directorios:

    Screenshot: Java directory structure.

  2. Vaya al directorio java y cree un archivo denominado DocumentTranslation.java.

    Sugerencia

    • Puede crear un nuevo archivo mediante PowerShell.

    • Abra una ventana de PowerShell en el directorio del proyecto. Para ello, mantenga presionada la tecla Mayús y haga clic con el botón derecho en la carpeta.

    • Introduzca el siguiente comando New-Item DocumentTranslation.java.

    • También puede crear un nuevo archivo en el IDE que se llame DocumentTranslation.java y guardarlo en el directorio java.

  3. Copie y pegue el código de ejemplo de traducción de documentos en el archivo DocumentTranslation.java.

    • Actualice {your-document-translation-endpoint} y {your-key} con los valores de la instancia de Translator de Azure Portal.

    • Actualice {your-source-container-SAS-URL} y {your-target-container-SAS-URL} con los valores de la instancia de contenedores de la cuenta de Storage de Azure Portal.

Ejemplo de código

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para más información, consulteSeguridad de servicios de Azure AI.

import java.io.*;
import java.net.*;
import java.util.*;
import okhttp3.*;

public class DocumentTranslation {
    String key = "{your-key}";

    String endpoint = "{your-document-translation-endpoint}/translator/text/batch/v1.1";

    String path = endpoint + "/batches";

    String sourceSASUrl = "{your-source-container-SAS-URL}";

    String targetSASUrl = "{your-target-container-SAS-URL}";

    String jsonInputString = (String.format("{\"inputs\":[{\"source\":{\"sourceUrl\":\"%s\"},\"targets\":[{\"targetUrl\":\"%s\",\"language\":\"fr\"}]}]}", sourceSASUrl, targetSASUrl));

    OkHttpClient client = new OkHttpClient();

    public void post() throws IOException {
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType,  jsonInputString);
        Request request = new Request.Builder()
                .url(path).post(body)
                .addHeader("Ocp-Apim-Subscription-Key", key)
                .addHeader("Content-type", "application/json")
                .build();
        Response response = client.newCall(request).execute();
        System.out.println(response.code());
        System.out.println(response.headers());
    }

  public static void main(String[] args) {
        try {
            DocumentTranslation sampleRequest = new DocumentTranslation();
            sampleRequest.post();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

Compilación y ejecución de la aplicación de Java

  • Una vez agregado un código de ejemplo a la aplicación, vuelva al directorio principal del proyecto, document-translation. A continuación, abra una ventana de consola e introduzca los siguientes comandos:

    1. Compile la aplicación con el comando build:

      gradle build
      
    2. Ejecute la aplicación con el comando run:

      gradle run
      

Tras completarse correctamente:

  • Los documentos traducidos se pueden encontrar en el contenedor de destino.
  • El método POST correcto devuelve un código de respuesta 202 Accepted que indica que el servicio ha creado la solicitud por lotes.
  • La solicitud POST también devuelve encabezados de respuesta, entre los que se incluye Operation-Location, que proporciona un valor utilizado en las solicitudes GET posteriores.

Configuración del entorno de Node.js

En este inicio rápido, usaremos el entorno de ejecución de JavaScript de Node.js para crear y ejecutar la aplicación.

  1. Instale la versión más reciente de Node.js si todavía no lo ha hecho. La instalación de Node.js incluye el administrador de paquetes de nodos (npm).

    Sugerencia

    Si es la primera vez que usa Node.js, pruebe el módulo de Learn Introducción a Node.js.

  2. En una ventana de consola (como CMD, PowerShell o Bash), cree un directorio para la aplicación que se llame document-translation y vaya a él.

    mkdir document-translation && cd document-translation
    
    mkdir document-translation; cd document-translation
    
  3. Ejecute el comando "npm init" para inicializar la aplicación y aplicar la técnica scaffolding al proyecto.

    npm init
    
  4. Especifique los atributos del proyecto, para lo que debe aceptar las solicitudes que se presentan en el terminal.

    • Los atributos más importantes son el nombre, el número de versión y el punto de entrada.
    • Se recomienda mantener index.js para el nombre del punto de entrada. La descripción, el comando de prueba, el repositorio de GitHub, las palabras clave, el autor y la información de la licencia son atributos opcionales; se pueden omitir para este proyecto.
    • Acepte las sugerencias entre paréntesis seleccionando Retorno o Entrar.
    • Tras completar las solicitudes, se creará un archivo package.json en el directorio document-translation.
  5. Use npm para instalar la biblioteca HTTP axios y el paquete uuid en el directorio de la aplicación document-translation:

    npm install axios uuid
    

Traducción de todos los documentos de un contenedor de almacenamiento

  1. Cree el archivo index.js en el directorio de la aplicación.

    Sugerencia

    • Puede crear un nuevo archivo mediante PowerShell.

    • Abra una ventana de PowerShell en el directorio del proyecto. Para ello, mantenga presionada la tecla Mayús y haga clic con el botón derecho en la carpeta.

    • Introduzca el siguiente comando New-Item index.js.

    • También puede crear un nuevo archivo en el IDE que se llame index.js y guardarlo en el directorio document-translation.

  2. Copie y pegue el código de ejemplo de traducción de documentos en el archivo index.js.

    • Actualice {your-document-translation-endpoint} y {your-key} con los valores de la instancia de Translator de Azure Portal.

    • Actualice {your-source-container-SAS-URL} y {your-target-container-SAS-URL} con los valores de la instancia de contenedores de la cuenta de Storage de Azure Portal.

Ejemplo de código

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para más información, consulte Seguridad de servicios de Azure AI.

const axios = require('axios').default;

let endpoint = '{your-document-translation-endpoint}/translator/text/batch/v1.1';
let route = '/batches';
let key = '{your-key}';
let sourceSASUrl = "{your-source-container-SAS-URL}";
let targetSASUrl = "{your-target-container-SAS-URL}"

let data = JSON.stringify({"inputs": [
  {
      "source": {
          "sourceUrl": sourceSASUrl,
          "storageSource": "AzureBlob",
          "language": "en"
      },
      "targets": [
          {
              "targetUrl": targetSASUrl,
              "storageSource": "AzureBlob",
              "category": "general",
              "language": "es"}]}]});

let config = {
  method: 'post',
  baseURL: endpoint,
  url: route,
  headers: {
    'Ocp-Apim-Subscription-Key': key,
    'Content-Type': 'application/json'
  },
  data: data
};

axios(config)
.then(function (response) {
  let result = { statusText: response.statusText, statusCode: response.status, headers: response.headers };
  console.log()
  console.log(JSON.stringify(result, null, 2));
})
.catch(function (error) {
  console.log(error);
});

Ejecución de la aplicación de JavaScript

Una vez que haya agregado un ejemplo de código a la aplicación, ejecute el programa de la siguiente forma:

  1. Vaya al directorio de la aplicación (document-translation).

  2. Introduzca y ejecute el siguiente comando en el terminal:

    node index.js
    

Tras completarse correctamente:

  • Los documentos traducidos se pueden encontrar en el contenedor de destino.
  • El método POST correcto devuelve un código de respuesta 202 Accepted que indica que el servicio ha creado la solicitud por lotes.
  • La solicitud POST también devuelve encabezados de respuesta, entre los que se incluye Operation-Location, que proporciona un valor utilizado en las solicitudes GET posteriores.

Configuración del proyecto de Python

  1. Instale la versión más reciente de Python 3.x si todavía no lo ha hecho. La instalación de Python incluye el paquete del instalador de Python (pip).

    Sugerencia

    Si es la primera vez que usa Python, pruebe el módulo de Learn Introducción a Python.

  2. Abra una ventana de terminal y use el comando pip para instalar la biblioteca de solicitudes y el paquete uuid0:

    pip install requests uuid
    

Traducción de todos los documentos de un contenedor de almacenamiento

  1. Utilice el editor o IDE que prefiera para crear un directorio para la aplicación denominado document-translation.

  2. Cree un archivo de Python denominado document-translation.py en el directorio document-translation.

  3. Copie y pegue el código de ejemplo de traducción de documentos en el archivo document-translation.py.

    • Actualice {your-document-translation-endpoint} y {your-key} con los valores de la instancia de Translator de Azure Portal.

    • Actualice {your-source-container-SAS-URL} y {your-target-container-SAS-URL} con los valores de la instancia de contenedores de la cuenta de Storage de Azure Portal.

Ejemplo de código

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para más información, consulteSeguridad de servicios de Azure AI.

import requests

endpoint = '{your-document-translation-endpoint}'
key =  '{your-key}'
path = 'translator/text/batch/v1.1/batches'
constructed_url = endpoint + path

sourceSASUrl = '{your-source-container-SAS-URL}'

targetSASUrl = '{your-target-container-SAS-URL}'

body= {
    "inputs": [
        {
            "source": {
                "sourceUrl": sourceSASUrl,
                "storageSource": "AzureBlob",
                "language": "en"
            },
            "targets": [
                {
                    "targetUrl": targetSASUrl,
                    "storageSource": "AzureBlob",
                    "category": "general",
                    "language": "es"
                }
            ]
        }
    ]
}
headers = {
  'Ocp-Apim-Subscription-Key': key,
  'Content-Type': 'application/json',
}

response = requests.post(constructed_url, headers=headers, json=body)
response_headers = response.headers

print(f'response status code: {response.status_code}\nresponse status: {response.reason}\n\nresponse headers:\n')

for key, value in response_headers.items():
    print(key, ":", value)

Ejecución de la aplicación de Python

Una vez que haya agregado un ejemplo de código a la aplicación, compile y ejecute el programa:

  1. Vaya al directorio document-translation.

  2. Introduzca y ejecute el siguiente comando en la consola:

    python document-translation.py
    

Tras completarse correctamente:

  • Los documentos traducidos se pueden encontrar en el contenedor de destino.
  • El método POST correcto devuelve un código de respuesta 202 Accepted que indica que el servicio ha creado la solicitud por lotes.
  • La solicitud POST también devuelve encabezados de respuesta, entre los que se incluye Operation-Location, que proporciona un valor utilizado en las solicitudes GET posteriores.

Configuración del entorno de programación

En este inicio rápido, usaremos la herramienta de línea de comandos cURL para realizar llamadas API REST de Traducción de documentos.

Nota

El paquete cURL está preinstalado en la mayoría de las distribuciones tanto de Windows 10 y Windows 11 como de macOS y Linux. Puede comprobar la versión del paquete con los siguientes comandos: Windows: curl.exe -V. macOS curl -V Linux: curl --version

Si cURL no está instalado, estos son los vínculos para su plataforma:

Traducción de documentos (solicitud POST)

  1. Utilice el editor o IDE que prefiera para crear un directorio para la aplicación denominado document-translation.

  2. Cree un archivo de JSON denominado document-translation.json en el directorio document-translation.

  3. Copie y pegue la solicitud de ejemplo de traducción de documentos en el archivo document-translation.json. Sustituya {your-source-container-SAS-URL} y {your-target-container-SAS-URL} con los valores de la instancia de contenedores de la cuenta de Storage de Azure Portal.

    Solicitud de ejemplo:

    {
      "inputs":[
        {
          "source":{
            "sourceUrl":"{your-source-container-SAS-URL}"
          },
          "targets":[
            {
              "targetUrl":"{your-target-container-SAS-URL}",
              "language":"fr"
            }
          ]
        }
      ]
    }
    

Compilación y ejecución de la solicitud POST

Antes de ejecutar la solicitud POST, reemplace {your-document-translator-endpoint} y {your-key} por los valores de la instancia de Translator de Azure Portal.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para más información, consulteSeguridad de servicios de Azure AI.

PowerShell

cmd /c curl "{your-document-translator-endpoint}/translator/text/batch/v1.1/batches" -i -X POST --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@document-translation.json"

command prompt/terminal

curl "{your-document-translator-endpoint}/translator/text/batch/v1.1/batches" -i -X POST --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@document-translation.json"

Tras completarse correctamente:

  • Los documentos traducidos se pueden encontrar en el contenedor de destino.
  • El método POST correcto devuelve un código de respuesta 202 Accepted que indica que el servicio ha creado la solicitud por lotes.
  • La solicitud POST también devuelve encabezados de respuesta, entre los que se incluye Operation-Location, que proporciona un valor utilizado en las solicitudes GET posteriores.

Eso es todo, ¡enhorabuena! En este inicio rápido, ha usado Traducción de documentos para traducir un documento conservando la estructura original y el formato de datos.

Pasos siguientes