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"
                }
            ]
        }
    ]
}

Weitere Informationen