비동기 문서 번역 시작

문서 번역은 지원되는 언어 및 다양한 파일 형식으로 전체 문서를 비동기식으로 번역하는 Azure AI 번역기 서비스의 클라우드 기반 기능입니다. 이 빠른 시작에서는 구조 및 텍스트 서식을 유지하면서 원본 문서를 대상 언어로 번역하기 위해 선택한 프로그래밍 언어로 문서 번역을 사용하는 방법을 알아봅니다.

필수 조건

Important

  • Java 및 JavaScript 문서 번역 SDK는 현재 공개 미리 보기에서 사용할 수 있습니다. 기능, 방식 및 프로세스는 GA(일반 공급) 릴리스 전에 사용자 피드백에 따라 변경될 수 있습니다.

  • C# 및 Python SDK는 프로덕션 애플리케이션에서 사용할 준비가 된 GA(일반 공급) 릴리스입니다.

  • 문서 번역은 현재 Translator(단일 서비스) 리소스에서만 지원되며, Azure AI 서비스(다중 서비스) 리소스에는 포함되지 않습니다.

  • 문서 번역은 S1 표준 서비스 계획(종량제) 또는 D3 볼륨 할인 플랜에서 지원됩니다. Azure AI 서비스 가격 책정 - 번역기를 참조하세요.

시작하려면 다음이 필요합니다.

  • 활성 Azure 계정. 계정이 없는 경우 체험 계정을 만들 수 있습니다 .

  • Azure Blob Storage 계정 또한 원본 및 대상 파일에 대한 Azure Blob Storage 계정에 컨테이너를 생성해야 합니다.

    • 원본 컨테이너. 이 컨테이너는 번역을 위해 파일을 업로드하는 위치입니다(필수).
    • 대상 컨테이너. 이 컨테이너는 번역된 파일이 저장되는 곳입니다(필수).
  • 단일 서비스 번역기 리소스(다중 서비스 Azure AI 서비스 리소스가 아님):

    다음과 같이 Translator 프로젝트 및 인스턴스 세부 정보 필드를 완료합니다.

    1. 구독. 사용 가능한 Azure 구독 중 하나를 선택합니다.

    2. 리소스 그룹. 새 리소스 그룹을 만들거나 동일한 수명 주기, 권한 및 정책을 공유하는 기존 리소스 그룹에 리소스를 추가할 수 있습니다.

    3. 리소스 지역. 비즈니스 또는 애플리케이션에서 특정 지역을 요구하지 않는 한 전체를 선택합니다. 인증에 시스템 할당 관리 ID를 사용하려는 경우 미국 서부와 같은 지리적 지역을 선택합니다.

    4. Name(이름): 리소스에 대해 선택한 이름을 입력합니다. 선택하는 이름이 Azure 내에서 고유해야 합니다.

      참고 항목

      문서 번역에는 사용자 지정 도메인 엔드포인트가 필요합니다. 이름 필드에 입력하는 값은 엔드포인트에 대한 사용자 지정 도메인 이름 매개 변수가 됩니다.

    5. 가격 책정 계층. 무료 계층에서는 문서 번역이 지원되지 않습니다. 표준 S1을 선택하여 서비스를 시도합니다.

    6. 검토 + 생성를 선택합니다.

    7. 서비스 약관을 검토하고 만들기를 선택하여 리소스를 배포합니다.

    8. 리소스를 성공적으로 배포한 후 리소스로 이동을 선택합니다.

키 및 문서 번역 엔드포인트 검색

