生成AIサービスは、ローカルのLM Studioで動作するGoogleのGemma-3 27b-itを使用します。
以下より、APEXアプリケーションe-Gov法令検索にAIアシスタントを追加する作業を説明します。
共有コンポーネントの構成の検索にある、検索構成のE-Gov法令ベクトル検索を開きます。
アイコンと表示の最大ベクトル距離に.3、返される最大行数に10を設定します。
同様に検索構成のE-Gov法令テキスト検索を開きます。
アイコンと表示の返される最大行数に10を設定します。
生成AI構成の識別の名前は法令アシスタント、静的IDはLAW_ASSISTANTとします。生成AIのサービスにGemma-3-27b-itを選択します。
システム・プロンプトに「あなたは日本の法令の専門家です。」と記述し、ようこそメッセージに「法律について聞いて」と記述します。
生成AI構成にRAGソースを作成します。
識別の名前は法令の参照とし、説明には「関連する法令の条文です。」と記述します。ソースのタイプとしてSQL問合せを選択し、SQL問合せとして以下を記述します。
select description from table ( apex_search.search(
p_search_static_ids => apex_t_varchar2('LAW_VECTOR','LAW_TEXT')
,p_search_expression => :APEX$AI_LAST_USER_PROMPT
))
サーバー側の条件のタイプに最後のユーザー・プロンプトに含まれるを選択し、式1に「検索して」と記述します。ユーザー・プロンプトに「検索して」と書いているときに、法令を検索してプロンプトに含むようにします。例えばユーザー・プロンプトが「法令を検索して回答して」であれば、RAGソースの検索結果がプロンプトに含まれます。
ホーム・ページにAIアシスタントを開くボタンSHOW_AI_ASSISTANTを作成します。
ラベルは法令アシスタント、動作のアクションは動的アクションで定義を選択します。
ボタンSHOW_AI_ASSISTANTに、ボタンをクリックしたときに実行される動的アクションを作成します。
TRUEアクションにAIアシスタントの表示を選択します。生成AIの構成として、今回作成した生成AI構成である法令アシスタントを設定します。
外観の表示形式にダイアログ、タイトルは法令アシスタントとします。
以上でAIアシスタントの組み込みは完了です。
APEXアプリケーションを実行し、AIアシスタントに以下を質問します。
「民泊を営業するにあたって、どのような規制がありますか?」
全般的な説明が返されます。
ローカルのデータベースを検索した上で回答してもらいます。
「民泊を営業するにあたって、どのような規制がありますか?検索して回答して。」
プロンプトに含まれる検索結果から回答しようとしていますが、「提供された条文だけでは不明です。」と回答しています。
今回の記事は以上です。
今回、AIアシスタントを追加したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/e-gov-law-ai-assistant.zip
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完