Azure Database for PostgreSQL でデータを翻訳する

完了

azure_ai 拡張機能での翻訳

Azure AI Language サービスでは、テキスト データを操作するための強力なツールとモデルが提供されています。 azure_ai 拡張機能の azure_cognitive スキーマ内の統合により、自然言語の理解および処理機能のこの豊富なセットに、データベースから直接アクセスできるようになりました。 これらの機能の 1 つに、translate() 関数を使用してテキストを翻訳する機能が含まれます。

azure_cognitive.translate() 関数

言語翻訳は azure_cognitive.translate() 関数で使用できます。 この関数では、入力テキストと、その翻訳先の 1 つ以上の言語を受け入れます。 この関数では、自動的にソース言語を検出するか、ユーザーが入力テキストのソース言語を割り当てることができます。

この関数では、Azure AI 翻訳サービスの応答本文に基づいて構築されたテーブルを返します。 この応答には次の列が含まれます。

名前 説明
translations ターゲット言語と翻訳されたテキストの組み合わせごとに、1 つのタプルを含む JSON オブジェクト。
detected_language この言語は、自動言語検出に基づいています。 source_language 入力パラメータを使用して言語を指定する場合、このパラメータは NULL に設定されます。
source_text ソース言語の既定の文字での入力テキストを含むオブジェクト。 このオプションは、その言語の通常の文字ではない文字で入力が表現されている場合にのみ使用できます。 たとえば、タイ語のテキストがラテン文字で記述された場合などです。

翻訳サービス エンドポイント、キー、リージョンを設定する

azure_ai 拡張機能を使用して言語サービスに対する呼び出しを正常に行うには、そのサービスのエンドポイントとキーを指定する必要があります。 次のコマンドは、azure_ai.settings 構成テーブルに設定を追加する方法を示しています。

SELECT azure_ai.set_setting('azure_cognitive.endpoint','{endpoint}');
SELECT azure_ai.set_setting('azure_cognitive.subscription_key', '{key}');
SELECT azure_ai.set_setting('azure_cognitive.region', '{region}');

azure_cognitive.translate() 関数の呼び出し

次の SQL ステートメントを使用すると、英語でのサンプル フレーズを同等のドイツ語に翻訳できます。 この翻訳には、azure_ai 拡張機能と、その拡張機能の必要な設定が既にされている必要があります。

SELECT a.translations
FROM azure_cognitive.translate('Congratulations on successfully configuring Azure AI Translation!', 'de') a;

このコマンドを実行すると、次のような応答が返されます。

                     translations                     
------------------------------------------------------------------------------------------------
 {"(de,\"Herzlichen Glückwunsch zur erfolgreichen Konfiguration der Azure AI-Übersetzung!\",)"}
(1 row)

出力言語の配列を渡すことで、1 回の呼び出しで複数の言語への翻訳を実行することもできます。

SELECT (unnest(a.translations)).TARGET_LANGUAGE, (unnest(a.translations)).TEXT
FROM azure_cognitive.translate(text=>'Congratulations on successfully configuring Azure AI Translation!', target_language=>array['de', 'fr']) a;

このコマンドは、ターゲット言語とその出力テキストの個別の列を含む 1 行を、言語ごとに返します。