번역기 서비스에 대한 요청은 액세스를 인증하기 위해 읽기 전용 키 및 사용자 지정 엔드포인트가 필요합니다. 사용자 지정 do기본 엔드포인트는 리소스 이름, 호스트 이름 및 번역기 하위 디렉터리로 포맷된 URL이며 Azure Portal에서 사용할 수 있습니다.

  1. 새 리소스를 만든 경우 배포한 후 리소스로 이동을 선택합니다. 기존 문서 번역 리소스가 있는 경우 리소스 페이지로 직접 이동합니다.

  2. 왼쪽 레일의 리소스 관리에서 키 및 엔드포인트를 선택합니다.

  3. 코드 샘플을 복사하여 붙여 keydocument translation endpoint 넣어 문서 번역 서비스에 대한 요청을 인증할 수 있습니다. API 호출을 수행하는 데는 키가 하나만 필요합니다.

    Screenshot showing the get your key field in Azure portal.

Azure Blob Storage 컨테이너 만들기

원본 및 대상 파일에 대한 Azure Blob Storage 계정에서 컨테이너를 생성해야 합니다.

  • 원본 컨테이너. 이 컨테이너는 번역을 위해 파일을 업로드하는 위치입니다(필수).
  • 대상 컨테이너. 이 컨테이너는 번역된 파일이 저장되는 곳입니다(필수).

필수 인증

sourceUrl, targetUrl 및 선택적 glossaryUrl에는 쿼리 문자열로 추가된 SAS(공유 액세스 서명) 토큰이 포함되어야 합니다. 토큰은 컨테이너 또는 특정 Blob에 할당할 수 있습니다. 문서 번역을 위한 SAS 토큰 생성 프로세스참조하세요.

  • 원본 컨테이너 또는 Blob은 읽기목록 액세스를 지정해야 합니다.
  • 대상 컨테이너 또는 Blob은 쓰기목록 액세스를 지정해야 합니다.
  • 용어집 Blob은 읽기목록 액세스를 지정해야 합니다.

  • 작업에서 여러 파일(Blob)을 번역하는 경우 컨테이너 수준에서 SAS 액세스 권한을 위임합니다.
  • 작업에서 단일 파일(Blob)을 변환하는 경우 Blob 수준에서 SAS 액세스를 위임합니다.
  • SAS 토큰 대신 시스템이 할당한 관리 ID를 인증에 사용할 수 있습니다.

샘플 문서

이 프로젝트의 경우 원본 컨테이너업로드된 원본 문서가 필요합니다. 이 빠른 시작에서는 문서 번역 샘플 문서를 다운로드할 수 있습니다. 소스 언어는 영어입니다.

C#/.NET 환경 설정

이 빠른 시작에서는 최신 버전의 Visual Studio IDE를 사용하여 애플리케이션을 빌드하고 실행합니다.

  1. Visual Studio를 시작합니다.

  2. 시작 페이지에서 새 프로젝트 만들기를 선택합니다.

    Screenshot of Visual Studio 2022 get started window.

  3. 새 프로젝트 만들기 페이지의 검색 상자에서 콘솔을 입력합니다. 콘솔 애플리케이션 템플릿을 선택한 다음, 다음을 선택합니다.

    Screenshot of Visual Studio 2022 create new project page.

  4. 새 프로젝트 구성 대화 상자 창에서 프로젝트 이름 상자에 입력 document-translation-qs 합니다. 다음을 선택합니다.

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

  5. 추가 정보 대화 창에서 .NET 6.0(장기 지원)을 선택한 다음, 만들기를 선택합니다.

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

Newtonsoft.Json 설치

  1. 문서 번역-qs 프로젝트를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다...

    Screenshot of select NuGet package window in Visual Studio.

  2. 찾아보기 탭을 선택하고 NewtonsoftJson을 입력합니다.

    Screenshot of select prerelease NuGet package in Visual Studio.

  3. 드롭다운 메뉴에서 안정적인 최신 버전을 선택하고 프로젝트에 패키지를 설치합니다.

    Screenshot of install selected NuGet package window.

스토리지 컨테이너의 모든 문서 번역

