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 Features und Funktionen unterstützen Verbindungen mit anderen Microsoft-Dienste und Drittanbieterdiensten. Die Nutzung dieser Dienste unterliegt den jeweiligen Bestimmungen und kann dazu führen, dass Daten außerhalb der Azure-Compliancegrenze verarbeitet oder gespeichert werden und dass Daten in die Azure-Compliancegrenze fließen.
Es liegt in Ihrer Verantwortung, zu verwalten, ob Ihre Daten außerhalb der Compliance- und geografischen Grenzen Ihrer Organisation und alle damit verbundenen Auswirkungen fließen und dass entsprechende Berechtigungen, Grenzen und Genehmigungen bereitgestellt werden.
Sie sind dafür verantwortlich, Anwendungen, die Sie im Kontext Ihrer spezifischen Anwendungsfälle erstellen, sorgfältig zu überprüfen und zu testen und alle geeigneten Entscheidungen und Anpassungen zu treffen. Dazu gehört die Implementierung ihrer eigenen verantwortungsvollen KI-Entschärfungen, wie Metaprompts, Inhaltsfilter oder andere Sicherheitssysteme, und sicherzustellen, dass Ihre Anwendungen angemessene Qualität, Zuverlässigkeit, Sicherheit und Vertrauenswürdigkeitsstandards erfüllen. Weitere Informationen finden Sie im Azure KI-Suche Transparenzhinweis.
In diesem Artikel erfahren Sie, wie Sie Beschriftungen mithilfe von KI-Anreicherung und einem Skillset generieren. Bilder enthalten häufig nützliche Informationen, die in Suchszenarien relevant sind. Sie können Bilder vektorisieren , um visuelle Inhalte in Ihrem Suchindex darzustellen. Oder Sie können KI-Anreicherung und Fähigkeiten verwenden, um durchsuchbaren Text aus Bildern zu erstellen und zu extrahieren.
Die GenAI Prompt-Fähigkeit kann eine Beschreibung der einzelnen Bilder in Ihrer Datenquelle generieren, und der Indexer verschiebt diese Beschreibung in einen Suchindex. Um die Beschreibungen anzuzeigen, führen Sie eine Abfrage aus, die sie in die Antwort einschließt.
Voraussetzungen
Um mit Bildinhalten in einem Skillset zu arbeiten, benötigen Sie Folgendes:
- Eine unterstützte Datenquelle. Wir empfehlen Azure Storage.
- Dateien oder Blobs, die Bilder enthalten.
- Lesezugriff auf die unterstützte Datenquelle. In diesem Artikel wird die schlüsselbasierte Authentifizierung verwendet, indexer können jedoch auch mithilfe der Suchdienstidentität und Microsoft Entra ID Authentifizierung eine Verbindung herstellen. Weisen Sie für die rollenbasierte Zugriffssteuerung Rollen für die Datenquelle zu, um den Lesezugriff durch die Dienstidentität zu ermöglichen. Wenn Sie auf einem lokalen Entwicklungscomputer testen, stellen Sie sicher, dass Sie auch Lesezugriff auf die unterstützte Datenquelle haben.
- Ein Suchindexer, der für Bildaktionen konfiguriert ist.
- Ein Skillset mit der GenAI Prompt-Fertigkeit.
- Ein Suchindex mit Feldern, die generierte Textausgaben aufnehmen, sowie Ausgabefeldzuordnungen im Indexer, die die Verknüpfungen festlegen.
Optionalerweise können Sie Projektionen definieren, um bildanalysierte Ausgaben in einem Wissensspeicher für Data-Mining-Szenarien zu akzeptieren.
Konfigurieren von Indexern für die Bildverarbeitung
Aktivieren Sie nach dem Einrichten der Quelldateien die Bildnormalisierung, indem Sie den imageAction Parameter in der Indexerkonfiguration festlegen. Mit der Bildnormalisierung können Bilder für die nachgeschaltete Verarbeitung einheitlicher werden. Die Bildnormalisierung umfasst die folgenden Vorgänge:
- Große Bilder werden auf eine maximale Höhe und Breite angepasst, um sie einheitlich zu gestalten.
- Bei Bildern mit Metadaten, die die Ausrichtung angeben, wird die Bilddrehung für das vertikale Laden angepasst.
Beachten Sie, dass das Aktivieren von imageAction (Festlegen dieses Parameters auf andere als none) eine zusätzliche Gebühr für die Bildextraktion gemäß Azure KI-Suche pricing verursacht.
Erstellen oder aktualisieren Sie einen Indexer, um die Konfigurationseigenschaften festzulegen:
{ "parameters": { "configuration": { "dataToExtract": "contentAndMetadata", "parsingMode": "default", "imageAction": "generateNormalizedImages" } } }dataToExtractaufcontentAndMetadatafestlegen (erforderlich).Stellen Sie sicher, dass der
parsingModeStandardwert (erforderlich) festgelegt ist.Dieser Parameter bestimmt die Granularität der im Index erstellten Suchdokumente. Der Standardmodus richtet eine 1:1-Korrespondenz ein, sodass ein Blob zu einem Suchdokument führt. Wenn Dokumente groß sind oder wenn Fähigkeiten kleinere Textabschnitte erfordern, können Sie die Textaufteilungsfunktion hinzufügen, die ein Dokument zu Verarbeitungszwecken in Seiten unterteilt. Für Suchszenarien ist jedoch ein Blob pro Dokument erforderlich, wenn die Anreicherung die Bildverarbeitung umfasst.
Legen Sie
imageActionfest, um dennormalized_imagesKnoten in einem Enrichment-Baum zu aktivieren (erforderlich):generateNormalizedImagesum ein Array normalisierter Bilder im Rahmen der Dokumententschlüsselung zu generieren.generateNormalizedImagePerPage(gilt nur für PDF), um ein Array normalisierter Bilder zu generieren, in dem jede Seite in der PDF-Datei in einem Ausgabebild gerendert wird. Bei Nicht-PDF-Dateien ist das Verhalten dieses Parameters ähnlich, als hätten Sie festgelegtgenerateNormalizedImages. Die Einstellung vongenerateNormalizedImagePerPagekann jedoch den Indizierungsvorgang von vornherein weniger effizient machen (insbesondere für große Dokumente), da mehrere Bilder generiert werden müssen.
Passen Sie optional die Breite oder Höhe der generierten normalisierten Bilder an:
normalizedImageMaxWidth wird in Pixel gemessen. Der Standardwert ist 2.000. Der Maximalwert beträgt 10.000.
normalizedImageMaxHeight wird in Pixel gemessen. Der Standardwert ist 2.000. Der Maximalwert beträgt 10.000.
Informationen zu normalisierten Bildern
Wenn imageAction auf einen anderen Wert als keiner gesetzt ist, enthält das neue normalized_images-Feld ein Array von Bildern. Jedes Bild ist ein komplexer Typ mit den folgenden Elementen:
| Bildelement | Beschreibung |
|---|---|
| Daten | BASE64-codierte Zeichenfolge des normalisierten Bilds im JPEG-Format. |
| Breite | Breite des normalisierten Bilds in Pixeln. |
| Höhe | Höhe des normalisierten Bilds in Pixeln. |
| originalWidth | Die ursprüngliche Breite des Bilds vor der Normalisierung. |
| ursprüngliche Höhe | Die ursprüngliche Höhe des Bilds vor der Normalisierung. |
| rotationFromOriginal | Drehung gegen den Uhrzeigersinn zur Erstellung des normalisierten Bilds (in Grad). Ein Wert zwischen 0 Grad und 360 Grad. In diesem Schritt werden Metadaten aus dem Bild gelesen, das von einer Kamera oder einem Scanner generiert wird. In der Regel ein Vielfaches von 90 Grad. |
| contentOffset | Der Zeichenoffset innerhalb des Inhaltsfelds, aus dem das Bild extrahiert wurde. Dieses Feld gilt nur für Dateien mit eingebetteten Bildern. Die contentOffset aus PDF-Dokumenten extrahierten Bilder befinden sich immer am Ende des Texts auf der Seite, auf der sie im Dokument extrahiert wurden. Dies bedeutet, dass Bilder nach dem gesamten Text auf dieser Seite angezeigt werden, unabhängig von der ursprünglichen Position des Bilds auf der Seite. |
| Seitenzahl | Wenn das Bild aus einer PDF extrahiert oder gerendert wurde, enthält dieses Feld die Seitenzahl in der PDF, aus der es extrahiert oder gerendert wurde, beginnend mit 1. Wenn das Bild nicht aus einer PDF-Datei stammt, ist dieses Feld 0. |
Beispielwert von normalized_images:
[
{
"data": "BASE64 ENCODED STRING OF A JPEG IMAGE",
"width": 500,
"height": 300,
"originalWidth": 5000,
"originalHeight": 3000,
"rotationFromOriginal": 90,
"contentOffset": 500,
"pageNumber": 2
}
]
Definieren von Fähigkeiten für die Bildverarbeitung
In diesem Abschnitt werden die Artikel zur Qualifikationsreferenz ergänzt, indem Kontext für die Arbeit mit Fähigkeiten, Ausgaben und Mustern bereitgestellt wird, wie sie sich auf die Bildverarbeitung beziehen.
- Erstellen oder aktualisieren Sie ein Skillset, um Fähigkeiten hinzuzufügen.
Sobald das grundlegende Framework Ihrer Fähigkeiten erstellt und Foundry-Tools konfiguriert sind, können Sie sich auf jede einzelne Bildverarbeitungsfunktion konzentrieren, Eingaben und Quellkontexte definieren und Ausgaben den Feldern in einem Index oder Wissensspeicher zuordnen.
Hinweis
Ein Beispiel-Skillset, das die Bildverarbeitung mit der nachgeschalteten Verarbeitung natürlicher Sprache kombiniert, finden Sie im REST-Lernprogramm: Verwenden von REST und KI zum Generieren durchsuchbarer Inhalte aus Azure Blobs. Es zeigt, wie Sie Skill-Imaging-Ausgabe in die Entitätserkennung und Schlüsselphrasenextraktion einspeisen.
Beispieleingaben für die Bildverarbeitung
Wie bereits erwähnt, werden Bilder während der Dokumentenanalyse extrahiert und dann als vorbereitender Schritt normalisiert. Die normalisierten Bilder sind die Eingaben für jede Bildverarbeitungskompetenz und werden immer in einer erweiterten Dokumentstruktur auf eine von zwei Arten dargestellt:
-
/document/normalized_images/*ist für Dokumente vorgesehen, die vollständig verarbeitet werden.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/normalized_images/*",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*/data"
},
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='Describe what you see in this image in 20 words or less in Spanish.'"
}
],
"outputs": [
{
"name": "response",
"targetName": "captionedImage"
}
]
}
Beispiel für die Verwendung von JSON-Schemaantworten mit Texteingaben
In diesem Beispiel wird gezeigt, wie strukturierte Ausgaben für Sprachmodelle verwendet werden. Diese Funktion wird derzeit hauptsächlich von OpenAI-Sprachmodellen unterstützt, obwohl sich dies in Zukunft ändern könnte.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/content",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='How many languages are there in the world and what are they?'"
}
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "structured_output",
"strict": true,
"schema": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"total",
"languages"
],
"additionalProperties": false
}
}
},
"outputs": [
{
"name": "response",
"targetName": "responseJsonForLanguages"
}
]
}
Zuordnen von Ausgaben zu Suchfeldern
Ausgabetext wird als Knoten in einer internen erweiterten Dokumentstruktur dargestellt, und jeder Knoten muss Feldern in einem Suchindex oder Projektionen in einem Wissensspeicher zugeordnet werden, um den Inhalt in Ihrer App verfügbar zu machen.
Verwenden Sie zuerst Erstellen oder Aktualisieren – Index, um Felder hinzuzufügen, die Ergebnisse der Fähigkeiten zu akzeptieren.
Im folgenden Feldauflistungsbeispiel:
-
contentist BLOB-Inhalt. -
metadata_storage_nameenthält den Namen der Datei (aufretrievable" festgelegt). -
metadata_storage_pathist der eindeutige Pfad des BLOB und ist der Standarddokumentschlüssel. -
merged_contentwird bei der Text-Merge ausgegeben (nützlich, wenn Bilder eingebettet sind). -
captioned_imageist eine Fähigkeitsausgabe und muss ein Zeichenfolgenfeld sein, um alle Sprachmodellausgaben im Suchindex zu erfassen.
"fields": [
{
"name": "content",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_name",
"type": "Edm.String",
"filterable": true,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_path",
"type": "Edm.String",
"filterable": false,
"key": true,
"retrievable": true,
"searchable": false,
"sortable": false
},
{
"name": "captioned_image",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
}
]
Verwenden Sie als Nächstes "Update - Indexer " zum Zuordnen der Skillset-Ausgabe (Knoten in einer Anreicherungsstruktur) zu Indexfeldern.
Angereicherte Dokumente sind intern. Um die Knoten in einer erweiterten Dokumentstruktur zu externalisieren, richten Sie eine Ausgabefeldzuordnung ein, die angibt, welches Indexfeld Knoteninhalte empfängt. Ihre App greift über ein Indexfeld auf die angereicherten Daten zu. Das folgende Beispiel zeigt einen Textknoten (OCR-Ausgabe) in einem erweiterten Dokument, das einem Textfeld in einem Suchindex zugeordnet ist.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/captionedImage",
"targetFieldName": "captioned_image"
}
]
Führen Sie den Indexer aus, um den Abruf von Quelldokumenten, die Bildverarbeitung über Beschriftungen des Sprachmodells und die Indizierung aufzurufen.
Überprüfen der Ergebnisse
Führen Sie eine Abfrage für den Index aus, um die Ergebnisse der Bildverarbeitung zu überprüfen. Verwenden Sie den Such-Explorer als Suchclient oder jedes Tool, das HTTP-Anforderungen sendet. Die folgende Abfrage wählt Felder aus, die die Ausgabe der Bildverarbeitung enthalten.
POST /indexes/[index name]/docs/search?api-version=[api-version]
{
"search": "A cat in a picture",
"select": "metadata_storage_name, captioned_image"
}