Claris FileMaker 2025 –RAG(Retrieval Augmented Generation:検索拡張生成)機能を使ってみた

2025年09月03日 12:00 PM

Claris FileMaker 2025


RAG(Retrieval Augmented Generation:検索拡張生成)機能を使ってみた

Claris FileMaker 2025 で待望のRAG機能が追加されました。

RAGについての前回のブログでは、この機能の概要や仕組みについて解説しましたが、今回は実際にそのRAG機能を使ってみた体験をお届けします。

参考:以前のブログ

RAG(Retrieval Augmented Generation:検索拡張生成)機能でカスタムAppのデータをAIで参照

まずは、下記動画を参照してください。

このDemoは、社内業務FAQをRAGのデータとして保存して、社内業務について AI に質問し、RAGの情報を基に AI が質問に答えるというDemoです。

AI には、関西弁で答えるように、指示を出しています。

“あなたはサポート担当者です。以下の情報を参考にして、できるだけ正確に質問に答えてください。
もし答えられない場合は わかりません。と関西弁で回答してください。その後必死に言い訳して下さい。回答は関西弁で答えてください。Question: {:question:} Context: {:context:} Answer:”

Claris FileMaker 2025 ~RAGを使ってみた

では、Demo動画で見ていただいたRAGの実装方法などを解説します。

RAGとは

RAG、つまり「検索拡張生成」という技術は、AIに特定の知識を与えながら正確な回答を作り出すためのものです。この方法では、LLMが知らない情報や最新のデータを外部から取り入れることで、より正確な応答が実現します。
動画では、社内のFAQを例にデモを行いました。

LLMは社内の情報を学習していないため直接は回答できませんが、RAGを使うことで社内の情報を参考にしつつ、回答を生成できるようになりました。

RAGの基本メカニズム

RAGの仕組みは以下のステップで動作します:

  1. 質問受信
  2. 情報検索: FileMaker Server の RAGスペースのデータを検索
  3. プロンプト作成: 「RAG処理を実行」スクリプトステップで、プロンプトを送信
  4. 回答生成: LLMが正確な回答を生成します。

この図のように、RAGは実行されます。

FileMaker 2025 でどのように実行するのか、スクリプトステップを確認していきたいと思います。

① AIアカウントの設定と、RAGアカウントの設定

AIアカウントの設定

今回は、回答の生成をするために、OpenAI のモデルを使ってみましたので、モデルプロバイダーは、OpenAIを指定しました。

AI アカウント設定 [ 
	アカウント名: "AI" ; 
	モデルプロバイダ: OpenAI ; 
	API キー: $APIKey_OpenAI 
]

※ Local LLM を使う場合は、モデルプロバイダを「カスタム」に設定し、エンドポイントや API キーを RAG アカウント設定と同じにします。

RAGアカウントの設定

「RAG アカウント設定」スクリプトステップ

RAG アカウント設定 [ 
	RAG アカウント名: "RAG" ; 
	エンドポイント: "https://サーバーアドレス/llm/v1/" ; 
	API キー: "XXXXXX" 
]

  • RAG アカウント名任意の名称を指定
  • エンドポイントFileMaker Server の Admin Console「AIサービス」タブで確認可能

  • API キーFileMaker Server の Admin Console「AIサービス」タブで作成(作成後は必ず安全な場所に保存)

「AIサービス」タブの左の「モデルサーバー」「キー」「モデル」というメニューがありますが、この「キー」で作成します。

保存をするとAPIキーが表示されます。

この画面で、コピーして安全な場所にしっかりキーを保存しておきましょう。

再度表示することはできないので、必ずコピーし無くさないように保管しておいてください。

② RAGスペースにデータを追加

「RAG 処理を実行」スクリプトステップ

RAG 処理を実行 [ 
	RAG アカウント名: "RAG" ; 
	スペース ID: "CrTM" ; 
	処理: データを追加 ; 
	RAG データ: テキストから ; QandA::RAGDataText_c 
]

  • RAG アカウント名「RAG アカウント設定」スクリプトステップで指定したアカウント名
  • スペース ID: FileMaker Server の Admin Console 「AIサービス」タブで、APIキーの発行時に指定した「スペースID」
  • 処理: 「データを追加」「プロンプトを送信」「データを取り除く」から選択。「データを追加」を選択
  • RAG データ: 「テキストから」「ファイルから」「ファイルから(Async)」「オブジェクトフィールドから」「オブジェクトフィールドから(Async)」から選択。今回は「テキストから」を使用し、FAQ をまとめた計算フィールド(約25レコード)を送信

上記のようにして、FAQのデータを連結した計算フィールドのテキストデータを、25レコードほどRAGスペースに保存しました。

Claris FileMaker Server の Windows 環境では、データは以下にテキストファイルとして保存されます。

C:\ProgramData\FileMaker\Open_Source_LLM\server\cache\rag.txt

エディターで開いてみると、下記のようにデータが変換されて保存されていました。

③ 質問を送信

準備が整ったので、質問を送信してみます。

スクリプトのキャプチャを載せておきます。

新しい2つのスクリプトステップについて解説します。

「プロンプトテンプレートを構成」スクリプトステップ

プロンプトテンプレートを構成 [ 
	テンプレート名: $promptTemplateName ; 
	モデルプロバイダ: OpenAI ; 
	テンプレートタイプ: RAG プロンプト ; 
	RAG プロンプト: $ragPrompt  & "Question: {:question:} Context: {:context:} Answer:" 
]