참고 항목

  • .NET 6부터 console 템플릿을 사용하는 새 프로젝트는 이전 버전과 다른 새 프로그램 스타일을 생성합니다.
  • 새 출력에서는 작성해야 하는 코드를 간소화하는 최신 C# 기능을 사용합니다.
  • 최신 버전을 사용하는 경우 Main 메서드 본문을 작성하기만 하면 됩니다. 최상위 문, 전역 using 지시문 또는 암시적 using 지시문을 포함할 필요가 없습니다.
  • 자세한 내용은 최상위 문을 생성하는 새 C# 템플릿을 참조하세요.
  1. Program.cs 파일을 엽니다.

  2. Console.WriteLine("Hello World!") 줄을 포함하여 기존 코드를 삭제합니다.

  3. 문서 번역 코드 샘플을 복사하여 Program.cs 파일에 붙여넣습니다.

    • Azure Portal 번역기 인스턴스의 값을 업데이트 {your-document-translation-endpoint} 하고 {your-key} 사용합니다.

    • {your-target-container-SAS-URL} Azure Portal Storage 계정 컨테이너 인스턴스의 값을 업데이트 {your-source-container-SAS-URL} 하고 사용합니다.

코드 샘플

Important

완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 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");

        }

    }

}

애플리케이션 실행

애플리케이션에 코드 샘플을 추가한 후 document-translation-qs 옆에 있는 녹색 시작 단추를 선택하여 프로그램을 빌드하고 실행하거나 F5 키를 누릅니다.

Screenshot: run your Visual Studio program.

성공적으로 완료되면 다음을 수행합니다.

  • 번역된 문서는 대상 컨테이너에서 찾을 수 있습니다.
  • 성공적인 POST 메서드는 서비스에서 일괄 처리 요청을 생성했음을 나타내는 응답 코드를 반환 202 Accepted 합니다.
  • POST 요청은 후속 GET 요청에 사용되는 값을 제공하는 응답 헤더 Operation-Location 도 반환합니다.

Go 환경 설정

텍스트 편집기를 사용하여 Go 애플리케이션을 작성할 수 있습니다. 최신 버전의 Visual Studio Code 및 Go 확장을 사용하는 것이 좋습니다.

Go를 처음 사용하는 경우 Go 시작하기 Learn 모듈을 사용해 보세요.

아직 수행하지 않은 경우 Go다운로드하여 설치합니다.

  1. 운영 체제에 Go 버전을 다운로드합니다.

  2. 다운로드가 완료되면 설치 관리자를 실행합니다.

  3. 명령 프롬프트를 열고 다음을 입력하여 Go가 설치되었는지 확인합니다.

    go version
    

스토리지 컨테이너의 모든 문서 번역

  1. 콘솔 창(예: cmd, PowerShell 또는 Bash)에서 문서 번역-qs라는 앱에 대한 새 디렉터리를 만들고 해당 디렉터리로 이동합니다.

  2. document-translation-qs 디렉터리에 document-translation.go 라는 새 Go 파일을 만듭니다.

  3. 문서 번역 코드 샘플을 복사하여 document-translation.go 파일에 붙여넣습니다.

    • Azure Portal 번역기 인스턴스의 값을 업데이트 {your-document-translation-endpoint} 하고 {your-key} 사용합니다.

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} Azure Portal Storage 계정 컨테이너 인스턴스의 값으로 업데이트합니다.

코드 샘플

Important

완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 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)
}

Go 애플리케이션 실행

애플리케이션에 코드 샘플을 추가한 후에는 명령 또는 터미널 프롬프트에서 Go 프로그램을 실행할 수 있습니다. 프롬프트의 경로가 document-translation-qs 폴더로 설정되어 있는지 확인하고 다음 명령을 사용합니다.

go run document-translation.go

성공적으로 완료되면 다음을 수행합니다.

  • 번역된 문서는 대상 컨테이너에서 찾을 수 있습니다.
  • 성공적인 POST 메서드는 서비스에서 일괄 처리 요청을 생성했음을 나타내는 응답 코드를 반환 202 Accepted 합니다.
  • POST 요청은 후속 GET 요청에 사용되는 값을 제공하는 응답 헤더 Operation-Location 도 반환합니다.

