重要
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
プロンプト フローのインデックス参照ツールを使用すると、プロンプト フローで一般的なベクター インデックス (Azure AI 検索、Faiss、Pinecone など) を使用して、拡張生成を取得できます。 このツールは、ワークスペース内のインデックスを自動的に検出し、フローで使用するインデックスの選択を許可します。
[前提条件]
注
このドキュメントでは、 Microsoft Foundry (クラシック) ポータルのみを参照しています。
この機能には ハブ ベースのプロジェクト を使用する必要があります。 Foundry プロジェクトはサポートされていません。 「 自分が持っているプロジェクトの種類を確認する方法 」と 「ハブベースのプロジェクトを作成する」を参照してください。
- アクティブなサブスクリプションを持つ Azure アカウント。 お持ちでない場合は、 無料試用版サブスクリプションを含む無料の Azure アカウントを作成します。
- ない場合は、 ハブベースのプロジェクトを作成します。
Index Lookup ツールを使用したビルド
Microsoft Foundry でフローを作成または開きます。 詳細については、「フローの作成」を参照してください。
[+ その他のツール]>[Index Lookup] の順に選択し、Index Lookup ツールをフローに追加します。
Index Lookup ツールの入力パラメーターの値を入力します。 大規模言語モデル (LLM) ツールでは、ベクトル入力を生成できます。
必要に応じて、フローにさらにツールを追加します。 または、[実行] を選択してフローを実行します。
返される出力の詳細については、出力の表を参照してください。
入力
次の入力パラメータを使用できます。
| 名前 | タイプ | 説明 | 必須 |
|---|---|---|---|
| mlindex_content | 文字列 | 使用するインデックスの種類。 入力はインデックスの種類によって異なります。 Azure AI 検索インデックスの JSON の例は、表の下に示されています。 | イエス |
| Query | 糸 Union[string, List[String]] |
クエリ対象となるテキスト。 | イエス |
| クエリタイプ | 文字列 | 実行するクエリの種類。 オプションには、キーワード、セマンティック、ハイブリッドなどがあります。 | イエス |
| top_k | 整数 | 返される上位スコアのエンティティ数。 既定値は 3 です。 | いいえ |
Azure AI 検索インデックス入力の例を次に示します。
embeddings:
api_base: <api_base>
api_type: azure
api_version: 2023-07-01-preview
batch_size: '1'
connection:
id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<AOAI_connection>
connection_type: workspace_connection
deployment: <embedding_deployment>
dimension: <embedding_model_dimension>
kind: open_ai
model: <embedding_model>
schema_version: <version>
index:
api_version: 2023-07-01-Preview
connection:
id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<cogsearch_connection>
connection_type: workspace_connection
endpoint: <cogsearch_endpoint>
engine: azure-sdk
field_mapping:
content: id
embedding: content_vector_open_ai
metadata: id
index: <index_name>
kind: acs
semantic_configuration_name: azureml-default
出力
ツールによって返される JSON 形式の応答の例を次に示します。この応答にはスコアが上位 k 個のエンティティが含まれています。 このエンティティは、promptflow-vectordb SDK によって提供されるベクトル検索結果の汎用スキーマに従います。 Vector Index Search では、次のフィールドに値が入力されます。
| フィールド名 | タイプ | 説明 |
|---|---|---|
| メタデータ | 辞書 | インデックスの作成時にユーザーが指定したカスタマイズされたキー/値ペア。 |
| page_content | 文字列 | 参照で使用されているベクター チャンクの内容。 |
| スコア | float | ベクター インデックスで定義されたインデックスの種類に依存します。 インデックスの種類が Faiss の場合、スコアは L2 距離です。 インデックスの種類が Azure AI 検索の場合、スコアはコサインの類似度です。 |
[
{
"metadata":{
"answers":{},
"captions":{
"highlights":"sample_highlight1",
"text":"sample_text1"
},
"page_number":44,
"source":{
"filename":"sample_file1.pdf",
"mtime":1686329994,
"stats":{
"chars":4385,
"lines":41,
"tiktokens":891
},
"url":"sample_url1.pdf"
},
"stats":{
"chars":4385,"lines":41,"tiktokens":891
}
},
"page_content":"vector chunk",
"score":0.021349556744098663
},
{
"metadata":{
"answers":{},
"captions":{
"highlights":"sample_highlight2",
"text":"sample_text2"
},
"page_number":44,
"source":{
"filename":"sample_file2.pdf",
"mtime":1686329994,
"stats":{
"chars":4385,
"lines":41,
"tiktokens":891
},
"url":"sample_url2.pdf"
},
"stats":{
"chars":4385,"lines":41,"tiktokens":891
}
},
"page_content":"vector chunk",
"score":0.021349556744098663
},
]