Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Diese Fähigkeit ist in der Vorschau unter den Zusatznutzungsbedingungen verfügbar. Die neueste Vorschauversion von Skillsets – Create Or Update (REST API) unterstützt dieses Feature.
Die Azure Vision multimodale Embeddings Fähigkeit nutzt die multimodale Embeddings API aus Azure Vision in Foundry Tools, um Embeddings für Text- oder Bildeingaben zu generieren.
Für Transaktionen, die pro Indexer pro Tag 20 Dokumente übersteigen, erfordert diese Fähigkeit, dass Sie eine abrechenbare Microsoft Foundry-Ressource Ihrem Skillset hinzufügen. Die Ausführung der eingebauten Fähigkeiten wird zum bestehenden Standard von Foundry Tools berechnet. Bildextraktion ist außerdem abrechenbar durch Azure KI-Suche.
Die Microsoft Foundry-Ressource wird ausschließlich für Abrechnungszwecke verwendet. Die Inhaltsverarbeitung erfolgt auf separaten Ressourcen, die von Azure KI-Suche verwaltet und gepflegt werden. Deine Daten werden im Geo verarbeitet, in dem deine Ressource eingesetzt wird.
Unterstützte Regionen
Unterstützte Regionen unterscheiden sich je nach Modalität und wie die Skill mit der multimodalen Embeddings-API von Azure Vision verbunden ist.
| Vorgehensweise | Anforderung |
|---|---|
| Datenimport-Wizard |
|
| Programmatisch, mit einer schlüsselbasierten Verbindung für die Abrechnung |
|
| Programmatisch, mit einer schlüssellosen Verbindung für die Abrechnung | Keine Anforderung für dieselbe Region. Erstellen Sie einen Azure KI-Suche Service und Microsoft Foundry-Ressource in jeder Region, in der jeder Service verfügbar ist. |
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
Datenlimits
Die Eingabegrenzen für die Fähigkeit finden sich in der Azure Vision-Dokumentation für Bilder und Text. Erwägen Sie, die Text-Split-Fähigkeit zu verwenden, wenn Sie Daten-Chunking für Texteingaben benötigen.
Anwendbare Eingaben sind:
- Die Dateigröße der Bildeingabe muss weniger als 20 Megabyte (MB) betragen. Die Bildgröße muss größer als 10 x 10 Pixel und weniger als 16.000 x 16.000 Pixel sein.
- Die Texteingabe-Zeichenkette muss zwischen (inklusiv) einem Wort und 70 Wörtern liegen.
Qualifikationsparameter
Die Parameter sind groß- und kleinschreibungssensitiv.
| Eingaben | Beschreibung |
|---|---|
modelVersion |
(Erforderlich) Die Modellversion (2023-04-15) soll an die Azure Vision multimodale Embeddings-API zur Erzeugung von Embeddings weitergegeben werden. Vektor-Embeddings können nur verglichen und abgeglichen werden, wenn sie vom gleichen Modelltyp stammen. Bilder, die von einem Modell vektorisiert werden, sind in einem anderen Modell nicht durchsuchbar. Die neueste Bildanalyse-API bietet zwei Modelle:
|
Qualifikationseingaben
Fähigkeitsdefinitionen umfassen Name, Quelle und Inputs. Die folgende Tabelle liefert gültige Werte für den Namen der Eingabe. Du kannst auch rekursive Eingaben angeben. Weitere Informationen finden Sie in der REST API-Referenz und Erstellen Sie ein Skillset.
| Eingabe | Beschreibung |
|---|---|
text |
Der Eingabetext wird vektorisiert. Wenn du Datenchunking verwendest, könnte die Quelle ./document/pages/* |
image |
Komplexer Typ. Derzeit funktioniert es nur mit dem Feld "/document/normalized_images", das vom Azure Blob-Indexer erzeugt wird, wenn imageAction auf einen anderen Wert als none gesetzt wird. |
url |
Die URL, um das zu vektorisierende Bild herunterzuladen. |
queryString |
Die Abfragefolge der URL, um das zu vektorisierende Bild herunterzuladen. Nützlich, wenn du URL und SAS-Token in getrennten Pfaden speicherst. |
Nur eine von text, image oder url/queryString kann für eine einzelne Instanz der Fähigkeit konfiguriert werden. Wenn Sie sowohl Bilder als auch Text innerhalb desselben Skillsets vektorisieren möchten, fügen Sie zwei Instanzen dieser Fähigkeit in die Skillset-Definition ein, eine für jeden Eingabetyp, den Sie verwenden möchten.
Skill-Ergebnisse
| Output | Beschreibung |
|---|---|
vector |
Geben Sie ein Embedding-Array von Floats für den Eingabetext oder das Bild aus. |
Beispieldefinition
Für die Texteingabe betrachten Sie einen Blob mit folgendem Inhalt:
{
"content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square kilometers of South America."
}
Für Texteingaben könnte deine Fertigkeitsdefinition so aussehen:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "vector",
"targetName": "text_vector"
}
]
}
Für die Bildeingabe könnte eine zweite Fertigkeitsdefinition im gleichen Skillset so aussehen:
{
"@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"
}
]
}
Wenn Sie Bilder direkt aus Ihrer Blob-Speicher-Datenquelle vektorisieren möchten, anstatt Bilder während der Indexierung zu extrahieren, sollte Ihre Fähigkeitsdefinition eine URL und eventuell ein SAS-Token angeben, abhängig von der Speichersicherheit. In diesem Szenario könnte deine Fertigkeitsdefinition so aussehen:
{
"@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"
}
]
}
Beispielausgabe
Für die gegebene Eingabe wird eine vektorisierte Einbettungsausgabe erzeugt. Die Ausgabe umfasst 1.024 Dimensionen, was der Anzahl der Dimensionen entspricht, die von der multimodalen API von Azure Vision unterstützt werden.
{
"text_vector": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
Die Ausgabe befindet sich im Speicher. Um diese Ausgabe an ein Feld im Suchindex zu senden, musst du ein outputFieldMapping definieren, das die vektorisierte Einbettungsausgabe (die ein Array ist) auf ein Vektorfeld abbildet. Vorausgesetzt, die Skill-Ausgabe befindet sich im Vektorknoten des Dokuments und content_vector das Feld im Suchindex ist, sollte das outputFieldMapping im Indexer wie folgt aussehen:
"outputFieldMappings": [
{
"sourceFieldName": "/document/vector/*",
"targetFieldName": "content_vector"
}
]
Um Bildeinbettungen dem Index zuzuordnen, verwendet man Indexprojektionen. Die Nutzlast für indexProjections könnte ungefähr so aussehen wie im folgenden Beispiel. image_content_vector ist ein Feld im Index und wird mit dem Inhalt gefüllt, der im Vektor des normalized_images Arrays gefunden wird.
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "image_content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}