CohereのAPIのCo.Classify、Co.Generateを呼び出すAPEXアプリケーションに、Co.Embedを呼び出すページを追加しました。Co.EmbedのAPIリファレンスはこちらになります。
作成したページで、ExamplesのRestaurant Customer Inquiries(の一部)を呼び出してみます。
以下、作り方になります。
Co.Embedを呼び出すページを作成します。
ページの作成を実行します。
空白ページを選択します。
ページ番号は4、名前はEmbedとします。
ページの作成をクリックします。
Co.Embedはテキストの配列を入力としているため、対話グリッドを使ってテキストの配列を作成します。テキストの配列はAPEXコレクションEMBED_TEXTSに保持します。
レンダリング前、ヘッダーの前にプロセスを作成し、APEXコレクションEMBED_TEXTSを初期化します。
識別の名前はAPEXコレクションの初期化とします。タイプはコードを実行、ソースのPL/SQLコードとして以下を記述します。
対話グリッドを作成します。
識別の名前はTexts、タイプとして対話グリッドを選択します。ソースのタイプとしてSQL問合せ、SQL問合せとして以下を記述します。
select seq_id, c001 from apex_collections where collection_name = 'EMBED_TEXTS'
APEXコレクションでは列SEQ_IDが一意列です。そのため、対話グリッドが列SEQ_IDを主キーとして扱うように設定します。
列C001を選択し、識別のタイプをテキスト・フィールドに変更します。ヘッダーはtextにします。
対話グリッドTextsの属性を開き、編集の有効をオンに変更します。
プロセス・ビューを開き、プロセスTexts - 対話グリッド・データの保存を選択します。
設定のターゲット・タイプをPL/SQL Codeに変更し、挿入/更新/削除するPL/SQLコードに以下を記述します。
失われた更新の防止はオフ、行のロックはNoにします。
Co.EmbedのAPIの入力のひとつであるmodelを指定するページ・アイテムを作成します。
識別の名前はP4_MODEL、タイプはテキスト・フィールド、ラベルはModelとします。
デフォルトのタイプに静的を選択し、静的値としてembed-multilingual-v2.0を設定します。
APIのもうひとつの入力truncateを指定するページ・アイテムを作成します。
識別の名前はP4_TRUNCATE、タイプはテキスト・フィールド、ラベルはTruncateとします。レイアウトの新規行の開始をオフにし、P4_MODELの右に配置します。
デフォルトのタイプに静的を選択し、静的値としてNONEを設定します。
CohereのCo.Embedを呼び出すボタンを作成します。
識別のボタン名はSUBMIT、ラベルはSubmitとします。動作のアクションとして動的アクションで定義を選択します。
動的アクションは、Co.Embedを呼び出すリージョンを作成した後に定義します。
Co.Embedを呼び出し、受け取ったレスポンスを表示するリージョンを作成します。
識別のタイトルはResponse、タイプとして動的コンテンツを選択します。ソースのCLOBを返すPL/SQLファンクション本体として、以下を記述します。
送信するページ・アイテムとしてP4_MODEL,P4_TRUNCATEを指定します。
ボタンSUBMITの動的アクションを作成します。
識別の名前はonClick Refreshとします。タイミングのイベントは、ボタンのデフォルトであるクリックです。
TRUEアクションはリフレッシュ、影響を受ける要素の選択タイプはリージョン、リージョンとしてResponseを選択します。
以上でCo.Embedを呼び出すページは完成です。
作成したアプリケーションを実行すると、本記事の先頭のGIF動画のように動作します。
作成したアプリケーションのエクスポートとして、以前のエクスポートを更新しています。
https://github.com/ujnak/apexapps/blob/master/exports/sample-cohere-api.zip
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完