Note
Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。
Important
このスキルは 補足利用規約のプレビュー段階です。 最新のプレビュー バージョンの スキルセット - 作成または更新 (REST API) では、この機能がサポートされています。
Azure Visionのマルチモーダル埋め込みスキルは、Foundry ToolsのAzure Visionのマルチモーダル埋め込みAPIを利用してテキストや画像入力の埋め込みを生成します。
1日あたり1人あたり20件を超えるトランザクションの場合、このスキルは請求可能なMicrosoft Foundryリソースをスキルセットに
Microsoft Foundryリソースは請求目的のみに使用されます。 コンテンツ処理はAzure AI 検索が管理・維持する別々のリソースで行われます。 データはリソースが展開される ジオ(Geo )で処理されます。
サポートされているリージョン
対応地域はモダリティやスキルがAzure Visionマルチモーダル埋め込みAPIとどのように連携するかによって異なります。
| 方法 | Requirement |
|---|---|
| インポートデータ ウィザード |
|
| 請求に鍵 ベースの接続 を使ったプログラム的 |
|
| プログラム的で、 請求にキーレス接続 を使った | 同じ地域での要件はありません。 各サービスがある地域で、Azure AI 検索サービスとFoundryリソースMicrosoft作成してください。 |
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
データ制限
スキルの入力制限は、画像とテキストの Azure Vision ドキュメントに記載されています。 テキスト入力にデータチャンクが必要なら、 テキスト 分割スキルの使用を検討してください。
該当する入力には以下が含まれます:
- 画像入力ファイルのサイズは20メガバイト(MB)未満でなければなりません。 画像サイズは10×10ピクセル以上かつ16,000×16,000ピクセル未満でなければなりません。
- テキスト入力文字列は1語から70語の間でなければなりません。
スキル パラメーター
パラメータは大文字・小文字を区別します。
| 入力 | Description |
|---|---|
modelVersion |
(必須)モデルバージョン(2023-04-15)は埋め込み生成のためにAzure Visionマルチモーダル埋め込みAPIに渡されます。 ベクトル埋め込みは、同じモデルタイプである場合にのみ比較・マッチングが可能です。 あるモデルでベクトル化された画像は、別のモデルでは検索できません。 最新の画像解析APIは2つのモデルを提供しています:
|
スキルの入力
スキル定義の入力には名前、ソース、入力が含まれます。 以下の表は入力名の有効な値を示しています。 再帰入力を指定することもできます。 詳細については、 REST APIのリファレンス と スキルセットの作成をご覧ください。
| 入力 | Description |
|---|---|
text |
入力テキストはベクター化されます。 もしデータチャンクを使っているなら、ソースは /document/pages/*かもしれません。 |
image |
複合型。 現在は「/document/normalized_images」フィールドでのみ動作し、imageActionがnone以外の値に設定されたときにAzureブロブインデクサーが生成します。 |
url |
画像をベクター化するためのURLです。 |
queryString |
画像をダウンロードするためのURLのクエリ文字列をベクター化します。 URLとSASトークンを別々のパスに保存するときに便利です。 |
スキルの単一のインスタンスに対して、 text、 image 、または url/queryString のうち1つしか設定できません。 同じスキルセット内で画像とテキストの両方をベクトル化したい場合は、使いたい入力タイプごとにこのスキルのインスタンスを2つ、スキルセット定義に含めてください。
スキルの出力
| アウトプット | Description |
|---|---|
vector |
入力テキストや画像の浮動点数の埋め込み配列を出力します。 |
サンプル定義
テキスト入力として、以下の内容を持つブロブを考えます。
{
"content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square kilometers of South America."
}
テキスト入力の場合、スキルの定義はこんな感じかもしれません:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "vector",
"targetName": "text_vector"
}
]
}
画像入力については、同じスキルセット内の第二のスキル定義は次のようなものかもしれません。
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document/normalized_images/*",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*"
}
],
"outputs": [
{
"name": "vector",
"targetName": "image_vector"
}
]
}
インデックス作成時に画像を抽出するのではなく、Blobストレージのデータソースから直接画像をベクトル化したい場合は、スキル定義でURLを指定し、ストレージのセキュリティに応じてSASトークンを指定すべきです。 この場合、スキルの定義は次のようなものかもしれません。
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "url",
"source": "/document/metadata_storage_path"
},
{
"name": "queryString",
"source": "/document/metadata_storage_sas_token"
}
],
"outputs": [
{
"name": "vector",
"targetName": "image_vector"
}
]
}
サンプル出力
与えられた入力に対して、ベクトル化された埋め込み出力が生成されます。 出力は1,024次元で、これはAzure VisionマルチモーダルAPIがサポートする次元数です。
{
"text_vector": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
出力はメモリ上にあります。 この出力を検索インデックス内のフィールドに送るには、ベクトル化された埋め込み出力(配列)をベクトルフィールドにマッピングするoutputFieldMappingを定義する必要があります。 スキル出力が文書の ベクター ノードにあり、 content_vector が検索インデックスのフィールドであると仮定すると、インデクサー内のoutputFieldMappingは以下のようになります。
"outputFieldMappings": [
{
"sourceFieldName": "/document/vector/*",
"targetFieldName": "content_vector"
}
]
画像埋め込みをインデックスにマッピングするには 、インデックス投影を使用します。
indexProjectionsのペイロードは以下の例のようなものかもしれません。 image_content_vectorはインデックス内のフィールドで、normalized_images配列のベクトルに含まれる内容で埋められます。
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "image_content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}