Azure KI Vision – Skill „Multimodale-Einbettung“
Wichtig
Diese Fähigkeit befindet sich in der öffentlichen Vorschau unter ergänzenden Nutzungsbedingungen. Die 2024-05-01-Preview REST API unterstützt diese Funktion.
Die Skill „Multimodale-Einbettung“ von Azure KI Vision verwendet die multimodale Einbettungs-API von Azure KI Vision, um Einbettungen für Bild- oder Texteingaben zu generieren.
Die Funktion wird nur in Suchdiensten in einer Region unterstützt, die die multimodale Einbettungs-API von Azure KI Vision unterstützt. Überprüfen Sie die Verfügbarkeit der Region für multimodale Einbettungen. Ihre Daten werden im geografischen Raum verarbeitet, in dem Ihr Modell bereitgestellt wird.
Hinweis
Dieser Skill ist an Azure KI Services gebunden und erfordert eine abrechenbare Ressource für Transaktionen, die 20 Dokumente pro Indexer und Tag überschreiten. Die Ausführung integrierter Skills wird nach dem bestehenden nutzungsbasierten Preis für Azure KI Services berechnet.
Darüber hinaus wird die Bildextraktion durch Azure KI Search abgerechnet.
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
Datengrenzwerte
Die Eingabegrenzwerte für die Skill finden Sie in der Azure KI Vision-Dokumentation für Bilder bzw. Text. Erwägen Sie, die Skill „Textaufteilung“ zu verwenden, wenn Sie Datenblöcke für Texteingaben benötigen.
Skillparameter
Bei den Parametern wird zwischen Groß- und Kleinschreibung unterschieden.
Eingaben | Beschreibung |
---|---|
modelVersion |
(Erforderlich) Die Modellversion, die an die multimodale Einbettungs-API von Azure KI Vision übergeben werden soll, um Einbettungen zu generieren. Es ist wichtig, dass alle in einem bestimmten Indexfeld gespeicherten Einbettungen mit derselben modelVersion generiert werden. Informationen zur Versionsunterstützung für dieses Modell finden Sie unter multimodale Einbettungen. |
Skilleingaben
Eingabe | Beschreibung |
---|---|
text |
Der zu vektorisierende Eingabetext. Wenn Sie Datenblöcke verwenden, ist die Quelle möglicherweise /document/pages/* . |
image |
Komplexer Typ. Arbeitet derzeit mit dem Feld „/document/normalized_images“, das vom Azure Blob-Indexer generiert wird, wenn imageAction auf einen anderen Wert als none gesetzt ist. |
url |
Die URL zum Herunterladen des Bilds, das vektorisiert werden soll. |
queryString |
Die Abfragezeichenfolge der URL zum Herunterladen des Bilds, das vektorisiert werden soll. Hilfreich, wenn das URL- und SAS-Token in separaten Pfaden gespeichert wird. |
Nur einer von text
, image
oder url
/queryString
kann für eine einzelne Instanz der Skill konfiguriert werden. Wenn Sie sowohl Bilder als auch Text innerhalb desselben Skillsets vektorisieren möchten, schließen Sie zwei Instanzen dieser Skill in die Definition des Skillset ein – eines für jeden Eingabetyp, den Sie verwenden möchten.
Skillausgaben
Ausgabe | Beschreibung |
---|---|
vector |
Ausgabe-Einbettungsarray von Floats für den Eingabetext oder das Eingabebild. |
Beispieldefinition
Gehen Sie für Texteingabe von einem Datensatz mit den folgenden Feldern aus:
{
"content": "Microsoft released Windows 10."
}
Ihre Skilldefinition sieht dann möglicherweise folgendermaßen aus:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "vector"
}
]
}
Für Bildeingabe sieht Ihre Skilldefinition zum Beispiel so aus:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document/normalized_images/*",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*"
}
],
"outputs": [
{
"name": "vector"
}
]
}
Wenn Sie Bilder direkt aus Ihrer Blob-Speicherdatenquelle vektorisieren möchten, sieht Ihre Skilldefinition zum Beispiel so aus:
{
"@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"
}
]
}
Beispielausgabe
Für den gegebenen Eingabetext wird eine vektorisierte Einbettungsausgabe erzeugt.
{
"vector": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
Die Ausgabe befindet sich im Speicher. Um diese Ausgabe an ein Feld im Suchindex zu senden, müssen Sie ein outputFieldMapping definieren, die die vektorisierte Einbettungsausgabe (ein Array) einem Vektorfeld zuordnet. Wenn sich die Skillausgabe im Vektor-Knoten des Dokuments befindet und content_vector das Feld im Suchindex ist, sollte das outputFieldMapping im Index wie folgt aussehen:
"outputFieldMappings": [
{
"sourceFieldName": "/document/vector/*",
"targetFieldName": "content_vector"
}
]
Zum Zuordnen von Bildeinbettungen zum Index müssen Sie das Feature "Indexprojektionen " verwenden. Der Payload für indexProjections
könnte in etwa wie folgt aussehen:
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}