2023年6月26日月曜日

CohereのCo.GenerateをOracle APEXから呼び出してみる

 以前にCohereのCo.Classifyを呼び出すAPEXのアプリケーションを作成しました。こちらの記事です。同じアプリケーションに、Co.GenerateのAPIを呼び出すページを作ってみました。

CohereのCo.GenerateのAPIの説明はこちらです。

作成したページで、ExamplesのAd Copy AIDA Frameworkを呼び出してみます。

すでにCo.Classifyの実装が済んでいるところから始めます。

新しいページの名前をGenerateページ番号3として作成します。

ページの作成をクリックします。


フォームを選択します。


ページ番号名前Generateとします。ページ・モード標準です。

データ・ソースローカル・データベースソース・タイプとしてSQL問合せを選択し、SQL SELECT文を入力に以下を記述します。ページ・アイテムを作成するためのSELECT文で、フォームのソースとしては使いません。


ナビゲーションはデフォルトのまま、ブレッドクラムとナビゲーションの双方を生成します。

へ進みます。


主キー列1としてID(Number)を選択します。ブランチ・ページ送信時にここにブランチ取り消してページに移動の双方に、自分自身であるページ番号を指定します。

ページの作成をクリックします。


フォームのページが作成されます。最低限必要な調整を行います。

ページ・アイテムP3_PROMPTを選択し、識別タイプテキスト領域に変更します。検証必須の値オン最大長4000とします。


Co.Generateのレスポンスを保持するページ・アイテムとして、P3_RESPONSEを作成します。

識別名前P3_RESPONSEタイプテキスト領域ラベルResponseとします。


レスポンスに含まれる生成された文字列を一覧する、対話モード・レポートを作成します。

リージョンを作成し、識別タイトルGenerateとします。タイプとして対話モード・レポートを選択します。ソースタイプとしてSQL問合せを選択し、SQL問合せに以下を記述します。

select clob001 from apex_collections where collection_name = 'GENERATE'


Cohereが生成した文字列には改行が含まれています。改行を認識させるため、列CLOB001タイプリッチ・テキストに変更し、設定書式としてマークダウンを選択します。

ヘッダーTextに変更します。


Co.GenerateのAPIを呼び出すコードを記述します。

左ペインでプロセス・ビューを表示し、プロセス・フォームGenerateを選択します。

設定ターゲット・タイプPL/SQL Codeに変更し、挿入/更新/削除するPL/SQLコードとして以下を記述します。

失われた更新の防止オフ行のロックNoに変更します。


以上でアプリケーションとしては動作します。

動作や見た目を調整します。

フォームGenerate属性を開き、編集実行可能な操作より行の更新行の削除のチェックを外します。このフォームには、行の更新と削除は実装していません。


プロセス初期化フォームGenerate、ボタンDELETE、ボタンSAVEを選択し、ビルド・オプションコメント・アウトします。これらの機能も使われることはありません。


ページ・アイテムP3_NUM_GENERATIONSP3_MAX_TOKENSP3_PRESETP3_KP3_PP3_FREQUENCY_PENALTYP3_PRESENCE_PENALTYP3_STOP_SEQUENCESP3_LOGIT_BIASP3_TRUNCATEP3_STREAMを選択し、レイアウト新規行の開始オフにします。


以上でページの調整も完了です。

作成したアプリケーションを実行すると、本記事の先頭のGIF動画のように動作します。

作成したアプリケーションのエクスポートとして、以前のエクスポートを更新しています。
https://github.com/ujnak/apexapps/blob/master/exports/sample-cohere-api.zip

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