RAG 処理を実行
RAG アカウントで指定された AI モデルサーバー上の RAG スペースにプロンプトを送信、またはデータを追加および取り除きます。
オプション
-
[RAG アカウント名:] ではこのスクリプトステップで使用する RAG アカウントのテキスト式を指定します。現在のファイルで、[RAG アカウント設定] スクリプトステップを使用してアカウントを設定し、このスクリプトステップが実行される前にこの名前を割り当てることができます。
-
[スペース ID:] では指定した RAG アカウントで操作する RAG スペースの固有の ID を指定するテキスト式を指定します。
-
[処理:] では RAG スペース上で実行する処理のタイプを指定します。このオプションはスクリプトステップ内の他のオプションの使用を制御します。次から選択します:
-
[データを追加] は RAG スペースにドキュメント (テキストデータまたは PDF ファイル) を追加します。
-
[プロンプトを送信] はプロンプトを送信して RAG スペースを照会し AI が生成した応答を取得します。
-
[データを取り除く] は RAG スペースからドキュメントを取り除きます。
-
[処理:] が [データを追加] の場合に使用できる追加のオプション:
-
[RAG データ] では RAG スペースに追加するドキュメントを指定します:
-
[テキストから] はテキスト式で直接テキストを追加し、同期転送します。
-
[ファイルから] はパス付きの PDF ファイルを追加し、同期転送します。
-
[ファイルから (Async)] はパス付きの PDF ファイルを追加し、非同期転送します (ファイルの容量が大きい場合に最適です)。
-
[オブジェクトフィールドから] はオブジェクトフィールドから PDF ファイルを追加し、同期転送します。
-
[オブジェクトフィールドから (Async)] はオブジェクトフィールドから PDF ファイルを追加し、非同期転送します (ファイルの容量が大きい場合に最適です)。
-
-
[入力ファイル] では PDF ファイルの 1 つまたは複数のパスの一覧を指定します。スクリプトステップは一覧を検索して最初に見つけた PDF ファイルを追加します。パスには
imageパス接頭語のいずれかを使用する必要があります。ファイルパスの作成を参照してください。 -
[オブジェクトフィールド] では追加する PDF ファイルを保存するオブジェクトフィールドを指定します。
-
[縦書きテキストを検出] を指定すると日本の文学作品、新聞、公文書、および学術論文に一般的に見られる縦書きテキストを含む PDF ファイルからのテキスト抽出が向上します。このオプションは [RAG データ:] が [テキストから] の場合は使用できません。
-
[テキストチャンクあたりのトークン] ではテキストまたは PDF ファイルを RAG スペースに追加する場合に各テキストチャンクに含めるトークン数を指定する数式を指定します。有効な値は 75 から 512 です。指定していない、または 0 に設定されている場合、Admin Console で AI モデルサーバーに設定された値が使用されます (デフォルトでは 200 トークン)。
-
[応答のターゲット:] では追加されたドキュメントについて AI モデルサーバーから返される JSON オブジェクトを保存するフィールドまたは変数を指定します。説明を参照してください。
[処理:] が [プロンプトを送信] の場合に使用できる追加のオプション:
-
[プロンプトを送信] の値には、自然言語のユーザプロンプトまたは質問のテキスト式を指定します。
-
[AI アカウント名:] では応答の生成に使用する AI アカウントの名前のテキスト式を指定します。現在のファイルで、[AI アカウント設定] スクリプトステップを使用してこのアカウントを設定し、このスクリプトステップが実行される前にこの名前を割り当てることができます。
-
[モデル:] では使用するテキスト生成モデルの名前を指定します。モデル名をテキスト式として指定します。サポートされているモデルについては、FileMaker 動作環境を参照してください。
-
[ストリーム:] では応答する方法を制御します:
-
オン: 応答は (単語ごとまたは一定のフレーズで) 段階的に取得および送信されます。これを指定すると FileMaker クライアントの応答性が向上したように感じます。
-
オフ: 応答全体を取得してから表示します。これを指定すると完全な応答を待っている間は FileMaker クライアントが応答していないように見える場合があります。
-
-
[プロンプトテンプレート名:] では [プロンプトテンプレートを構成] スクリプトステップを使用して構成されたカスタムプロンプトテンプレートの名前を指定します。このオプションを使用すると AI モデルから最適な応答を得るための追加のプロンプトを設計できます。
-
[応答のターゲット:] ではモデルからの応答を保存するフィールドまたは変数を指定します。
-
[引数:] では次を含めることができる JSON オブジェクトのテキスト式を指定します:
-
リクエスト送信前に処理されて取り除かれる FileMaker クライアントの引数:
CURLOPT_TIMEOUTでリクエストが完了するまでの最大時間 (秒) を設定できます。値は 0 以上の整数にする必要があります。例:{"CURLOPT_TIMEOUT": 30}この時間内に応答がない場合、FileMaker クライアントはリクエストをキャンセルし、スクリプトステップはエラーコード 1629 (「接続がタイムアウトになりました」) を返します。 -
このスクリプトステップの動作中のみ Admin Console で構成された設定を上書きする AI モデルサーバーの引数。指定していない場合、Admin Console で設定された値が使用されます。これらの引数は処理されて JSON オブジェクトに含まれる他の引数を直接モデルプロバイダに渡す前に取り除かれます。
詳細については説明を参照してください。
-
プロンプトとともにモデルプロバイダに直接渡されるモデルプロバイダ固有の引数。例:
{"temperature": 0.7, "seed": 42}。メモ 使用しているモデルによってサポートされている引数および値については、モデルプロバイダのマニュアルを参照してください。
-
[処理:] が [データを取り除く] の場合に使用できる追加のオプション:
-
[引数] では
idキーを含む JSON オブジェクトのテキスト式を指定します。その値は指定した RAG スペースから取り除かれるドキュメントの ID の配列です。例:コピー{"id" : ["5f7677a0-3258-55a3-bc86-737005cb3574", "f95d4266-66cd-5b50-a01b-07a4dd66c501"]}ドキュメントが追加された際に [応答のターゲット:] に返されたドキュメント ID は保存して後でドキュメントを取り除くために使用できます。または、RAG スペース内のすべてのドキュメントの ID を取得するには、GetRAGSpaceInfo 関数を使用します。
互換性
| 製品 | サポート |
| FileMaker Pro | はい |
| FileMaker Go | はい |
| FileMaker WebDirect | はい |
| FileMaker Server | はい |
| FileMaker Cloud | はい |
| FileMaker Data API | はい |
| カスタム Web 公開 | はい |
起点バージョン
22.0
説明
このスクリプトステップでは Claris AI Model Server 上でドキュメント (テキストデータおよび PDF ファイル) の知識キャッシュを作成して管理できます。その後は検索拡張生成 (RAG) と呼ばれる技術でこのキャッシュを活用できます。この技術を使用して、スクリプトステップは知識キャッシュから取得した最も関連性の高い事実とともに AI モデルにプロンプトまたは質問を送信し、モデルからの応答の信頼性と正確性を向上させます。
[処理:] オプションでこのスクリプトステップが何をするかを決定します。
[データを追加] 処理
この処理は指定した次のドキュメントから RAG データを追加します: テキスト (任意のテキスト式)、パスで指定した PDF ファイル、または現在のレコードか関連レコードのオブジェクトフィールドの PDF ファイル。プロセスは次の手順に従います:
-
スクリプトステップがドキュメントを AI モデルサーバーに送信します。
PDF ファイルを追加する場合、スクリプトステップは [RAG データ:] オプションに応じて、ファイルを同期または非同期送信します。同期送信の場合、ファイル転送が完了するまでスクリプトは次のステップに進みません。非同期送信の場合、ファイル転送の進行中にスクリプトは次のステップに進み (ファイルの容量が大きい場合に最適です)、FileMaker クライアントがユーザの操作に対して応答を続けることができます。
-
次の場合、AI モデルサーバーがドキュメントに ID を割り当ててから処理します:
-
ドキュメントが PDF ファイルの場合、サーバーは PDF ファイルからテキストのみを抽出します。次に、抽出されたテキストは [テキストから] オプションを使用して追加したテキストと同じ方法で処理されます。
-
サーバーは [テキストチャンクあたりのトークン] オプション (指定されている場合) または Admin Console で設定したチャンクサイズに基づいてテキストをチャンクに分割します。
テキストが JSONL (JSON Lines) 形式 (各行が有効な JSON オブジェクトの形式) である場合、サーバーは自動的にこの形式を検出して各行を別々のセマンティック単位として扱います。各行は別々にチャンク化されますが、行がマージされることはありません。これにより、FileMaker テーブルから追加されたデータのような構造化されたデータの取得精度が向上し、各レコードを 1 つの JSON 行としてフォーマットできるため、レコードの境界を正確に維持することができます。
-
最後に、サーバー上の RAG 用に構成されたテキスト埋め込みモデルを使用してサーバーがすべてのチャンクの埋め込みベクトルを取得します。
-
-
[応答のターゲット:] が指定された場合、AI モデルサーバーは追加されたドキュメントのドキュメント ID とメタデータを含む JSON オブジェクトを返します。これにより、ドキュメント ID を保存して後で使用できるようになります (例: このドキュメントを取り除くなど)。
返される JSON オブジェクトには次のキーが含まれます:
-
id: AI モデルサーバーが 16 進数エンコードされた UUID (Universally Unique Identifier) として割り当てるドキュメント ID。ID 形式の詳細については、メモを参照してください。 -
model: AI モデルサーバーがドキュメントの埋め込みベクトルの生成に使用する埋め込みモデル。 -
rag_space_id: ドキュメントが追加された RAG スペースの ID。 -
resultまたはerror:-
result: エラーが発生しなかった場合の追加されたドキュメントの状態。同期転送が成功したドキュメントの場合、値は"ok"です。非同期転送のドキュメントの場合、まだプロセスが完了していないため、値はスペース ID とキャッシュされたファイル名を含む文字列です。 -
error: AI モデルサーバーでエラーが発生した場合のエラーメッセージ文字列。
-
-
[RAG データ:] のオプションにより text または file:
-
text: [RAG データ:] の [テキストから] オプションを使用して追加された場合はドキュメントのテキスト。 -
file: [RAG データ:] のファイルまたはオブジェクトのオプションを使用して追加された場合は PDF ファイルのファイル名。
-
-
usage: ドキュメントが同期転送される場合のトークン使用量の情報。返される JSON オブジェクトは{"prompt_tokens":<数字>, "total_tokens":<数字>}で、prompt_tokensは入力 (埋め込まれたテキストチャンク) のトークン数、total_tokensは処理されたトークンの総数です。AI モデルサーバーがトークン使用量を記録しないように設定されている場合、トークン数は返されません。
メモ 非同期転送のドキュメントの場合、
rag_space_id、model、およびusageキーは処理が完了するまでこれらの値を使用できないため、"N/A"を返します。 -
[プロンプトを送信] 処理
この処理はユーザプロンプトを AI モデルサーバーに送信して指定した RAG スペースから最も関連性の高いデータを取得し、次にプロンプトテンプレートおよび RAG の内容とともにユーザプロンプトを AI モデルに送信します。プロセスは次の手順に従います:
-
スクリプトステップは [プロンプトを送信] で指定したプロンプトと [スペース ID] を [RAG アカウント名:] で指定した AI モデルサーバーに送信します。
-
AI モデルサーバーがプロンプトの埋め込みベクトルを取得し、指定した RAG スペースでプロンプトのセマンティック検索を実行してから、RAG の結果をスクリプトステップに返します。
RAG の結果はテキストで RAG スペースから最も関連性の高いドキュメントチャンクの上位 N 個です (N は Admin Console で設定します。または次の [引数:] オプションによって上書きが可能です)。
-
スクリプトステップがプロンプト、プロンプトテンプレート、モデルのパラメータ、および RAG の結果を [AI アカウント名:] および [モデル:] で指定したモデルに送信します。
-
モデルはスクリプトステップが [応答のターゲット:] に保存する応答を返します。
AI モデルサーバーの引数
[引数:] オプションでは、AI モデルサーバー固有の次のキーおよび値を使用して、スクリプトステップの動作を調整できます。指定した場合、Admin Console で設定した値がこれらの値で上書きされます。これはプロンプトごとに異なるレベルの精度やコンテキストサイズが必要な場合に便利です (たとえば、小さなドキュメントセットではなく大きなドキュメントセットのクエリーを実行する場合など)。キーを指定していない場合、Admin Console で設定された値が使用されます。
|
引数キー |
説明 |
値の範囲 |
|
|
コンテキストに含める RAG の結果の最小コサイン類似度スコア。数値が高いほど結果が少なくなりますがより関連性が高くなります。 |
-1 から 1 |
|
|
AI モデルに送信されるコンテキストに含める上位ランクのドキュメントチャンクの最大数 (整数)。値 0 には RAG コンテンツが含まれません。 |
1 から 100 |
たとえば、この JSON オブジェクトは [引数:] オプションに次のキーを設定します:
{
"similarity_threshold" : .5,
"num_top_ranked_results" : 10
}
[データを取り除く] 処理
この処理は RAG スペースからドキュメントを取り除きます。[引数:] オプションで指定している場合、指定したドキュメントのみが取り除かれます。指定していない場合、RAG スペース内のすべてのドキュメントが取り除かれます。
メモ RAG スペースからドキュメントを取り除くと元に戻すことはできません。再度追加する必要がある場合に備えて必ず元のドキュメントを他の場所に保管しておいてください。
メモ
-
このスクリプトステップを使用する前に [RAG アカウント設定] スクリプトステップを使用して RAG アカウントを設定する必要があります。
-
[プロンプトを送信] 処理の場合、AI アカウントも [AI アカウント設定] スクリプトステップを使用して設定する必要があります。
-
暗号化またはパスワードで保護された PDF ファイルは [データを追加] では処理できません。
-
RAG スペースは永続的であり、[データを取り除く] 処理を使用して明示的に取り除かれるまでドキュメントを保持します。
-
すでに RAG スペースにあるファイルと同じファイル名の PDF ファイルを追加した場合、既存の PDF ファイルが取り除かれて新しいドキュメント ID を持つ新しい PDF ファイルが追加されます。この動作は PDF ファイルをパスで追加する場合も、オブジェクトフィールドから追加する場合も同じです。
-
AI モデルサーバーのバージョン 26.0.1 より前に RAG スペースに追加されたドキュメントの ID は数値です (例:
1、2、3)。バージョン 26.0.1 以降、ドキュメント ID は UUID 文字列になります (例:"5f7677a0-3258-55a3-bc86-737005cb3574")。ID 形式の変更前および変更後に追加されたドキュメントを含む RAG スペースを操作する場合、スクリプトは両方のドキュメント ID 形式を処理する必要があります。例 3 を参照してください。
-
[プロンプトテンプレート名:] を指定した場合、このスクリプトステップは [プロンプトテンプレートを構成] スクリプトステップで設定したテンプレートを使用します。プロンプトテンプレートでは
:question:([プロンプトを送信:] の値で置換) および:context:(RAG スペースから取得したドキュメントチャンクで置換) などの定数を使用できます。 -
[テキストチャンクあたりのトークン:] オプションでは:
-
チャンクサイズが大きいほどコンテキストが多く保持されますが、取得の精度が低下する場合があります。チャンクサイズが小さいと精度が向上しますが、コンテキストが失われる場合があります。日本語、中国語、または韓国語などの言語では、トークン化によりトークンあたりの文字数が少なくなるため、トークン数が固定されているとテキストの範囲が大幅に減少します。そのため、比較的大きな値 (たとえば、250〜300) の使用を検討してください。
-
RAG スペースの既存のドキュメントのチャンクサイズを変更するには、RAG スペースからドキュメントを取り除き、新しいチャンクサイズで再度追加する必要があります。
-
有効な範囲外の値を指定した場合、このスクリプトステップはエラーコード 887 (「無効な RAG スペース処理です」) を返します。
-
-
AI の応答の品質はモデルおよび RAG スペースに追加されたドキュメントの関連性や品質により変化します。
-
FileMaker WebDirect では、このスクリプトステップが [データを追加] 処理を使用し [RAG データ:] が [ファイルから] または [ファイルから (Async)] の場合、ユーザがアップロードする PDF ファイルを選択できるように [挿入] ダイアログボックスが開き、[入力ファイル] オプションは無視されます。
例 1 - RAG スペースへのテキスト追加
顧客のナレッジベースの RAG スペースにテキスト内容を追加します。
RAG アカウント設定 [RAG アカウント名: "customer-support-rag-account" ; エンドポイント: "https://myserver.example.com/llm/v1/" ; API キー: "eyJh..." ; SSL 証明書の検証]
RAG 処理を実行 [RAG アカウント名: "customer-support-rag-account" ; スペース ID: "knowledge-base" ; 処理: データを追加 ; RAG データ: テキストから ; "返品と交換を処理するためのカスタマサポートのポリシーおよび手順..."]
例 2 - RAG スペースを照会するプロンプトの送信
例 1 と同じ RAG スペースを照会するプロンプトを送信して応答をフィールドに保存します。
スクリプトは RAG アカウントと AI アカウントの両方を設定して AI モデルサーバーを使用します。
$parameters 変数には similarity_threshold を 0.6 に設定して非常に関連性の高い RAG 結果のみが含まれるようにし、num_top_ranked_results を 5 に設定してコンテキストを最も関連性の高い上位 5 つのドキュメントチャンクに限定し、Admin Console で設定されているデフォルトを上書きします。また、応答がない場合に 30 秒後にリクエストをキャンセルする CURLOPT_TIMEOUT も含めます。
プロンプトを送信すると、スクリプトが応答生成のための temperature および max_tokens パラメータをモデルに送信して応答をフィールドにストリーミングします。
RAG アカウント設定 [RAG アカウント名: "customer-support-rag-account" ; エンドポイント: "https://myserver.example.com/llm/v1/" ; API キー: グローバル::RAG API キー ; SSL 証明書の検証]
AI アカウント設定 [アカウント名: "AI_Model_Server" ; モデルプロバイダ: カスタム ; エンドポイント: "https://myserver.example.com/llm/v1/" ; API キー: グローバル::テキスト生成 API キー ; SSL 証明書の検証]
変数を設定 [$parameters ; 値:
JSONSetElement ("{}" ;
["temperature" ; .3 ; JSONNumber] ;
["max_tokens" ; 500 ; JSONNumber] ;
["similarity_threshold" ; .6 ; JSONNumber] ;
["num_top_ranked_results" ; 5 ; JSONNumber]
)
]
RAG 処理を実行 [RAG アカウント名: "customer-support-rag-account" ; スペース ID: "knowledge-base" ; 処理: プロンプトを送信 ; "不良品の返品ポリシーは?"; AI アカウント名: "AI_Model_Server" ; モデル: グローバル::モデル名 ; ストリーム: オン ; 応答のターゲット: カスタマサポート::AI 応答 ; 引数: $parameters]
「カスタマサポート::AI 応答」フィールドの結果は「不良品の返品ポリシーにより、14 日以内に商品を返品することができます。」などで始まります。
例 3 - RAG スペースから PDF ファイルを追加および取り除く
「Policies.pdf」という名前の PDF ファイルを RAG スペースに追加してから取り除きます。
AI モデルサーバーで使用する RAG アカウントを設定した後、スクリプトはファイルパスを指定して「Policies.pdf」ファイルを RAG スペースに追加します。ファイルを取り除く前に、スクリプトはファイルを追加したときに割り当てられたドキュメント ID を見つける必要があります。ドキュメント ID は [応答のターゲット:] によって返されて $ragAddResponse に保存されます。例:
{
"file": "Policies.pdf",
"id": "f95d4266-66cd-5b50-a01b-07a4dd66c501",
"model": "multi-qa-MiniLM-L6-cos-v1",
"rag_space_id": "knowledge-base",
"result": "ok",
"usage": {
"prompt_tokens": 3803,
"total_tokens": 3803
}
}
最初に、スクリプトは $ragAddResponse からドキュメント ID を取得して $id に保存します。また、JSONGetElementType 関数を使用して ID のデータタイプを取得して $idType に保存します。UUID の場合はデータタイプが JSONString、数字 ID の場合は JSONNumber です (ID 形式の詳細についてはメモを参照してください)。
次に、スクリプトは $idArrayToRemove 変数を id キーを使用した JSON オブジェクトとして構築します。値は取り除くドキュメント ID を含む配列です。ID を配列に追加する場合、スクリプトでは $idType を使用して $ragAddResponse の元のデータタイプを保持します。このアプローチにより AI モデルサーバーが使用する ID 形式に関係なくスクリプトが確実に正しく動作するようになります。
最後に、スクリプトは [RAG 処理を実行] を呼び出して [引数:] オプションを $idArrayToRemove に設定することでデータを取り除きます。
RAG アカウント設定 [RAG アカウント名: "customer-support-rag-account" ; エンドポイント: "https://myserver.example.com/llm/v1/" ; API キー: グローバル::RAG API キー ; SSL 証明書の検証]
RAG 処理を実行 [RAG アカウント名: "customer-support-rag-account" ; スペース ID: "knowledge-base" ; 処理: データを追加 ; RAG データ: ファイルから ; "Policies.pdf" ; 応答のターゲット: $ragAddResponse]
変数を設定 [$id ; 値: JSONGetElement ($ragAddResponse ; "id")]
変数を設定 [$idType ; 値: JSONGetElementType ($ragAddResponse ; "id")]
変数を設定 [$idArrayToRemove ; 値:
JSONSetElement ("{}" ; "id" ;
JSONSetElement ("[]" ; 0 ; $id ; $idType) ;
JSONArray
)
]
RAG 処理を実行 [RAG アカウント名: "customer-support-rag-account" ; スペース ID: "knowledge-base" ; 処理: データを取り除く ; 引数: $idArrayToRemove]
例 4 - 異なるチャンクサイズでドキュメントを追加
英語と日本語のドキュメントを同じ RAG スペースに追加し、各言語に最適化された異なるチャンクサイズを使用します。
このスクリプトでは英語の技術文書用に比較的小さなチャンクサイズ (150 トークン) を使用して特定の技術的詳細を正確に取得できるようにします。
日本語の規制文書の場合、スクリプトは比較的大きなチャンクサイズ (300 トークン) を使用します。日本語のトークン化ではトークンごとに生成されるテキストの長さが短くなるため、十分なコンテキストを維持するにはより多くのトークンが必要になるためです。スクリプトではこの PDF ファイルから縦方向のテキストをさらに正確に抽出するために [縦書きテキストを検出] オプションも選択します。
RAG アカウント設定 [RAG アカウント名: "product-docs-rag-account" ; エンドポイント: "https://myserver.example.com/llm/v1/" ; API キー: グローバル::RAG API キー ; SSL 証明書の検証]
RAG 処理を実行 [RAG アカウント名: "product-docs-rag-account" ; スペース ID: "product-knowledge" ; 処理: データを追加 ; RAG データ: ファイルから ; "TechnicalSpecs_EN.pdf" ; テキストチャンクあたりのトークン: 150]
RAG 処理を実行 [RAG アカウント名: "product-docs-rag-account" ; スペース ID: "product-knowledge" ; 処理: データを追加 ; RAG データ: ファイルから ; "Regulations_JA.pdf" ; 縦書きテキストを検出 ; テキストチャンクあたりのトークン: 300]
例 5 - レコードを JSONL テキストとして追加
「FAQ」レコードを FileMaker テーブルから JSONL 形式を使用して RAG スペースに追加し、各行が 1 つの完全な「FAQ」レコードを表現するようにします。
スクリプトは「FAQ」テーブルのレコードをループ処理して JSONL テキスト文字列を構築し、各行が質問 ID、質問、および回答を含む JSON オブジェクトになるようにします。この JSONL 形式のテキストが RAG スペースに追加されると、AI モデルサーバーは自動的に形式を検出して各行 (各 FAQ レコード) を別々のセマンティック単位として扱うため、レコードの境界が保持されて取得の精度が向上します。
RAG アカウント設定 [RAG アカウント名: "customer-support-rag-account" ; エンドポイント: "https://myserver.example.com/llm/v1/" ; API キー: グローバル::RAG API キー ; SSL 証明書の検証]
変数を設定 [$jsonlText ; 値: ""]
レイアウト切り替え [「FAQ」 (FAQ) ; アニメーション: なし]
レコード/検索条件/ページへ移動 [最初の]
Loop [フラッシュ: 常に]
変数を設定 [$jsonLine ; 値:
JSONSetElement ("{}" ;
["id" ; FAQ::質問 ID ; JSONString] ;
["question" ; FAQ::質問 ; JSONString] ;
["answer" ; FAQ::回答 ; JSONString]
)
]
変数を設定 [$jsonlText ; 値: $jsonlText & $jsonLine & ¶]
レコード/検索条件/ページへ移動 [次の ; 最後まできたら終了: オン]
End Loop
RAG 処理を実行 [RAG アカウント名: "customer-support-rag-account" ; スペース ID: "knowledge-base" ; 処理: データを追加 ; RAG データ: テキストから ; $jsonlText ; 応答のターゲット: $ragResponse]
結果の $jsonlText 変数には JSONL 形式のテキストが次のように含まれています:
{"id":"001","question":"返品ポリシーは?","answer":"30 日間は商品を返品できます..."}
{"id":"002","question":"注文を追跡する方法は?","answer":"追跡番号を使用してご注文を追跡できます..."}
{"id":"003","question":"国外に発送してくれますか?","answer":"はい、世界 100 か国以上に発送しております..."}
行が十分に短い場合、AI モデルサーバーはそれを 1 つのチャンクとします。 行がテキストチャンクあたりのトークンの上限を超過する場合、その行は複数のチャンクに分割されます。行がマージされることはないため、RAG スペースのクエリーを実行する際に取得したチャンクには 1 つの「FAQ」レコードの内容のみが含まれます。これにより関連情報を提供したレコードを特定しやすくなります。