エンベディング操作の設定

Embedding New Store 操作の設定

Embedding new store​ 操作では、新しいメモリ内エンベディングを作成して物理ファイルにエクスポートします。MuleSoft AI Chain のメモリ内エンベディングでは、そのデータは変更時にファイルエクスポートを介して保持されます。

Embedding new store​ 操作を設定する手順は、次のとおりです。

  1. Anypoint Code Builder または Studio キャンバスで操作を選択します。

  2. [General (一般)]​ プロパティセクションで、​[Store Name (ストア名)]​ に、保存するエンベディングストアの完全なファイルパスを設定します。

    ファイルがすでに存在する場合、ファイルは上書きされます。ファイルパスにアクセスできることを確認します。

    この項目では DataWeave 式を使用することもできます。次に例を示します。

    mule.home ++ "/apps/" ++ app.name ++ payload.storeName

この操作の XML 設定を次に示します。

<ms-aichain:embedding-new-store
  doc:name="Embedding new store"
  doc:id="e3b52f5f-b765-4fad-9ecc-34755f386db4"
  storeName='#[mule.home ++ "/apps/" ++ app.name ++ payload.storeName]'
/>

出力設定

この操作の応答には、ストアの状況を含む JSON ペイロードが含まれます。

JSON ペイロードの応答例を次に示します。

{
    "status": "created"
}

この操作では、メイン JSON ペイロード内に含まれない属性も返されます。これには、トークン利用状況に関する情報が含まれます。次に例を示します。

{
  "storeName": "knowledge-store"
}

Embedding Add Document to Store 操作の設定

Embedding add document to store​ 操作では、ドキュメントをエンベディングストアに追加してファイルにエクスポートします。ドキュメントは、メモリ内エンベディングを使用してエンベディングに取り込まれます。MuleSoft AI Chain のメモリ内エンベディングでは、そのデータは変更時にファイルエクスポートを介して保持されます。

Embedding add document to store​ 操作を設定する手順は、次のとおりです。

  1. Anypoint Code Builder または Studio キャンバスで操作を選択します。

  2. 操作の ​[General (一般)]​ プロパティタブで、次の値を入力します。

    • Store Name (ストア名)

      保存するエンベディングストアの完全なファイルパスを含めます。ファイルがすでに存在する場合、ファイルは上書きされます。ファイルパスにアクセスできることを確認します。

    • Context Path (コンテキストパス)

      エンベディングストアに取り込むドキュメントの完全なファイルパスを含めます。

    • Max Segment Size (最大セグメントサイズ)

      エンベディングストアに取り込む前のドキュメントの分割先である各セグメントの最大サイズをトークン数または文字数で指定します。

    • Max Overlap Size (最大重複サイズ)

      ドキュメントの分割時に連続するセグメント間で重複するトークン数または文字数を定義します。

  3. 操作の ​[Context (コンテキスト)]​ セクションで ​[File Type (ファイル種別)]​ を選択します。

    • any (任意)

      ファイル形式を自動的に検出し、それに応じて処理します。このオプションでは、ファイル種別が不明または変動する場合に柔軟に対応できます。

    • text

      JSON、XML、TXT、CSV などのテキストファイル。

    • url

      取り込む Web コンテンツを参照する単一 URL。

この操作の XML 設定を次に示します。

<ms-aichain:embedding-add-document-to-store
  doc:name="Embedding add document to store"
  doc:id="e8b73dbe-c897-4f77-85d0-aaf59476c408"
  storeName='#["/Users/john.wick/Desktop/mac-demo/stores/" ++ payload.storeName]'
  contextPath="#[payload.filePath]"
  maxSegmentSizeInChars="#[payload.maxChunkSize]"
  maxOverlapSizeInChars="#[payload.maxOverlapSize]"
  fileType="#[payload.fileType]"
/>

出力設定

この操作の応答には、ストアの状況を含む JSON ペイロードが含まれます。

JSON ペイロードの応答例を次に示します。

{
    "status": "updated"
}

メインペイロードに加えてファイル関連のメタデータ属性 (ファイルパス、ストア名、ファイル種別など) が個別に返されます。次に例を示します。

{
  "filePath": "/Users/john.wick/Downloads/mulechain.txt",
  "storeName": "/Users/john.wick/Downloads/knowledge-store",
  "fileType": "text"
}

Embedding Add Folder to Store 操作の設定

Embedding add folder to store​ 操作では、サブフォルダーファイルを含む完全なフォルダーをエンベディングストアに追加してファイルにエクスポートします。ドキュメントは、メモリ内エンベディングを使用してエンベディングに取り込まれます。MuleSoft AI Chain のメモリ内エンベディングでは、そのデータは変更時にファイルエクスポートを介して保持されます。

Embedding add folder to store​ 操作を設定する手順は、次のとおりです。

  1. Anypoint Code Builder または Studio キャンバスで操作を選択します。

  2. 操作の ​[General (一般)]​ プロパティタブで、次の値を入力します。

    • Store Name (ストア名)

      保存するエンベディングストアの完全なファイルパスを含めます。ファイルがすでに存在する場合、ファイルは上書きされます。ファイルパスにアクセスできることを確認します。

    • Context Path (コンテキストパス)

      エンベディングストアへの取り込みに使用する完全なフォルダーパスを含めます。

    • Max Segment Size (最大セグメントサイズ)

      エンベディングストアで取り込む前のドキュメントの分割先である各セグメントの最大サイズをトークン数または文字数で指定します。

    • Max Overlap Size (最大重複サイズ)

      ドキュメントの分割時に連続するセグメント間で重複するトークン数または文字数を定義します。

  3. 操作の ​[Context (コンテキスト)]​ セクションで ​[File Type (ファイル種別)]​ を選択します。

    • any (任意)

      ファイル形式を自動的に検出し、それに応じて処理します。このオプションでは、ファイル種別が不明または変動する場合に柔軟に対応できます。

    • text

      JSON、XML、TXT、CSV などのテキストファイル。

    • url

      取り込む Web コンテンツを参照する単一 URL。

この操作の XML 設定を次に示します。

<ms-aichain:embedding-add-folder-to-store
  doc:name="Embedding add folder to store"
  doc:id="231a2afd-8cec-4a70-96c1-3ecef19d02db"
  config-ref="MAC_AI_Llm_configuration"
  storeName='#[mule.home ++ "/apps/" ++ app.name ++ "/knowledge-center.store"]'
  folderPath="#[payload.folderPath]"
/>

出力設定

この操作では、ストアの状況が含まれる JSON ペイロードが返されます。また、フォルダー関連のメタデータ属性 (フォルダーパス、ファイル数、ストア名など) がメインペイロードとは別に提供されます。

JSON ペイロードの応答例を次に示します。

{
    "status": "updated"
}

操作では、JSON ペイロードに加えて、取り込まれたフォルダーに関する情報が含まれる属性も返されます。次に例を示します。

{
  "folderPath": "/Users/john.wick/Downloads/files", (1)
  "filesCount": 3, (2)
  "storeName": "/Users/john.wick/Downloads/knowledge-store" (3)
}
1 folderPath​ ファイルが配置されているフォルダーへの絶対パス
2 filesCount​ 指定されたフォルダー内のファイルの合計数
3 storeName​ 処理されたドキュメントが保存されているナレッジストアのパスの名前またはパス

Embedding Query From Store 操作の設定

Embedding query from store​ 操作では、メモリ内エンベディングストアからセマンティック検索を使用してプレーンテキストプロンプトに基づいて情報を取得します。この操作では大規模言語モデル (LLM) は使用しません。代わりに、エンベディングストアでプロンプトに基づいて関連するテキストセグメントを直接検索します。取得の前にエンベディングストアがメモリに読み込まれます。

Embedding query from store​ 操作を設定する手順は、次のとおりです。

  1. Anypoint Code Builder または Studio キャンバスで操作を選択します。

  2. 操作の ​[General (一般)]​ プロパティタブで、次の値を入力します。

    • Store Name (ストア名)

      保存するエンベディングストアの完全なファイルパスを含めます。ファイルがすでに存在する場合、ファイルは上書きされます。ファイルパスにアクセスできることを確認します。

    • Question (質問)

      メモリ内ベクトルストアに送信するプレーンテキストプロンプト。エンベディングに変換され、類似するテキストセグメントを見つけるためのセマンティック検索で使用されます。

    • Max Results (最大結果数)

      クエリで返す結果の最大数を指定します。

    • Min Score (最少スコア)

      結果を特定して返すために使用する最少スコアを定義します。

    • Get Latest (最新を取得)

      true の場合、この操作を実行する前にストアファイルが毎回読み込まれます。このため、パフォーマンスが低下する場合があります。ナレッジストアをビルドする場合のみ、このフラグを使用することをお勧めします。アプリケーションをデプロイしたら、これを false に設定してパフォーマンスを改善してください。

この操作の XML 設定を次に示します。

<ms-aichain:embedding-query-from-store
  doc:name="Embedding query from store"
  doc:id="1ee361ea-e62a-4e0f-9c74-0363f8721052"
  storeName="#[mule.home ++ "/apps/" ++ app.name ++ payload.storeName]"
  question="#[payload.question]"
  maxResults="#[payload.maxResults]"
  minScore="#[payload.minScore]"
  getLatest="true"
/>

出力設定

この操作では、メイン応答が含まれる JSON ペイロードと、ナレッジストアから取得した関連ソースのリストが返されます。各ソースには、ファイルパス、テキストセグメント、類似性スコアなどの詳細が含まれます。

JSON ペイロードの応答例を次に示します。

{
  "response": "Networking Guide for more information on how to access an application in a specific CloudHub worker.",
  "sources": [
      {
          "absoluteDirectoryPath": "/Users/john.wick/Documents/Downloads/patch 8",
          "textSegment": "Networking Guide for more information on how to access an application in a specific CloudHub worker.",
          "individualScore": 0.7865373025380039,
          "file_name": "docs-runtime-manager__cloudhub_modules_ROOT_pages_cloudhub-fabric.adoc"
      },
      {
          "absoluteDirectoryPath": "/Users/john.wick/Documents/Downloads/patch 8",
          "textSegment": "= CloudHub High Availability Features",
          "individualScore": 0.7845498154294348,
          "file_name": "docs-runtime-manager__cloudhub_modules_ROOT_pages_cloudhub-fabric.adoc"
      },
      {
          "absoluteDirectoryPath": "/Users/john.wick/Documents/Downloads/patch 8",
          "textSegment": "[%header,cols=\"2*a\"]|===|VM Queues in On-Premises Applications |VM Queues in Applications deployed to CloudHub",
          "individualScore": 0.757268680397361,
          "file_name": "docs-runtime-manager__cloudhub_modules_ROOT_pages_cloudhub-fabric.adoc"
      }
  ]
}

また、トークン利用状況とクエリ関連のメタデータが属性として個別に返されます。次に例を示します。

{
  "minScore": 0.7, (1)
  "question": "Who is Amir", (2)
  "maxResults": 3, (3)
  "storeName": "/Users/john.wick/Downloads/embedding.store" (4)
}
1 minScore

結果を応答に含めるために必要な最小類似性スコア

2 question (質問)

ユーザーが送信した元のクエリまたは質問

3 maxResults

クエリで返すことができる結果の最大数

4 storeName

データを取得するために使用するナレッジストアのパスまたは名前

Embedding Get Info from Store 操作の設定

Embedding get info from store​ 操作では、プレーンテキストプロンプトに基づいてメモリ内エンベディングストアから情報を取得します。この操作では、大規模言語モデル (LLM) を使用し、取得した情報を解釈して、より包括的な回答やコンテキスト豊富な回答を生成することで、応答を強化します。取得の前にエンベディングストアがメモリに読み込まれ、LLM で結果が処理されて最終応答が絞り込まれます。

Embedding get info from store​ 操作を設定する手順は、次のとおりです。

  1. Anypoint Code Builder または Studio キャンバスで操作を選択します。

  2. 操作の ​[General (一般)]​ プロパティタブで、次の値を入力します。

    • Data

      メモリ内ベクトルストアに送信するプレーンテキストプロンプト。エンベディングに変換され、類似するテキストセグメントを見つけるためのセマンティック検索で使用されます。

    • Store Name (ストア名)

      保存するエンベディングストアの完全なファイルパスを含めます。ファイルがすでに存在する場合、ファイルは上書きされます。ファイルパスにアクセスできることを確認します。

    • Get Latest (最新を取得)

      true の場合、この操作を実行する前にストアファイルが毎回読み込まれます。このため、パフォーマンスが低下する場合があります。ナレッジストアをビルドする場合のみ、このフラグを使用することをお勧めします。アプリケーションをデプロイしたら、これを false に設定してパフォーマンスを改善してください。

この操作の XML 設定を次に示します。

<ms-aichain:embedding-get-info-from-store
    doc:name="Embedding get info from store"
    doc:id="913ed660-0b4a-488a-8931-26c599e859b5"
    config-ref="MuleSoft_AI_Chain_Config"
    storeName='#["/Users/john.wick/Desktop/mac-demo/stores/" ++ payload.storeName]'
    getLatest="true">
    <ms-aichain:data><![CDATA[#[payload.prompt]]]></ms-aichain:data>
</ms-aichain:embedding-get-info-from-store>

出力設定

この操作では、メイン LLM 応答が含まれる JSON ペイロードが、ナレッジストアから取得した関連ソースのリストと共に返されます。各ソースには、ファイルパス、ファイル名、関連テキストのセグメントなどの情報が含まれます。また、トークン利用状況とクエリ関連のメタデータが属性として個別に提供されます。

JSON ペイロードの応答例を次に示します。

{
  "response": "Runtime Manager is a feature within CloudHub that provides scalability, workload distribution, and added reliability to applications.",
  "sources": [
      {
          "absoluteDirectoryPath": "/Users/john.wick/Documents/Downloads/patch 8",
          "fileName": "docs-runtime-manager__cloudhub_modules_ROOT_pages_cloudhub-fabric.adoc",
          "textSegment": "= CloudHub High Availability Features..."
      }
  ]
}

また、トークン利用状況とクエリ関連のメタデータが属性として個別に返されます。次に例を示します。

{
  "tokenUsage": { (1)
      "outputCount": 89,
      "totalCount": 702,
      "inputCount": 613
  },
  "additionalAttributes": { (2)
      "getLatest": "true",
      "question": "What is MuleChain",
      "storeName": "/Users/john.wick/Downloads/knowledge-store"
  }
}
1 tokenUsage: 操作のトークン利用状況に関するデータを提供します。
  • outputCount

    応答で生成されたトークン数 ​totalCount

    入力と出力を含め操作全体で処理されたトークンの合計数

  • inputCount

    入力クエリまたはドキュメントから処理されたトークン数

2 additionalAttributes​ には、クエリとストアに関連するメタデータが含まれます。
  • getLatest

    操作のたびにナレッジストアを再読み込みするかどうかを指定します (true/false)。

  • question (質問)

    ユーザーが送信した元のクエリまたは質問。

  • storeName

    操作で使用されたナレッジストアのパスまたは名前。