2023年2月27日月曜日

OCI Languageサービスを使用して翻訳を行う

 オラクルのOCI Languageに無料枠があったので、APEXでOCI Languageの翻訳サービスを呼び出すアプリケーションを作ってみました。


OCIでのAPIユーザーの作成手順およびAPEXでのWeb資格証明の作成手順については、以前に書いた記事を参考にしています。

APEXからOCIオブジェクト・ストレージを操作する(1) - APIユーザーの作成
APEXからOCIオブジェクト・ストレージを操作する(4) - Web資格証明の作成

上記の手順に追加して、APIキーを持つユーザーにOCI Languageサービスの呼び出しを許可するため、ポリシーを作成します。

APIユーザーが含まれているグループAPEXObjectManagersである場合、ポリシー・ステートメントは以下になります。

allow group APEXObjectManagers to use ai-service-language-family in tenancy


APEX側の作業として、アプリケーション作成ウィザードを起動し、空のアプリケーションを作成します。

作成したアプリケーションのホーム・ページページ・デザイナで開き、ページ・アイテムボタンを作成します。

翻訳する文字列の言語を指定するページ・アイテムP1_SOURCE_LANGを作成します。タイプテキスト・フィールドラベルSource Langとします。ISO 639-1のコードを指定します。タイプ選択リストにすると、指定が容易になるでしょう。


翻訳する文字列を指定するページ・アイテムP1_SOURCE_TEXTを作成します。タイプテキスト領域ラベルSource Textとします。


同様に翻訳先の言語を指定するページ・アイテムP1_TARGET_LANGを作成します。


翻訳結果を保持するページ・アイテムP1_TARGET_TEXTを作成します。


最後に送信ボタンを作成します。

識別ボタン名SUBMITラベルSubmit動作アクションはデフォルトのページの送信のままとします。


左ペインでプロセス・ビューを開き、ボタンSUBMITを押した時に実行するプロセスTranslateを作成します。

ソースPL/SQLコードとして以下を記述します。


サーバー側の条件ボタン押下時SUBMITを選択します。


以上でアプリケーションは完成です。実行すると記事の先頭のGIF動画のように動作します。

今回作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/oci-language-translate.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。