2025年3月18日火曜日

e-Gov法令検索アプリにAPEX 24.2のAIアシスタントを組み込む

以前の記事「APEX 24.2で新しく追加された検索構成のOracleベクトル検索を使ってみる」で作成したAPEXアプリケーションe-Gov法令検索に、AIアシスタントを組み込んでみます。

生成AIサービスは、ローカルのLM Studioで動作するGoogleのGemma-3 27b-itを使用します。


以下より、APEXアプリケーションe-Gov法令検索にAIアシスタントを追加する作業を説明します。

共有コンポーネント構成の検索にある、検索構成のE-Gov法令ベクトル検索を開きます。

アイコンと表示最大ベクトル距離.3返される最大行数10を設定します。


同様に検索構成のE-Gov法令テキスト検索を開きます。

アイコンと表示返される最大行数10を設定します。


共有コンポーネントAI構成を開き、新たに生成AI構成を作成します。


生成AI構成識別名前法令アシスタント静的IDLAW_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構成が作成できたので、それを使ったAIアシスタントを実装します。

ホーム・ページに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のアプリケーション作成の参考になれば幸いです。