アプリケーションを動かすには、OpenAIのAPIを呼び出すためのAPIキーをAPEXのWeb資格証明として作成済みであることと、DALL-EのAPI呼び出しは課金されるので、購入したクレジットが残っていることが必要です。
作成したAPEXアプリケーションは以下のように動作します。
空のAPEXアプリケーションを作成し、デフォルトで作成されるホーム・ページに機能を実装しています。
以下より作成したアプリケーションを簡単に紹介します。
モデルを選択するページ・アイテムP1_MODELを作成しています。タイプは選択リスト、ラベルはmodelです。
LOVはタイプを静的値として、dall-e-2とdall-e-3を選択できるようにしています。デフォルトはdall-e-2にしています。
サイズを選択するページ・アイテムP1_SIZEも同様に、LOVのタイプを静的値として、1024x1024、1024x1792、1792x1024のどれかを選択するようにしています。デフォルトは1024x1024です。
この他にも指定可能なパラメータ(n、quality、styleなど)はありますが、これだけ設定していれば最低限の画像は生成できるので、他は省略します。
プロンプトを入力するページ・アイテムP1_PROMPTを作成します。ラベルはPrompt、タイプはテキスト領域を選択します。
DALL-Eによる画像生成を呼び出すボタンGENERATEを作成します。
外観のホットをオンにし、テンプレート・オプションのWidthにStretchを選択します。
動作のアクションはデフォルトのページの送信とします。
OpenAIのCreate Image APIは、リクエストのresponse_formatで明示的にb64_jsonを指定していないときは、生成された画像が置かれている位置のURLを返します。
返されたURLを保持するページ・アイテムP1_IMAGEを作成します。タイプにイメージの表示を選択します。
設定の基準にページ・アイテム値に格納されたイメージURLを選択することにより、ページ・アイテムの値であるURLより取得できる画像をページに表示します。
デバッグ用にCreate Image APIのレスポンスをそのまま表示するページ・アイテムを作成します。
識別の名前はP1_RESPONSE、タイプはテキスト領域とします。
ボタンGENERATEがクリックされたときに、OpenAIのDALL-Eを呼び出すプロセスを作成します。
識別の名前はGenerate Imageとします。タイプはコードを実行です。ソースのPL/SQLコードとして以下を記述します。
サーバー側の条件のボタン押下時にGENERATEを指定します。
コードに含まれるバインド変数G_REQUEST_URLとG_CREDENTIALの値を、アプリケーション定義の置換に設定します。
G_CREDENTIALには、OpenAIのAPIキーが設定されたWeb資格証明の静的IDを設定します。G_REQUEST_URLはAPIのエンドポイントである以下のURLを設定します。
https://api.openai.com/v1/images/generations
以上でアプリケーションは完成です。
今回作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/sample-openai-dall-e.zip
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完