プロンプトテンプレートを構成

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

オプション 

[テンプレートタイプ:] が [SQL クエリー] の場合にのみ使用できるオプション:

  • [SQL プロンプト] はモデルが SQL クエリーを構築する方法を定義するテキスト式です。

  • [自然言語プロンプト] はモデルが応答する方法を説明するテキスト式です。

[テンプレートタイプ:] が [検索条件] の場合にのみ使用できるオプション:

  • [検索条件プロンプト] はモデルが検索条件を構築する方法を定義するテキスト式です。あらかじめ定義されたプロンプトには検索条件の JSON 形式 (FileMaker Data API と同じ形式)、日付と時刻の書式、およびその他のルールが含まれています。

[テンプレートタイプ:] が [RAG プロンプト] の場合にのみ使用できるオプション:

  • [RAG プロンプト] は AI モデルサーバー上の RAG スペースに送信されたプロンプトにモデルが応答する方法を説明するテキスト式です。

互換性 

製品 サポート
FileMaker Pro はい
FileMaker Go はい
FileMaker WebDirect はい
FileMaker Server はい
FileMaker Cloud はい
FileMaker Data API はい
カスタム Web 公開 はい

起点バージョン 

22.0

説明 

このスクリプトステップではプロンプトテンプレートを設定します。プロンプトテンプレートを使用する AI 関連のスクリプトステップから名前で参照できます。このスクリプトステップであらかじめ定義されているプロンプトは他の AI 関連のスクリプトステップでプロンプトテンプレートが指定されていない場合に使用されるプロンプトと同じです。プロンプトテンプレートを使用するとプロンプトエンジニアリングを実行して、さまざまなモデルプロバイダと用途に合わせてプロンプトの構造と形式をカスタマイズし、AI スクリプト全体でさらに一貫性のある動作が可能になります。

プロンプトテンプレートはテンプレート定数を組み込んだ再利用可能なプロンプト構造でプレースホルダを定義することによって機能します。プレースホルダはテンプレートが AI 関連のスクリプトステップで使用される場合、起動時に実際の値で動的に置き換えられます。特定のテンプレートで使用する利用可能な定数は [テンプレートタイプ:] によって異なります:

定数 置き換えの対象 プロンプト

:schema:

指定したテーブルのデータ定義言語 (DDL) 形式のデータベーススキーマ。

SQL プロンプト
自然言語プロンプト
検索条件プロンプト

:question:

ユーザの自然言語の質問またはプロンプト。

SQL プロンプト
自然言語プロンプト
検索条件プロンプト
RAG プロンプト

:context:

スクリプトステップの [引数:] オプションで context_prompt キーで指定されたコンテキスト情報。たとえば、[引数:] オプションでは「today」をシステムの日付書式の今日の日付で処理するようモデルに指示する式を指定することができます。

"{ \"context_prompt\": \"Treat 'today' as " & Get(日付) & "\"}"

検索条件プロンプト
RAG プロンプト

:sql_query:

モデルによって生成された SQL クエリー。

自然言語プロンプト

:sql_results:

SQL クエリーの実行で返された結果。

自然言語プロンプト

:date_format:

システムの日付書式。モデルが使用する日付書式を指定するプロンプトに便利です。

検索条件プロンプト

AI 関連のスクリプトステップがテンプレートを使用する場合、スクリプトステップは現在のコンテキストと実行されている処理に基づいて定数を適切な値に置き換えます。

このスクリプトステップを実行する場合、プロンプトテンプレートは現在の FileMaker クライアントセッションの間に現在のファイル内のスクリプトでのみ使用できます。

メモ 

  • 指定した名前のプロンプトテンプレートがすでに存在する場合、このスクリプトステップはそれを新しい構成に置き換えます。

  • プロンプトテンプレート名では大文字と小文字が区別されます。「MyTemplate」と「mytemplate」は異なるテンプレートとして扱われます。

  • AI 関連のスクリプトステップが存在しないプロンプトテンプレート名を参照すると「要求されたテンプレートが見つかりませんでした。」というエラーメッセージが返されます。

  • AI 関連のスクリプトステップが AI アカウントで指定したモデルプロバイダとは異なるモデルプロバイダ用に構成されたプロンプトテンプレートを使用すると、モデルプロバイダが一致しないことを示すエラーが返されます。

  • 現在の処理に適用されないプロンプトテンプレート定数はプロンプトテキスト内では変更されません。

例 1 

AI アカウントを構成してから、[自然言語で SQL クエリーを実行] スクリプトステップで参照されたときにモデルが自然言語の応答をどのように表示するかを指示するプロンプトテンプレートを構成します。クエリーは「名前」および「会社」フィールドにデータがある「連絡先」テーブルのデータについて質問します。

コピー
AI アカウント設定 [アカウント名: "my-account" ; モデルプロバイダ: OpenAI ; API キー: グローバル::API キー]

プロンプトテンプレートを構成 [テンプレート名: "風変わり" ; モデルプロバイダ: OpenAI ; テンプレートタイプ: SQL クエリー ; 自然言語プロンプト: "回答は JSON ではなくプレーンテキストで返してください。¶ 軽快で風変わりな口調で応答してください。"]

レイアウト切り替え [「連絡先」(連絡先) ; アニメーション: なし]

自然言語で SQL クエリーを実行 [アカウント名: "my-account" ; モデル: "gpt-4o" ; プロンプト: "鈴木さんが働いているのはどの会社ですか?"; 指定されたオプション: 一覧から ; 処理: クエリー ; データテーブル: 一覧から ; テーブル...; ストリーム ; プロンプトテンプレート名: "風変わり" ; 応答のターゲット: 連絡先::応答]

「連絡先::応答」フィールドに格納される応答の例:

ご質問の有名人、鈴木さんは、他でもない Acme Anvils で働いてますよ!

例 2 

AI アカウントを構成してから、[自然言語で検索実行] スクリプトステップで参照されたときに検索条件との完全一致を見つける方法についての追加情報を含むプロンプトテンプレートを構成します。[検索条件プロンプト] であらかじめ定義された値に == を使用してフィールド全体との完全一致を指定する方法のルールを追加します (あらかじめ定義されているプロンプトの最初の部分は簡潔にするために省略されています)。[自然言語で検索実行] スクリプトステップのプロンプトで完全一致を要求して応答フィールドに JSON で検索条件を返すようにします。

コピー
AI アカウント設定 [アカウント名: "my-account" ; モデルプロバイダ: OpenAI ; API キー: グローバル::API キー]

プロンプトテンプレートを構成 [テンプレート名: "完全一致を検索" ; モデルプロバイダ: OpenAI ; テンプレートタイプ: 検索条件 ; 検索条件プロンプト: "...10. To find items that match the entire fieldX value exactly, use this format: { \"fieldX\": \"==\" }"]

レイアウト切り替え [「連絡先」(連絡先) ; アニメーション: なし]

自然言語で検索実行 [アカウント名: "my-account" ; モデル: "gpt-4o" ; プロンプト: "名前が鈴木に完全一致する連絡先を見つけてください" ; 取得: 検索条件 (JSON 形式) ; 応答のターゲット: 連絡先::応答 ; プロンプトテンプレート名: "完全一致を検索"]

応答フィールドに返される検索条件の例:

コピー
{"layouts":"連絡先","query":[{"連絡先::名前":"==鈴木"}],"sort":[]}