Die Rechnung rechnung-seeblick.pdf eines Hotels soll nicht abgetippt werden: Betrag, Datum, Posten sollen als Felder in einer Tabelle stehen. Das ist Informationsextraktion, und Learn nennt dafür Azure Content Understanding in Foundry Tools (kurz: Content Understanding). Der Dienst nutzt generative KI, um Dokumente, Bilder, Audio und Video in ein von Ihnen festgelegtes Ausgabeformat zu bringen. Der Code ist nicht gegen Azure ausgeführt; so zeigt es Microsoft Learn. Ausgaben sind nicht abgedruckt.

Die Bausteine

Baustein Was er ist (nach Learn)
Analyzer legt fest, wie Inhalt verarbeitet wird: Extraktion, Felder, Modelle. Es gibt vorgefertigte und eigene
Inhaltsextraktion (content extraction) macht aus der Datei normalisierten Text und Metadaten: Texterkennung (OCR), Layout, Tabellen, bei Audio und Video Abschriften
Segmentierung teilt Dokumente oder Videos in sinnvolle Abschnitte, etwa nach Dokumenttyp oder Szene
Felderextraktion erzeugt Schlüssel-Wert-Paare nach Ihrem Schema
Konfidenzwerte (confidence scores) Schätzung von 0 bis 1 je Feldwert, wie verlässlich er ist
Verankerung (grounding) zeigt, an welcher Stelle der Quelle ein Wert steht

Felder entstehen auf drei Arten: Extract übernimmt Werte, wie sie im Inhalt stehen (laut Learn nur für Dokumente), Classify ordnet einer festen Kategorie zu (etwa Stimmung eines Anrufs), Generate formuliert frei, etwa eine Zusammenfassung. Konfidenzwerte gibt es laut Learns Neuerungsseite nur für Dokumente. Die Klassifizierung ist in die Analyzer-Schnittstelle eingebaut: So lässt sich ein Dokument zuerst einordnen und dann an den passenden Analyzer weiterleiten.

Vorgefertigte Analyzer

Learn nennt Gruppen. Die für Nordlicht wichtigen:

Analyzer Wofür
prebuilt-invoice Rechnungen, Strom- und andere Rechnungen, Aufträge
prebuilt-receipt.hotel Hotelbelege und Hotelrechnungen (Folios)
prebuilt-documentSearch Dokumente für Suche und RAG: Absätze, Tabellen, Abbildungen, Zusammenfassung
prebuilt-imageSearch Bilder: ein Absatz Beschreibung
prebuilt-audioSearch Audio: Abschrift mit Sprechern und Zusammenfassung
prebuilt-videoSearch Video: Abschrift und Beschreibung je Abschnitt
prebuilt-callCenter Anrufaufnahmen: Themen, Stimmung, Kernpunkte
prebuilt-layout, prebuilt-read nur Layout und Text, ohne Sprachmodell

Learn rät, ein vorgefertigtes Analyzer-Schema für den Betrieb zu kopieren, weil sich vorgefertigte Definitionen zwischen API-Versionen ändern können.

Versionen und Stand

Learn nennt am Schreibtag zwei API-Versionen: eine allgemein verfügbare (GA), die für den Betrieb empfohlen ist, und eine Vorschauversion, die neue Fähigkeiten zeigt: etwa agentische Dokumentanalyse, Signaturerkennung und feinere Klassifizierung. Die Versionsnamen enthalten ein Datum und stehen deshalb hier nicht; das Paket Azure.AI.ContentUnderstanding hat in Learns Schnellstart noch den Zusatz --prerelease. Die Seite zu Bildlösungen trägt in Learns Verweisen die Bezeichnung „preview“; ob das für Ihren Fall noch gilt: offen. Auch ob die Region von Nordlicht unterstützt wird, steht auf einer eigenen Learn-Seite zu Sprachen und Regionen: offen.

Modell-Deployments

Content Understanding nutzt Ihre Deployments in Foundry für alles, was ein generatives Modell braucht (Lektion 2.1). Nach Learn braucht der Dienst ein Chat-Modell und ein Embedding-Modell; Sie zahlen die verbrauchten Tokens am Deployment und zusätzlich die Zähler von Content Understanding (ohne Betrag hier). Vorgefertigte Analyzer sprechen die Modelle über Aliasnamen an; Sie ordnen ihnen Ihre Deployments zu, entweder als Standard für die Ressource (im Content Understanding Studio oder per Aufruf) oder je Anfrage. prebuilt-layout und prebuilt-read brauchen keines. Learns C#-Schnellstart verlangt als Voraussetzung gesetzte Standard-Deployments. Welche Modelle ein Analyzer unterstützt, fragt man bei ihm ab; ob das Modell hinter reise-chat dabei ist, ist offen. Für das Embedding-Modell wäre ein weiteres Deployment nötig; im Fall heißt es neu reise-embedding.

