快速入门:Azure AI 翻译 REST API

试用最新版本的 Azure AI 翻译。 在本快速入门中,开始使用翻译器服务以所选的编程语言或 REST API 翻译文本。 对于此项目,建议你在学习技术时使用免费定价层 (F0),在以后再升级到付费层进行生产。

先决条件

需要一个活动 Azure 订阅。 如果没有 Azure 订阅,可创建一个试用版订阅

  • 获得 Azure 订阅后,在 Azure 门户中创建一个翻译器资源

  • 部署资源后,选择“转到资源”并检索密钥和终结点。

    • 需要从资源获取密钥和终结点,以便将应用程序连接到翻译器服务。 稍后需要在本快速入门中将密钥和终结点粘贴到代码中。 可以在 Azure 门户的“密钥和终结点”页面上找到这些值:

      屏幕截图:Azure 门户的“密钥和终结点”页面。

      备注

      • 对于本快速入门,建议使用文本翻译单服务全局资源。
      • 使用单服务全局资源,你将在 REST API 请求中包含一个授权标头 (Ocp-Apim-Subscription-key)。 Ocp-Apim-Subscription-key 的值是文本翻译订阅的 Azure 密钥。
      • 如果选择使用 Azure AI 多服务或区域翻译资源,则需要两个身份验证标头(Ocp-Api-Subscription-KeyOcp-Api-Subscription-Region)。 Ocp-Apim-Subscription-Region 的值是与订阅关联的区域。
      • 有关如何使用 Ocp-Apim-Subscription-Region 标头的详细信息,请参阅文本翻译 REST API 标头

标头

若要通过 REST API 调用翻译器服务,需要在每个请求中包含以下标头。 不用担心,我们会在每种编程语言的示例代码中为你包含标头。

有关翻译器身份验证选项的详细信息,请参阅翻译器 v3 参考指南。

标头 条件
Ocp-Apim-Subscription-Key Azure 门户中的翻译器服务密钥。 必需
Ocp-Apim-Subscription-Region 创建资源的区域。 • 使用 Azure AI 多服务或区域(地理)资源(如“中国北部”)时为必填项
• 使用单服务全局翻译资源时为可选项
Content-Type 有效负载的内容类型。 接受的值为 application/jsoncharset=UTF-8 必需
Content-Length 请求正文的长度 可选

重要

完成后,请记住将密钥从代码中删除,并且永远不要公开发布该密钥。 对于生产来说,请使用安全的方式存储和访问凭据,例如 Azure Key Vault。 有关详细信息,请参阅 Azure AI 服务安全性一文。

翻译文本

翻译器服务的核心操作是翻译文本。 在本快速入门中,你使用所选的编程语言生成一个请求,该请求采用单个源 (from) 并提供两个输出 (to)。 然后,我们将查看一些参数,这些参数可用于调整请求和响应。

有关 Azure AI 翻译服务请求限制的详细信息,请参阅文本翻译请求限制

设置 Node.js Express 项目

  1. 请确保安装了最新版本的 Node.js。 Node.js 安装中包含了 Node 包管理器 (npm)。

    提示

    如果你不熟悉 Node.js,请尝试学习 Node.js 简介 Learn 模块。

  2. 在控制台窗口(例如 cmd、PowerShell 或 Bash)中,为应用创建名为 translator-app 的新目录,并导航到该目录。

        mkdir translator-app && cd translator-app
    
      mkdir translator-app; cd translator-app
    
  3. 运行 npm init 命令以初始化应用程序并为项目构建基架。

       npm init
    
  4. 使用终端中提供的提示指定项目的属性。

    • 最重要的属性包括名称、版本号和入口点。
    • 建议保留 index.js 作为入口点名称。 描述、测试命令、GitHub 存储库、关键字、作者和许可证信息均为可选属性 —— 在此项目中可跳过。
    • 通过选择“Return”或“Enter”,接受括号中的建议。
    • 完成提示后,translator-app 目录中会创建一个 package.json 文件。
  5. 打开控制台窗口,并使用 npm 安装 axios HTTP 库和 uuid 包:

       npm install axios uuid
    
  6. 在应用程序目录中创建 index.js 文件。

    提示

    • 可以使用 Powershell 创建新文件。

    • 按住 Shift 键并右键单击该文件夹,在项目目录中打开 Powershell 窗口。

    • 键入以下命令:New-Item index.js

    • 还可以在 IDE 中创建名为 index.js 的新文件并将其保存到 translator-app 目录。

生成 JavaScript 应用程序

将以下代码示例添加到 index.js 文件中。 确保使用 Azure 门户翻译器实例中的值更新密钥变量

    const axios = require('axios').default;
    const { v4: uuidv4 } = require('uuid');

    let key = "<your-translator-key>";
    let endpoint = "https://api.translator.azure.cn";

    // location, also known as region.
    // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    let location = "<YOUR-RESOURCE-LOCATION>";

    axios({
        baseURL: endpoint,
        url: '/translate',
        method: 'post',
        headers: {
            'Ocp-Apim-Subscription-Key': key,
             // location required if you're using a multi-service or regional (not global) resource.
            'Ocp-Apim-Subscription-Region': location,
            'Content-type': 'application/json',
            'X-ClientTraceId': uuidv4().toString()
        },
        params: {
            'api-version': '3.0',
            'from': 'en',
            'to': 'fr,zu'
        },
        data: [{
            'text': 'I would really like to drive your car around the block a few times!'
        }],
        responseType: 'json'
    }).then(function(response){
        console.log(JSON.stringify(response.data, null, 4));
    })

运行 JavaScript 应用程序

将代码示例添加到应用程序后,运行程序:

  1. 导航到应用程序目录 (translator-app)。

  2. 在终端中键入以下命令:

    node index.js
    

翻译输出:

成功调用后,应会看到以下响应:

[
    {
        "translations": [
            {
                "text": "J'aimerais vraiment conduire votre voiture autour du pâté de maisons plusieurs fois!",
                "to": "fr"
            },
            {
                "text": "Ngingathanda ngempela ukushayela imoto yakho endaweni evimbelayo izikhathi ezimbalwa!",
                "to": "zu"
            }
        ]
    }
]

后续步骤

完成了,恭喜! 你已了解如何使用翻译器服务翻译文本。

请浏览我们的操作指南文档并深入了解翻译服务的功能: