- 基本情報
- データのセキュリティとコンプライアンス
- 組織
- 認証とセキュリティ
- ライセンス
- テナントとサービス
- アカウントとロール
- AI Trust Layer
- 外部アプリケーション
- 通知
- ログ
- 組織でのテスト
- トラブルシューティング
- Test Cloud に移行する
Test Cloud 管理ガイド
既存のベクトル データベースを使用して、エージェントの応答を企業の信頼できるデータにグラウンディングできます。コンテンツの複製や、現在のアーキテクチャの変更は不要です。
このガイドでは、外部で管理されるベクトル データベース (Databricks Vector Search や Azure AI Search など) を、API ワークフローを使用して UiPath エージェントに接続し、独自のデータ ソースを使用して検索拡張生成 (RAG) を実行できるようにする方法について説明します。
このガイドを最後まで読むと、次のことができるようになります。
- UiPath エージェントから外部のベクトル データベースにクエリを実行する
- 最も関連性の高いコンテンツを構造化されたコンテキストとして返す
- エージェントの応答を組織のデータに安全かつリアルタイムにグラウンディングする
独自のデータベースを利用する (BYOVD) パターンを使用する状況
BYOVD は次の場合に使用します。
- すでに外部ベクトル ストア内でデータにインデックスが付けられている
- エージェントが企業の最新のナレッジにアクセスできるようにする
- UiPath 内でのデータのコピーやインデックスの作成を避ける必要がある
- データの保存、セキュリティ、埋め込みを完全に制御する必要がある
動作のしくみ
BYOVD により、エージェントは生成 AI の応答を、信頼できるデータ ソースにグラウンディングできます。組み込みのコンテキスト グラウンディングのインデックスを利用する代わりに API ワークフローを使用し、このワークフローで外部のベクトル データベースに対して安全にクエリを実行し、関連するコンテキストをエージェントの大規模言語モデルに返します。
このアプローチにより、任意のベクトル データベースをパブリック API と柔軟に連携させながら、データ アクセス、認証、取得ロジックの制御を維持できます。
UiPath では、エージェントのツールとして機能する API ワークフローを通じて BYOVD を実現します。実行時の処理の流れは次のとおりです。
- ユーザー クエリ: ユーザーがエージェントにプロンプトを送信します。
- ツールの選択: エージェントの LLM が追加のコンテキストが必要であると判断し、カスタムのベクトル検索ツールを選択します。
- API ワークフローの実行: エージェントがパブリッシュ済みの API ワークフローを呼び出し、ユーザーのクエリを入力として渡します。
- ベクトル検索: ワークフローでベクトル データベースに対してクエリを実行し、意味的に最も関連性の高いコンテンツを取得します。
- コンテキストの戻り: ワークフローが、取得されたコンテンツを構造化された JSON として返します。
- 応答の生成: エージェントがこのコンテキストを使用して正確なグラウンディング応答を生成します。
このアプローチにより、コンテキスト グラウンディング サービスにネイティブに取り込むことなく、検索拡張生成 (RAG) がサポートされます。
アーキテクチャの概要
BYOVD ソリューションは、次の 3 つの主要なコンポーネントで構成されます。
- ベクトル データベース: 既存のシステムです (例: Databricks Vector Search、Azure AI Search)。
- API ワークフロー: 以下の処理を行う UiPath Integration Service ワークフローです。
- クエリを受け入れる
- ベクトル データベース API を呼び出す
- 関連する結果を返す
- エージェントのツール: パブリッシュ済みの API ワークフローです。エージェントが呼び出すことができるツールとして追加します。
セキュリティと資格情報の管理
ワークフローを構築する前に、すべての API キーとシークレットを安全に保管してください。また、資格情報をワークフロー内にハードコードしないでください。代わりに、Orchestrator 資格情報ストアを使用して以下を行います。
- 資格情報を Orchestrator に保存する: API キーとその他のシークレットを資格情報アセットとして Orchestrator テナントに追加します。これにより、機密情報を安全に一元管理できます。
- 実行時に資格情報を取得する: API ワークフローで、[ 資格情報を取得 ] アクティビティを使用して、ワークフローの実行時に保存されている資格情報にアクセスします。このアクティビティは、ユーザー名を文字列として、パスワード (API キーなど) を
SecureStringとして返し、シークレットがログやワークフロー定義に公開されるのを防ぎます。
前提条件
開始する前に、以下があることを確認してください。
- アクティブなベクトル データベース (Databricks Vector Search や Azure AI Search など) とインデックス付きのデータ
- Orchestrator に資格情報アセットとして保存された、有効な API エンドポイントと認証の資格情報
- 同じく安全に保存された、埋め込みモデルのエンドポイントとキー (Azure のクライアント側のベクトル化の場合のみ)
セットアップ
BYOVD は 3 つの方法のいずれかを使用して実装できます。その方法とは、モデルのネイティブ エンドポイント、クライアント側のベクトル化 (API ワークフローでベクトル化を実行)、または統合ベクトル化です。
以降のセクションでは、各アプローチを設定するためのステップバイステップの手順を説明します。ここで挙げる例では Databricks と Azure AI Search を使用していますが、他のベクトル データベースにも同じパターンが適用されます。ご使用のベクトル データベースでのクエリのベクトル化の処理方法に合った設定を選択してください。
Databricks ベクトル検索 (モデルのネイティブ エンドポイント)
このオプションは、Databricks でクエリのベクトル化をネイティブに処理する場合に使用します。
このオプションを使用する理由
- 構成が簡単である
- API 呼び出しが 1 つのクエリにつき 1 つだけである
- 別個の埋め込みモデルが必要ない
手順
- Databricks の詳細を取得します。
- エンドポイント URL を取得します。
- Databricks の個人用アクセス トークンを資格情報アセットとして Orchestrator に保存します。
- Studio で新しい API ワークフロー プロジェクトを作成し、以下の引数を定義します。
in_QueryText(String)in_TopK(Int32、既定値は5)out_Results(String)
- [資格情報を取得] アクティビティを使用して、実行時に Databricks の個人用アクセス トークンを Orchestrator から取得します。
- Databricks エンドポイントを呼び出すために [HTTP 要求] アクティビティを追加します。
- エンドポイント: Databricks ベクトル検索エンドポイントです。
- 方法:
POST - ヘッダー:
Authorization: Bearer <Personal Access Token> - 本文: 入力変数をマッピングして、Databricks API で必要な JSON 本文を作成します。
- ワークフローを Orchestrator テナントにパブリッシュします。
- ワークフローをツールとしてエージェントに追加し、LLM で使用する明確な名前と説明を指定します。
Azure AI Search (クライアント側のベクトル化)
このオプションは、Azure AI Search のインデックスがベクトル入力を予期している場合に使用します。
このオプションを使用する理由
- 埋め込みモデルを完全に制御できる
- 既存のベクトル インデックスと相互運用できる
手順
- API の詳細を取得します。
- Azure AI Search の場合: エンドポイント URL とインデックス名を取得し、API キーを資格情報アセットとして Orchestrator に保存します。
- 埋め込みモデルの場合: エンドポイント URL を取得し、埋め込みサービスの API キーを資格情報アセットとして Orchestrator に保存します。
- Studio で新しい API ワークフロー プロジェクトを作成し、以下の引数を定義します。
in_QueryText(String)in_TopK(Int32、既定値は5)out_Results(String)
- まず、クエリをベクトル化します。
- Azure AI Search に対してクエリを実行します。
- Azure AI Search の API キーを取得するために、[資格情報を取得] アクティビティを追加します。
- [HTTP 要求] アクティビティを追加し、次のように設定します。
- エンドポイント: Azure AI Search エンドポイントです。
- メソッド:
POST。 - ヘッダー:
api-keyヘッダーを Azure AI Search API キー変数とともに追加し、api-key: <API key>のようにします。 - 本文:
queryVector変数を埋め込んで、Azure AI Search ベクトル検索クエリの JSON 本文を作成します。
- ワークフローを Orchestrator テナントにパブリッシュします。
- パブリッシュしたワークフローをツールとしてエージェントに追加し、LLM が使用する明確な説明を入力します。
Azure AI Search (統合ベクトル化)
このオプションは、Azure AI Search のインデックスが組み込みのベクトル化をサポートしている場合に使用します。
このオプションを使用する理由
- Azure の設定が最も簡単である
- ワークフローに埋め込み呼び出しがない
- API 要求が 1 つのクエリにつき 1 つである
手順
- API の詳細を取得します。
- Azure AI Search のエンドポイント URL とインデックス名を取得し、API キーを資格情報アセットとして Orchestrator に保存します。
- Studio で新しい API ワークフロー プロジェクトを作成し、以下の引数を定義します。
in_QueryText(String)in_TopK(Int32、既定値は5)out_Results(String)
- UiPath Orchestrator から Azure AI Search の API キーを取得するために、[資格情報を取得] アクティビティを追加します。
- [HTTP 要求] アクティビティを追加し、次のように設定します。
- エンドポイント:
https://<service>.search.windows.net/indexes/<index-name>/docs/search?api-version=2023-11-01https://<service>.search.windows.net/indexes/<index-name>/docs/search?api-version=2023-11-01 - 方法:
POST - ヘッダー: 次のように、Azure AI Search API キー変数を含む
api-keyヘッダーを追加しますapi-key: <API key> - 本文: クエリ テキストを使用してベクトル検索を実行するための JSON 本文を作成します。ベクトル化は Azure AI Search で自動的に処理されます。
{ "vectorQueries": [ { "kind": "text", "text": "<%= in_QueryText %>", "fields": "contentVector", "k": "<%= in_TopK %>" } ], "select": "chunk, source_document" }{ "vectorQueries": [ { "kind": "text", "text": "<%= in_QueryText %>", "fields": "contentVector", "k": "<%= in_TopK %>" } ], "select": "chunk, source_document" }
- エンドポイント:
- ワークフローを Orchestrator テナントにパブリッシュします。
- パブリッシュしたワークフローをツールとしてエージェントに追加し、LLM に対して明確な説明を入力します。