AzureのAI TranslatorとGPTsを使って、簡単にドキュメントを多言語に翻訳する方法を紹介します。
Azure AI Translatorを使うと、ドキュメントのレイアウトを変更せずに多言語に変換できます。また、GPTsを使ってAzureのリソースと連携させることで、さらに便利に利用できます。
この記事では、Azure AI TranslatorやAzure Web Appsのデプロイ、GPTsの設定方法について説明します。
Azure AI Translatorとは?
Azure AI Translatorは、Microsoftが提供するクラウドベースのAI翻訳サービスです。
元のドキュメントの見た目やデータ形式を保ちながら、複数の言語に文書ファイルを翻訳できるドキュメント翻訳機能があります。
ドキュメント翻訳には2つの方法があります。
1つは「非同期バッチ翻訳」です。これは複数のドキュメントや大きなファイルを一度に翻訳する方法で、Azureのストレージを使ってファイルを保存します。
もう1つは「同期単一ファイル翻訳」です。これは1つのファイルだけをすぐに翻訳する方法で、翻訳結果が直接返されます。この場合、特別なストレージは必要ありません。
この記事では、「同期単一ファイル翻訳」を使用します。
https://learn.microsoft.com/ja-jp/azure/ai-services/translator/document-translation/overview
システムの動作結果
この記事で紹介するGPTsを使用した結果です。英語の添付ファイルの内容を日本語に変換できています。
元の文章はこちらです。
翻訳結果はこのようになりました。
実際に添付したファイルはこちらです。
システムの連携図
GPTsとAzureのリソースは下記のように連携します。Azure Web Appsはファイルを転送する為に使用します。
作業概要
構築作業は以下の手順で行います。
- Azure AI Translatorをデプロイ
- Visual Studio 2022でソースコードを作成
- Azure Web Appsをデプロイ
- GPTsを作成
作業手順
Azure AI Translatorをデプロイ
まずは、Azure AI Translatorを使うために、Azureポータルでリソースを作成します。
Azureポータルにアクセス
Azureポータルにサインインします。
リソースを作成
左のメニューから「リソースの作成」をクリックし、「AI + Machine Learning」カテゴリからTranslator Textを選択します。
設定を入力
Translatorの設定画面でリソースグループ、名前、リージョン、価格レベルを設定します。
※ この記事を執筆した時点では、下記の制約があります。価格レベルはS1以上のプランを選択してください。
デプロイの確認
設定を確認し、「作成」をクリックします。リソースが作成されたら、APIキーとエンドポイントを確認します。
Visual Studio 2022でソースコードを作成
ソースコードは下記に掲載しています。
https://github.com/mkabuki/DocumentTranslation
DocumentTranslationController.csが、GPTsとAI Translatorの連携処理を行います。 https://github.com/mkabuki/DocumentTranslation/blob/main/DocumentTranslation/Controllers/DocumentTranslationController.cs
今回は、英語のドキュメントを日本語に変換するように設定しています。下記の箇所を修正する事で、任意の言語に翻訳できます。
string sourceLanguage = "en"; string targetLanguage = "ja";
Azure Web Appsをデプロイ
Visual Studio 2022の発行を使用してデプロイします。
Azure Web Appsは無料プランでも利用は可能です。
デプロイしたリソースに、下記の環境変数を追加します。
subscriptionKey = _configuration["TRANSLATOR_TEXT_SUBSCRIPTION_KEY"]; endpoint = _configuration["TRANSLATOR_TEXT_ENDPOINT"]; region = _configuration["TRANSLATOR_TEXT_REGION"];
Translator TextのAPIキー、リージョン、エンドポイントの内容を追加します。
GPTsを作成
任意のGPTsを作成し、アクションの箇所に下記を設定します。urlの箇所にAzure Web AppsのURLを設定してください。
"url": "https://***************.azurewebsites.net"
クリックして展開 - GPTsのアクションに設定する内容
{ "openapi": "3.1.0", "info": { "title": "Document Translation API", "version": "1.0.0", "description": "API for translating documents from English to Japanese using Azure Translator." }, "servers": [ { "url": "https://***************.azurewebsites.net" } ], "paths": { "/DocumentTranslation/TranslateDocument": { "post": { "summary": "Translate an uploaded document from English to Japanese", "operationId": "TranslateDocument", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/openaiFileIdRefs" } } } }, "responses": { "200": { "description": "Successful translation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/openaiFileResponse" } } } }, "400": { "description": "Bad request", "content": { "application/json": { "$ref": "#/components/schemas/ErrorResponse" } } }, "500": { "description": "Internal server error", "content": { "application/json": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "tags": [ "DocumentTranslation" ] } } }, "components": { "schemas": { "openaiFileIdRefs": { "type": "object", "properties": { "openaiFileIdRefs": { "type": "array", "items": { "type": "object", "required": [ "id", "name", "mime_type", "download_link" ], "properties": { "id": { "type": "string", "description": "The unique identifier of the file" }, "name": { "type": "string", "description": "The name of the file" }, "mime_type": { "type": "string", "description": "The MIME type of the file" }, "download_link": { "type": "string", "description": "The download link for the file" } } } } } }, "openaiFileResponse": { "type": "object", "properties": { "openaiFileResponse": { "type": "array", "items": { "type": "object", "required": [ "name", "mime_type", "content" ], "properties": { "name": { "type": "string", "description": "The name of the file" }, "mime_type": { "type": "string", "description": "The MIME type of the file" }, "content": { "type": "string", "format": "byte", "description": "The base64 encoded contents of the file" } } } } } }, "ErrorResponse": { "type": "object", "properties": { "message": { "type": "string", "description": "Error message" }, "details": { "type": "string", "description": "Detailed error information" } } } } } }
まとめ
AzureのAI TranslatorとGPTsを活用したドキュメント翻訳システムの構築方法についてご紹介しました。このシステムを使用することで、複数の言語のドキュメントを翻訳することが可能になります。
また、Copilot Studio Agentsリリースにより、今回のGPTsを活用して実現した機能と同様のことが可能になると期待できます。引き続き、最新の情報を楽しみにしていてください!