ヘルプには、下記のように説明がありました。

「指定されたモデルプロバイダおよびカスタマイズできる定義済みのプロンプトで、他の AI 関連のスクリプトステップで名前で使用するプロンプトテンプレートを設定します。」

テンプレート名“ragPromptTemplate” という名前を「$promptTemplateName」変数に入れて、設定していました。

モデルプロバイダ今回は、OpenAIを使用しています。

テンプレートタイプ「SQL クエリー」「検索条件」「RAG プロンプト」から選択。RAG処理で使用したいので、「RAG プロンプト」を選択。

RAG プロンプト$ragPrompt  & “Question: {:question:} Context: {:context:} Answer:”としていますが、「$ragPrompt」変数には、下記のようにプロンプトを設定していたため、実際のプロンプトテンプレートの中身は、下記のようになっています。

"あなたはサポート担当者です。以下の情報を参考にして、できるだけ正確に質問に答えてください。
 もし答えられない場合は わかりません。と関西弁で回答してください。その後必死に言い訳して下さい。
 回答は関西弁で答えてください。Question: {:question:} Context: {:context:} Answer:"

「RAG 処理を実行」スクリプトステップ

RAG 処理を実行 [ 
	RAG アカウント名: "RAG" ; 
	スペース ID: "CrTM" ; 
	処理: プロンプトを送信 ; $question ; 
	AI アカウント名: "AI" ; 
	モデル: "gpt-4.1" ; 
	ストリーム: オン ; 
	プロンプトテンプレート名: $promptTemplateName ; 
	応答のターゲット: Global::Answer_g 
]

「RAG 処理を実行」スクリプトステップを「データを追加」処理で使用しましたが、今回は、プロンプトを送信します。

処理以降の引数を確認していきましょう。

処理: プロンプトを送信 : $question 

「$question」変数には、「経費精算の申請方法を教えてください。」という質問が入っています。

AI アカウント名: 「AIアカウントを設定」スクリプトステップで指定したアカウント名を指定します。

モデル: 使用するLLMのモデルを指定します。

ストリーム: 「オン」or「オフ」を指定します。

プロンプトテンプレート名: 「プロンプトテンプレートを構成」スクリプトステップで指定したテンプレート名を指定します。

プロンプトテンプレートは、先程のような内容でしたが、

“あなたはサポート担当者です。以下の情報を・・・答えてください。Question: {:question:} Context: {:context:} Answer:”

この「{:question:}」部分に、プロンプトを送信引数で、設定した$question が入り、

「{:context:}」には、RAGスペースに保存した情報の中から質問に関連すると思われる情報を検索してきた内容が入ります。

応答のターゲット: 「Global::Answer_g」グローバルフィールドを設定しました。ストリームをオンにしてあるので、AIらしく言葉を並べていくような動作となります。

実行すると、このように返答されました。

実際にどのようにプロンプトを送信しているかというと、OpenAI API の画面で確認できます。

OpenAI API にログインし、「Dashboard」の「Logs」メニューを開くと、送信されたプロンプトを確認してみたところ、キャプチャのようになっています。

“あなたはサポート担当者です。以下の情報を・・・答えてください。Question: {:question:} Context: {:context:} Answer:”の、

「{:question:}」部分が「Question: {経費精算の申請方法を教えてください。}」となっていて、

「{:context:}」には、Context: {[“No.1, Question: ・・・ 退職日までに業務の引継ぎを完了してください”]} 

となっています。

Contextに、RAGスペースの質問に関連する社内業務の情報が入っているので、その情報をもとに、回答を生成してくれました。

注意点

  • OpenAI API を使う場合、RAG データもプロンプトと共に外部送信されるため、情報管理に注意
  • Local LLM を使えば外部送信は不要ですが、高スペックサーバーが必要

OpenAI APIを使うと、Claris FileMaker Serverに追加したRAGデータも一緒にプロンプトを送ることになりますので、その点を理解しておくと良いでしょう。Local LLMサーバーでRAGを使う場合は、データを外に出す必要はありませんが、サーバーのスペックはかなり高いスペックが要求されます。

Claris FileMaker 2025 動作環境

Claris FileMaker 2025 動作環境
https://support.claris.com/s/article/Claris-FileMaker-2025-%E5%8B%95%E4%BD%9C%E7%92%B0%E5%A2%83?language=ja

上記、動作環境の中に下記項目があります。

  • テキスト生成モデルのサポートの必要条件
  • ベクトル埋め込みおよびセマンティック検索サポートの必要条件
  • AI モデルサーバーの必須ハードウェア

AI関連のサーバーに関する動作環境が書かれていますので、確認しておくのがいいと思います。

まとめ

Claris FileMaker 2025 に搭載された RAG(Retrieval-Augmented Generation)機能は、カスタム App 内の PDF やテキストなどの情報を活用し、大規模言語モデル(LLM)が本来知らない企業内部の情報についても、正確に回答できるようにする強力な機能です。

今回ご紹介したように、RAG スペースに必要な情報を登録し、プロンプトテンプレートと組み合わせて活用することで、最新かつ独自のデータを効率的に利用できます。これにより、誤情報(ハルシネーション)の発生を抑えながら、モデルの再学習なしに業務に直結した回答を得られます。

ぜひ RAG 機能を活用して、より高度で信頼性の高い AI 統合型カスタム App の構築に挑戦してみてください。