Der Code

Learns C#-Schnellstart nutzt Azure.AI.ContentUnderstanding. Der Client (Schlüssel und Adresse aus Umgebungsvariablen; für den Betrieb empfiehlt Learn Entra ID):

C#
var client = new ContentUnderstandingClient(
    new Uri(endpoint),
    new AzureKeyCredential(key)
);

Rechnung, Auszug aus Learns Beispiel (die Adresse ist Learns Beispieldatei; bei Nordlicht steht dort die Adresse von rechnung-seeblick.pdf, wie Dateien ohne öffentliche Adresse hineinkommen, zeigt der Schnellstart nicht: offen):

C#
Operation<AnalysisResult> operation = await client.AnalyzeAsync(
    WaitUntil.Completed,
    "prebuilt-invoice",
    inputs: new[] { new AnalysisInput { Uri = invoiceUrl } });

AnalysisResult result = operation.Value;
DocumentContent documentContent = (DocumentContent)result.Contents!.First();
var customerNameField = documentContent.Fields["CustomerName"];
Console.WriteLine($"  Confidence: {customerNameField.Confidence?.ToString("F2") ?? "N/A"}");

AnalyzeAsync bekommt die Analyzer-Kennung und die Eingabe. Für Bilder nennt Learn dieselbe Form mit prebuilt-imageSearch, für Audio mit prebuilt-audioSearch. Das Ergebnis enthält die Felder; jedes hat Wert und Konfidenz. In Learns eigener Beispielausgabe zu Learns Beispielrechnung steht bei einem Feld ein niedriger Wert, bei einem anderen ein hoher: Auf einem Dokument sind nicht alle Felder gleich sicher. Die Learn-Seite hat auch einen Python-Reiter (Hinweis in Lektion 2.3).

Ausprobieren (freiwillig): Foundry-Ressource, Deployments und jeder Analyse-Aufruf kosten je Nutzung. Nehmen Sie nur erfundene Beispieldateien und löschen Sie danach die Ressourcengruppe.

Der Fall

Datei Analyzer Menschlicher Schritt
rechnung-seeblick.pdf prebuilt-invoice, alternativ prebuilt-receipt.hotel Mitarbeitende prüfen Felder mit niedriger Konfidenz und vergleichen mit der Buchung, bevor etwas gebucht wird
anruf-hotline.wav prebuilt-audioSearch oder prebuilt-callCenter ein Mensch liest Abschrift und Zusammenfassung
zimmerfoto.jpg prebuilt-imageSearch ein Mensch beurteilt den Befund

Learn nennt WAV, PDF und JPEG als unterstützte Dateitypen. Welcher Analyzer für die Hotelrechnung besser passt, entscheidet ein Test mit echten Rechnungen; offen. Dasselbe gilt für die Schwelle der Konfidenz. Der Fall bleibt bei der Regel: Der Dienst liest Felder, ein Mensch prüft, kein Modell entscheidet über Erstattungen. Learn hält Content Understanding außerdem an die Leitplanken (guardrails) des Deployments: Die Analyse kann mit Warnungen erfolgreich sein, auch wenn einzelne Feldwerte fehlen; Warnungen lesen, bevor man Ergebnisse automatisch weiterverwendet.

Übung 1

Ordnen Sie zu: Analyzer, braucht es ein Deployment (ja oder nein), wer prüft?

  1. Von rechnung-seeblick.pdf sollen Betrag, Datum und Posten gelesen werden.
  2. Nur der Text einer gescannten Buchungsbestätigung wird gebraucht, keine Felder.
  3. Zu anruf-hotline.wav soll es eine Zusammenfassung geben.

Lösung 1

  1. prebuilt-invoice (oder prebuilt-receipt.hotel); ja, ein Deployment mit Chat- und Embedding-Modell; Mitarbeitende prüfen Felder mit niedriger Konfidenz.
  2. prebuilt-read (oder prebuilt-layout); nein, beide brauchen laut Learn kein Sprachmodell; wer die Bestätigung nutzt, liest den Text gegen das Original.
  3. prebuilt-audioSearch; ja, es erzeugt eine Zusammenfassung mit einem Modell; ein Mensch liest sie.

Weiterlesen