Java 환경 설정

이 빠른 시작에서는 Gradle 빌드 자동화 도구를 사용하여 애플리케이션을 만들고 실행합니다.

  • 최신 버전의 Visual Studio Code 또는 선호하는 IDE가 있어야 합니다. Visual Studio Code의 Java를 참조하세요.

    • Visual Studio Code는 Windows 및 macOS에 대한 Java용 코딩 팩을 제공합니다. 코딩 팩은 VS Code 번들, JDK(Java Development Kit) 및 Microsoft에서 제안하는 확장 컬렉션입니다. 코딩 팩을 사용하여 기존 개발 환경을 수정할 수도 있습니다.
    • VS Code와 Java용 코딩 팩을 사용하는 경우 Java용 Gradle 확장을 설치합니다.
  • Visual Studio Code를 사용하지 않는 경우 개발 환경에 다음이 설치되어 있는지 확인합니다.

새 Gradle 프로젝트 만들기

  1. 콘솔 창(예: cmd, PowerShell 또는 Bash)에서 문서 번역이라는 앱에 대한 새 디렉터리를 만들고 해당 디렉터리로 이동합니다.

    mkdir document-translation && document-translation
    
    mkdir document-translation; cd document-translation
    
  2. gradle init 문서 번역 디렉터리에서 명령을 실행합니다. 이 명령은 런타임에 애플리케이션을 만들고 구성하는 데 사용되는 build.gradle.kts를 포함하여 Gradle에 대한 필수 빌드 파일을 만듭니다.

    gradle init --type basic
    
  3. DSL을 선택하라는 메시지가 표시되면 Kotlin을 선택합니다.

  4. 반환 또는 Enter를 선택하여 기본 프로젝트 이름(문서 번역)을 적용합니다.

    참고 항목

    전체 애플리케이션을 만드는 데 몇 분 정도 걸릴 수 있지만 곧 여러 폴더와 파일을 포함 build-gradle.kts해야 합니다.

  5. 다음 코드를 사용하여 build.gradle.kts을 업데이트합니다.

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")
}

스토리지 컨테이너의 모든 문서 번역

  1. 문서 번역 디렉터리에서 다음 명령을 실행합니다.

    mkdir -p src/main/java
    

    이 명령은 다음 디렉터리 구조를 만듭니다.

    Screenshot: Java directory structure.

  2. java 디렉터리로 이동하고 DocumentTranslation.java라는 파일을 만듭니다.

    • PowerShell을 사용하여 새 파일을 만들 수 있습니다.

    • Shift 키를 누른 채 폴더를 마우스 오른쪽 단추로 클릭하여 프로젝트 디렉터리에서 PowerShell 창을 엽니다.

    • 다음 명령 New-Item DocumentTranslation.java 입력합니다.

    • IDE에서 DocumentTranslation.java라는 새 파일을 만들어 java 디렉터리에 저장할 수도 있습니다.

  3. 문서 번역 코드 샘플을 복사하여 DocumentTranslation.java 파일에 붙여넣습니다.

    • Azure Portal 번역기 인스턴스의 값을 업데이트 {your-document-translation-endpoint} 하고 {your-key} 사용합니다.

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} Azure Portal Storage 계정 컨테이너 인스턴스의 값으로 업데이트합니다.

코드 샘플

Important

완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 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);
        }
    }
}

Java 애플리케이션 빌드 및 실행

  • 애플리케이션에 코드 샘플을 추가한 후 기본 프로젝트 디렉터리, 문서 번역으로 다시 이동하여 콘솔 창을 열고 다음 명령을 입력합니다.

    1. build 명령을 사용하여 애플리케이션을 빌드합니다.

      gradle build
      
    2. run 명령을 사용하여 애플리케이션을 실행합니다.

      gradle run
      

성공적으로 완료되면 다음을 수행합니다.

  • 번역된 문서는 대상 컨테이너에서 찾을 수 있습니다.
  • 성공적인 POST 메서드는 서비스에서 일괄 처리 요청을 생성했음을 나타내는 응답 코드를 반환 202 Accepted 합니다.
  • POST 요청은 후속 GET 요청에 사용되는 값을 제공하는 응답 헤더 Operation-Location 도 반환합니다.

Node.js 환경 설정

이 빠른 시작에서는 Node.js JavaScript 런타임 환경을 사용하여 애플리케이션을 만들고 실행합니다.

  1. 아직 설치하지 않은 경우 최신 버전의 Node.js를 설치합니다. npm(노드 패키지 관리자)은 모든 Node.js 설치에 포함되어 있습니다.

    Node.js를 처음 사용하는 경우 Node.js 소개 Learn 모듈을 사용해 보세요.

  2. 콘솔 창(예: cmd, PowerShell 또는 Bash)에서 document-translation이라는 앱에 대한 새 디렉터리를 만들고 탐색합니다.

    mkdir document-translation && cd document-translation
    
    mkdir document-translation; cd document-translation
    
  3. npm init 명령을 실행하여 애플리케이션을 초기화하고 프로젝트를 스캐폴드합니다.

    npm init
    
  4. 터미널에 표시되는 프롬프트를 수락하여 프로젝트의 특성을 지정합니다.

    • 가장 중요한 특성은 이름, 버전 번호, 진입점입니다.
    • 진입점 이름을 index.js로 유지하는 것이 좋습니다. 설명, 테스트 명령, GitHub 리포지토리, 키워드, 작성자, 라이선스 정보는 선택적 특성이며 이 프로젝트에서 건너뛸 수 있습니다.
    • Return 또는 Enter 키를 선택하여 괄호 안의 제안을 수락합니다.
    • 프롬프트 package.json 를 완료하면 문서 번역 디렉터리에 파일이 만들어집니다.
  5. npm을 사용하여 문서 번역 앱 디렉터리에 HTTP 라이브러리 및 uuid 패키지를 설치 axios 합니다.

    npm install axios uuid
    

스토리지 컨테이너의 모든 문서 번역

  1. index.js 앱 디렉터리에 파일을 만듭니다.

    • PowerShell을 사용하여 새 파일을 만들 수 있습니다.

    • Shift 키를 누른 채 폴더를 마우스 오른쪽 단추로 클릭하여 프로젝트 디렉터리에서 PowerShell 창을 엽니다.

    • New-Item index.js 다음 명령을 입력합니다.

    • IDE에서 index.js라는 새 파일을 만들어 document-translation 디렉터리에 저장할 수도 있습니다.

  2. 문서 번역 코드 샘플을 복사하여 파일에 붙여넣습니다 index.js .

    • Azure Portal 번역기 인스턴스의 값을 업데이트 {your-document-translation-endpoint} 하고 {your-key} 사용합니다.

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} Azure Portal Storage 계정 컨테이너 인스턴스의 값으로 업데이트합니다.

코드 샘플

Important

완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 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);
});

JavaScript 애플리케이션 실행

애플리케이션에 코드 샘플을 추가했으면 프로그램을 실행합니다.

  1. 애플리케이션 디렉터리(문서 번역)로 이동합니다.

  2. 터미널에서 다음 명령을 입력하고 실행합니다.

    node index.js
    

성공적으로 완료되면 다음을 수행합니다.

  • 번역된 문서는 대상 컨테이너에서 찾을 수 있습니다.
  • 성공적인 POST 메서드는 서비스에서 일괄 처리 요청을 생성했음을 나타내는 응답 코드를 반환 202 Accepted 합니다.
  • POST 요청은 후속 GET 요청에 사용되는 값을 제공하는 응답 헤더 Operation-Location 도 반환합니다.

