クラウド型 ワークフロー

業務プロセスで「翻訳こんにゃく」を使う

業務プロセスの途中で、翻訳サービス(Google Translate API)を使う方法について、解説します。

「翻訳こんにゃく」は「ドラえもん」で登場するひみつ道具の1つです。ふざけたタイトルをつけていますが、業務プロセス内で翻訳サービスの API を自動的に呼び出すという話です。例えば問い合わせ対応業務において、海外から外国語での問い合わせがあった時に、その内容をあらかじめ自動翻訳し理解の助けにすることが考えられます。

今回は翻訳こんにゃくとして Google Translator API を使い、日本語で入力したテキストを英語に翻訳するサンプルを実装します。

Google Translator API の REST を直接呼びだします。REST の呼び出しには、業務プロセスの途中で HTTP リクエストを自動的に行う、「メッセージ送信中間イベント (HTTP)」 を利用します。プロセスモデルの全体図は以下の通りです。

use-google-translate-api

1.データの設定

必要なデータ項目は以下の3つです。

番号 名前 データ型 補足説明
0 日本語 文字型複数行 翻訳元のテキストを保存します。
1 英語 文字型複数行 翻訳されたテキストを保存します。
2 API レスポンス 文字型複数行 Google Translate API を呼び出した際の応答を保存します。

2.Google Translate API の呼び出し

Google Translate API を呼び出す「メッセージ送信中間イベント(HTTP)」の設定です。

    • アクセスURL
      https://www.googleapis.com/language/translate/v2
    • HTTP Method GET
    • セキュリティ 使用しない
    • 送信パラメータ
      パラメータ名 補足説明
      source ja (固定値) 翻訳元の言語。日本語を指定。
      target en (固定値) 翻訳先の言語。英語を指定。
      key ${var[KEY]} (固定値) Google Translate API を呼び出すにおいて、必要なキー。これの取得については後の節で。
      format text (固定値) 応答をプレーンテキストで受け取ることを指定。
      q 日本語 (プロセスデータ) 翻訳元のテキストが保存されているプロセスデータを指定。
    • レスポンスをプロセスデータに保存する チェック
    • 保存先のプロセスデータ項目 API レスポンス (プロセスデータ)

3.API の応答の解析

続いて応答内容を解析します。Google Translate API の応答は JSON 形式です。以下はそのサンプルです。

{
  "data": {
    "translations": [
      {
        "translatedText": "Hello. How are you today?"
      }
    ]
  }
}

translations が配列になっていますが、これは API にアクセスする際、翻訳したい文字列 を指定するパラメータ q を複数指定できるためです。q を複数指定した場合には、応答の translations も複数になります。

これを解析して翻訳結果を取り出すため、Javascript を実行できる「スクリプトタスク」を使用します。実行させるスクリプトは以下の通りです。

var jsontext = data.get("3"); // 応答を取り出し
var json = JSON.parse(jsontext); // JSON として解析

var translated = json.data.translations[0].translatedText; // 翻訳結果抜き出し
retVal.put("1", translated);

プロセスモデルにおける主要な設定は以上です。

プロセスアーカイブも添付します。拡張子が zip になっていますが、qar に変更してお使いください。また Google Translate API を呼び出す際の API キーを取得して、変数に設定するようにしてください。API キーは、Google Cloud Console から取得します。少なくとも Cloud Console にて、以下3つのステップが必要です。

  1. API & auth の APIs から Translate API を有効にする
  2. API & auth の Credentials から Public API access として Server Key を作成する
  3. Billing の設定を行う

Google Translate API の呼び出しには費用が発生するので、3の Billing の設定も必要です。100万文字あたり $20 とのことなので、さほど気にするレベルではないだろうと思います。Google Translate の Web 版だと無料で使えるので、これを使う一手間分の価値があるかどうかの判断になるかと思います。

use-google-translate-api-screen

いかがでしたでしょうか。

今回のサンプルでは、日本語から英語の翻訳を行いましたが、Google Translate API の場合、翻訳元の言語を自動判定させることもできます。その方法は簡単で、Google Translate API を呼び出す際、source パラメータを省略するだけです。言語判定だけを行うこともできるので、その結果に応じて業務フローを変えるという使い方も考えられます。多様な言語での問い合わせの助けになりますね。

あと「翻訳こんにゃく」ですが、確かドラえもんでは「これを食べれば、動物とも会話ができるようになる」という設定だったと思います。Google Translate API は動物の言葉には対応していないので、本当の意味で「翻訳こんにゃく」の代わりにはなりません。Google なら5年後ぐらいに、犬語やネコ語に対応してきそうな気もしますが。

 

★関連サンプル(ワークフローサンプル)

あわせて読みたい
15.野望・展望・志 の前の記事 みんな知るべきクラウド技術 「OAuth」 ってナニ?
15.野望・展望・志 の次の記事 業務をカイゼンできるのは、アンタだよ アンタ!!
Hatanaka Akihiro の他の記事 Amazon ばんざーい。少なくともデータセンターに寝泊まりすることはない。。。

アーカイブ

 RSS