18.8.4.6 給与を提案するAIアシスタントの作成

給与推奨を提案するAIアシスタントを作成します。

このトピックの例では、従業員の給与推奨を提供するAIアシスタントを作成する方法について説明します。この例では、次のタスクを完了していることを前提としています:

  • EMP/DEPTサンプル・データセットで使用可能なEMP表にアクセスできます。さらに学習するには、『Oracle APEX SQLワークショップ・ガイド』「サンプル・データセットの使用」を参照してください
  • Employeesという名前の対話モード・レポートと、Edit Employeeという名前のフォーム・ページをEMP表に作成します。「対話モード・レポートの管理」を参照してください。

給与推奨を提案するAIアシスタントを作成するには:

  1. ページ・デザイナでフォーム・ページを表示します:
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. フォーム・ページ Edit Employeeを選択します。
      ページ・デザイナでフォーム・ページが表示されます。
  2. フォーム・ページで、SUGGEST_SALARYという名前のボタンを追加します:
    1. 「Edit Employee」リージョンを右クリックし、「ボタンの作成」を選択します。

      プロパティ・エディタで、ボタン属性を編集します。

    2. 識別、ボタン名 - ボタンの参照に使用される名前を入力します。たとえば、次のように入力します:
      SUGGEST_SALARY
    3. ボタン位置を変更して、給与(P3_SAL)の右側に表示されるようにします。

      ヒント:

      ボタン属性を編集したり、ボタンを「レイアウト」ペインの適切な場所にドラッグ・アンド・ドロップできます。
      • レイアウト、順序 - このアイテムの表示順序を入力します。60と入力します

      • レイアウト、新規行の開始 - 「新規行の開始」を無効にします。

        「新規列」が有効になりました。



    4. 外観、ボタン・テンプレート - 「アイコン付きテキスト」を選択します。
    5. 外観、ホット - 「ホット」を有効にします。
    6. 外観、テンプレート・オプション - 「テンプレート・デフォルトの使用」をクリックします。「テンプレート・オプション」ダイアログで、次を構成します:
      • 共通、サイズ - 「大」を選択します。
      • 共通、幅 - 「拡張」を選択します。
      • 詳細、上部の間隔 - 「大」を選択します。
      • 「OK」をクリックします。
    7. 外観、アイコン - 「fa-robot」を選択します。
    8. 動作、アクション- 「動的アクションで定義」を選択します。
    9. 動作、検証の実行 - 「検証の実行」を無効にします。
    10. 「保存」をクリックします。
  3. P3_DEPARTMENTという名前の非表示アイテムを追加します:
    1. 「Edit Employee」リージョンを右クリックし、「ページ・アイテムの作成」を選択します

      プロパティ・エディタで、ページ・アイテム属性を編集します。

    2. 識別、名前 - アイテム名を入力します。たとえば、次のように入力します:
      P3_DEPARTMENT
    3. 指定、タイプ - 「非表示」を選択します。
    4. 「保存」をクリックします。
  4. 部門名を取得するための計算を作成します:
    1. P3_DEPARTMENTを右クリックして、「計算の作成」を選択します。

      プロパティ・エディタで、計算属性を編集します。

    2. 計算、タイプ - 「SQL問合せ(単一の値を返す)」を選択します。
    3. 計算、SQL問合せ - 次を入力します:
      select dname
        from dept
       where deptno = :P3_DEPTNO
    4. 「保存」をクリックします。
  5. P3_INIT_PROMPTという名前の非表示アイテムを追加します:
    1. 「Edit Employee」リージョンを右クリックし、「ページ・アイテムの作成」を選択します

      プロパティ・エディタで、ページ・アイテム属性を編集します。

    2. 識別、名前 - アイテム名を入力します。たとえば、次のように入力します:
      P3_INIT_PROMPT
    3. 指定、タイプ - 「非表示」を選択します。
  6. P3_INIT_PROMPTに対して計算を作成します:
    1. P3_INIT_PROMPTを右クリックして、「計算の作成」を選択します。

      プロパティ・エディタで、計算属性を編集します。

    2. 計算、タイプ - 「静的値」を選択します。
    3. 計算、静的値 - 次を入力します:
      Department: &P3_DEPARTMENT. Current salary: &P3_SAL.
    4. 「保存」をクリックします。
  7. ユーザーがSUGGEST_SALARYボタンをクリックすると起動する動的アクションを作成します:
    1. 左ペインで「動的アクション」タブをクリックします。
    2. 「クリック」を右クリックし、「動的アクションの作成」を選択します。
      左ペインに「新規」という名前の動的アクションが表示されます。プロパティ・エディタに動的アクション属性が表示されます。
  8. プロパティ・エディタで、動的アクション属性を編集します:
    1. 指定、名前 - 動的アクションの名前を入力します。たとえば、次のように入力します:
      AI: Suggest Salary
    2. タイミング、イベント - 動的アクションを起動するイベントを指定します。デフォルトの「クリック」を受け入れます。
    3. タイミング、選択タイプ - イベントをトリガーするページ要素または構成体を指定します。たとえば、「ボタン」を選択します。
    4. タイミング、ボタン - 動的アクションをトリガーするボタンを指定します。「SUGGEST_SALARY」を選択します。
  9. Trueアクション「表示」を編集します。「動的アクション」タブで、「表示」アクションをクリックします。

    プロパティ・エディタでアクション属性を編集します。

  10. 「識別」、「アクション」 - 「AIアシスタントの表示」を選択します。
  11. 生成AI属性を構成します:
    1. 生成AI、サービス - AIアシスタントで使用される生成AIサービスを選択します。「アプリケーション・デフォルト」では、「AI」ページのアプリケーション属性で指定した生成AIサービスが使用されます。「アプリケーションのAI属性の構成」を参照してください。
    2. 生成AI、システム・プロンプト - システム・プロンプトは、AIにコンテキストを提供します。このメッセージはフロント・エンドには表示されませんが、バックエンドのすべてのAIサービス・リクエストに送信されます。

      この属性は、「最初のプロンプト」とともに使用します。

      次のように入力します。

      You are an HR manager who provides suggestions for salary raises of employees.
      Based on the department the percentage of the increase differs.
      
      Here is the list of departments and the increase percentage values:
      - ACCOUNTING 5%
      - OPERATIONS 7%
      - RESEARCH 10%
      - SALES 3%
      
      You will get the department information and the current salary of an employee.
      Based on these information you will calculate a new salary.
      
      The calculated salary should be displayed without special characters and currency symbols. Also round decimal numbers to the next highest integer. Answer in complete but short sentences containing the calculated salary.
      
      Only answer questions to salary suggestions and nothing else.
      If needed parameters like the department name or current base salary are missing, reply that you need more information to proceed.
    3. 生成AI、ようこそメッセージ - AIアシスタントで表示されるオプションのようこそメッセージを指定します。たとえば、次のように入力します:
      Hi. I'm your personal HR assistant. I can assist you in calculating salary raises.
  12. 「外観」の属性を構成します:
    1. 外観、表示形式 - AIアシスタントをページにどのように表示するかを選択します。「ダイアログ」を選択します。
    2. 外観、タイトル - ダイアログに表示されるタイトルを入力します。

      次のように入力します。

      Personal HR Assistant
  13. 最初のプロンプト属性 - 最初のプロンプトは、ユーザーの観点から見た最初のメッセージ/コンテキストです:
    1. 最初のプロンプト、タイプ - 「アイテム」を選択します。

      この属性は、AIアシスタントが応答を返す方法を決定します。AIアシスタントに送信する最初のプロンプトのタイプを選択します。最初のプロンプトではメッセージが、ユーザーが送信したものであるかのように表示されます。これは、特定のアイテム値でも、JavaScript式から導出した値でもかまいません。

    2. 最初のプロンプト、アイテム - 最初のプロンプトの設定に使用するページ・アイテムを入力します。

      P3_INIT_PROMPTを選択します。

    3. 最初のプロンプト、即時アクション・プロンプト - 最初のプロンプトと一緒に使用して、AIで即時に生成されるエンド・ユーザー向けのレスポンスを表示するためのプロンプトを入力します。

      次のように入力します。

      Calculate the salary suggestion
  14. レスポンスの使用 - 回答(またはAIメッセージ)の内容を返します。この例では、ページ・アイテムを指定します。
    1. レスポンスの使用、タイプ - AIアシスタントがレスポンスを返す方法を決定します。「アイテム」を選択します。
    2. レスポンスの使用、アイテム - P3_SALを選択します。
    3. レスポンスの使用、ボタン・ラベル - メッセージ・アクション・ボタンのラベルを指定します。これは、指定されたターゲットへのレスポンスの送信に使用されます。次のように入力します。
      Apply suggestion
    4. レスポンスの使用、JavaScript検出式 - メッセージ内の特定の基準を検索するJavaScript式を入力します。この式は、レスポンスに使用されるテキストを返します。次のコードを入力します:
      // search for numbers with a length of 3-5 and just return the number if one is found
      this.fullContent.match( /\b\d{3,5}\b/g ) ? this.fullContent.match( /\b\d{3,5}\b/g )[0] : ""
  15. 「保存」をクリックします。
  16. 変更内容をテストします:
    1. 「Employees」ページに戻り、ページを実行します。
    2. 従業員を検索し、「編集」アイコンをクリックして「Edit Employee」フォームを表示します。

      「Edit Employee」フォームが表示されます。



      Clarkの給与は2450であることに注意してください。

      「Edit Employee」フォームが表示されます。
    3. 「Suggest Salary」をクリックします。

      個人HRアシスタントが表示されます。



    4. 「Apply Suggestion」をクリックします。

      従業員の給与が2573でないことに注意してください。

    5. 「変更の適用」をクリックして変更を受け入れ、フォームを終了します。