Python 프로젝트 설정

  1. 아직 설치하지 않은 경우 최신 버전의 Python 3.x를 설치합니다. Python 설치 관리자 패키지(pip)는 Python 설치에 포함됩니다.

    Python을 처음 사용하는 경우 Python 소개 Learn 모듈을 사용해 보세요.

  2. 터미널 창을 열고 pip를 사용하여 요청 라이브러리 및 uuid0 패키지를 설치합니다.

    pip install requests uuid
    

스토리지 컨테이너의 모든 문서 번역

  1. 기본 설정 편집기 또는 IDE를 사용하여 이름이 지정된 document-translation앱에 대한 새 디렉터리를 만듭니다.

  2. 문서 번역 디렉터리에 document-translation.py 라는 새 Python 파일을 만듭니다.

  3. 문서 번역 코드 샘플을 복사하여 파일에 붙여넣습니다 document-translation.py .

    • Azure Portal 번역기 인스턴스의 값을 업데이트 {your-document-translation-endpoint} 하고 {your-key} 사용합니다.

    • {your-source-container-SAS-URL}{your-target-container-SAS-URL} Azure Portal Storage 계정 컨테이너 인스턴스의 값으로 업데이트합니다.

코드 샘플

Important

완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 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)

Python 애플리케이션 실행

애플리케이션에 코드 샘플을 추가한 후 프로그램을 빌드하고 실행합니다.

  1. 문서 번역 디렉터리로 이동합니다.

  2. 콘솔에서 다음 명령을 입력하고 실행합니다.

    python document-translation.py
    

성공적으로 완료되면 다음을 수행합니다.

  • 번역된 문서는 대상 컨테이너에서 찾을 수 있습니다.
  • 성공적인 POST 메서드는 서비스에서 일괄 처리 요청을 생성했음을 나타내는 응답 코드를 반환 202 Accepted 합니다.
  • POST 요청은 후속 GET 요청에 사용되는 값을 제공하는 응답 헤더 Operation-Location 도 반환합니다.

프로그래밍 환경 설정

이 빠른 시작에서는 cURL 명령줄 도구를 사용하여 문서 번역 REST API를 호출합니다.

참고 항목

cURL 패키지는 대부분의 Windows 10 및 Windows 11 및 대부분의 macOS 및 Linux 배포판에 미리 설치되어 있습니다. 다음 curl.exe -V명령을 사용하여 패키지 버전을 검사 수 있습니다. macOS curl -V Linux: curl --version

cURL이 설치되지 않은 경우 플랫폼에 대한 링크는 다음과 같습니다.

문서 번역(POST 요청)

  1. 기본 설정 편집기 또는 IDE를 사용하여 이름이 지정된 document-translation앱에 대한 새 디렉터리를 만듭니다.

  2. 문서 번역 디렉터리에 document-translation.json 이라는 새 json 파일을 만듭니다.

  3. 문서 번역 요청 샘플을 복사하여 파일에 붙여넣습니다 document-translation.json . {your-target-container-SAS-URL} Azure Portal Storage 계정 컨테이너 인스턴스의 값으로 대체 {your-source-container-SAS-URL} 합니다.

    요청 샘플:

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

POST 요청 빌드 및 실행

POST 요청을 실행하기 전에 Azure Portal 번역기 인스턴스의 값으로 바꿉 {your-document-translator-endpoint}{your-key} 니다.

Important

완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 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"

명령 프롬프트/터미널

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"

성공적으로 완료되면 다음을 수행합니다.

  • 번역된 문서는 대상 컨테이너에서 찾을 수 있습니다.
  • 성공적인 POST 메서드는 서비스에서 일괄 처리 요청을 생성했음을 나타내는 응답 코드를 반환 202 Accepted 합니다.
  • POST 요청은 후속 GET 요청에 사용되는 값을 제공하는 응답 헤더 Operation-Location 도 반환합니다.

완료되었습니다. 축하합니다! 이 빠른 시작에서는 문서 번역을 사용하여 원래 구조와 데이터 형식을 유지하면서 문서를 번역했습니다.

다음 단계