Reisende laden Fotos von Hotelzimmern hoch; zimmerfoto.jpg steht für eines. Diese Lektion zeigt drei Dinge: ein Foto in einen Prompt legen und das Modell dazu befragen, mit einem Modell neue Bilder erzeugen und den Stand des Dienstes Azure Vision. Der Code ist nicht gegen Azure ausgeführt; so zeigt es Microsoft Learn. Ergebnisse, Bilder und Antworten sind nicht abgedruckt.

Bilder im Prompt verstehen

Learn nennt bildfähige Chat-Modelle (vision-enabled chat models): große multimodale Modelle, die Bilder auswerten und Fragen dazu beantworten. Als aktuelle Beispiele zählt die Seite die GPT-5-Reihe, die GPT-4.1-Reihe, die GPT-4o-Reihe und die o-Reihe auf. Das Modell hinter reise-chat kann also bildfähig sein, wenn es zu einer dieser Reihen gehört (Verfügbarkeit in Ihrer Region: offen). Sie rufen dieselbe Chat-Schnittstelle auf; der Inhalt der Nachricht ist eine Liste aus Textteilen und Bildteilen.

Grenzen, die Learn nennt:

  • Ein Bild darf höchstens 20 MB groß sein, ein Aufruf höchstens 10 Bilder enthalten.
  • Formate: JPEG, PNG, GIF (nur das erste Bild) und WEBP.
  • Das Bild kommt als öffentlich erreichbare Adresse oder als Base64-Text. Adressen hinter privaten Endpunkten, in einem VNet oder hinter einer Firewall gehen nicht, auch wenn die Datei im eigenen Speicher liegt.
  • Die Einstellung „niedrige Auflösung“ spart Rechenaufwand, kann aber die Erkennung von Gegenständen und Text verschlechtern.
  • Ein Höchstwert für die Antwortlänge (max_tokens) muss gesetzt sein, sonst wird die Ausgabe abgeschnitten.

Der Punkt mit der Adresse betrifft Nordlicht direkt: Fotos von Gästen sollten nicht öffentlich im Netz liegen, nur damit ein Modell sie abrufen kann. Learns C#-Beispiel arbeitet mit einer Adresse; für Dateien nennt Learn die Base64-Möglichkeit in der REST-Beschreibung derselben Seite. Wie man sie in C# schreibt, zeigt Learn dort nicht: offen.

Learns C#-Beispiel

Auszug (Lektion 2.3 nutzte das Foundry SDK; dieses Beispiel nutzt auf Learn das Paket Azure.AI.OpenAI, einen anderen Einstieg). Die Namen YOUR_IMAGE_URL und der Deployment-Name sind Platzhalter von Learn; statt gpt-4 steht hier das Deployment reise-chat:

C#
string deploymentName = "reise-chat";

var chatClient = openAIClient.GetChatClient(deploymentName);

var imageUrl = "YOUR_IMAGE_URL";

var textPart = ChatMessageContentPart.CreateTextPart("Describe this picture:");
var imgPart = ChatMessageContentPart.CreateImagePart(imageUrl);

var chatMessages = new List<ChatMessage>
{
    new SystemChatMessage("You are a helpful assistant."),
    new UserChatMessage(textPart, imgPart)
};

ChatCompletion chatCompletion = await chatClient.CompleteChatAsync(chatMessages);

Console.WriteLine($"{chatCompletion.Content[0].Text}");

Die System-Nachricht gibt die Rolle vor (Lektion 2.2), die Benutzer-Nachricht trägt Text und Bild. Der Aufruf wartet auf die Antwort und gibt ihren Text aus. Learn beschreibt die Ausgabe nur als Beschreibung des Bildes.

Für Nordlicht wäre eine sinnvolle Frage: „Welche Möbel und welchen Zustand des Zimmers sieht man?“ Die Antwort ersetzt keine Prüfung: Ob ein Mangel vorliegt, beurteilt ein Mensch. Fragen nach Personen auf dem Foto stellt der Helfer nicht.

Bilder erzeugen

Für neue Bilder nennt Learn die Modelle der gpt-image-Reihe. Das frühere Modell dall-e-3 wurde laut Learn eingestellt: Bestehende Deployments funktionieren nicht mehr, neue sind nicht möglich. Learn nennt zum Beispiel gpt-image-2 als allgemein verfügbar, ältere Modelle der Reihe nur mit Zugang auf Antrag („limited access preview“). Was am Schreibtag gilt, ändert sich schnell: offen für den Zeitpunkt, an dem Sie lesen.

Die Bilder kommen als Base64-Daten zurück. Auszug aus Learns C#-Schnellstart; der Deployment-Name ist hier reise-bild (neu für diesen Fall), bei Learn gpt-image-1:

C#
ImageClient chatClient = openAIClient.GetImageClient("reise-bild");

var imageGeneration = await chatClient.GenerateImageAsync(
        "a happy monkey sitting in a tree, in watercolor",
        new ImageGenerationOptions()
        {
            Size = GeneratedImageSize.W1024xH1024
        }
    );

Console.WriteLine(imageGeneration.Value.ImageUri);

Drei Auffälligkeiten dieser Learn-Seite: Das Listing hat kein using Azure.Identity;, das DefaultAzureCredential braucht. Der Text darunter spricht von Base64-Daten als Ausgabe, der Code druckt aber eine Adresse. Und die Seite pinnt eine alte Vorabversion des Pakets. Was das aktuelle Paket liefert, ist offen.

Schutzmaßnahmen laut Learn: Die Bilder-Schnittstellen haben einen Filter für Inhalte. Erkennt der Dienst den Prompt als schädlich, liefert er kein Bild. Fotorealistische Bilder von Minderjährigen sind standardmäßig gesperrt. Dazu gibt es Überwachung auf Missbrauch. Ob Nordlicht erzeugte Bilder kennzeichnen muss, ist eine Frage für die Rechtsberatung: offen. Im Pilot erzeugt der Helfer keine Bilder für Kunden.

Azure Vision: Image Analysis

Der Dienst Azure Vision in Foundry Tools bietet Image Analysis mit Untertiteln, Tags, Objekterkennung, Texterkennung (OCR) und weiterem. Learn kennzeichnet ihn als veraltet (deprecated) und kündigt seine Einstellung an: Danach schlagen Aufrufe fehl. Das Datum steht auf der Seite; die Seite nennt es an zwei Stellen unterschiedlich, welches gilt, ist offen. Als Ersatz nennt Learn: Document Intelligence für Texterkennung, den Face-Dienst für Gesichter, GPT-Modelle in Foundry und Content Understanding (Lektion 2.9) für übrige Bildaufgaben. Für Nordlicht heißt das: Eine neue Bildanwendung baut auf dem bildfähigen Modell von oben oder auf Content Understanding, nicht auf Image Analysis. Die Prüfung kann die Fähigkeiten trotzdem nennen.

Verantwortung bei Fotos

Hotelfotos können Personen zeigen. Die gelesenen Learn-Seiten zu bildfähigen Modellen legen keine Regeln zur Erkennung von Personen fest; deshalb stellt diese Lektion dazu keine Behauptung auf: offen. Für Nordlicht gilt als Grenze des Piloten: kein Erkennen oder Benennen von Personen, nur der Zustand des Zimmers, und ein Mensch prüft.

Übung 1

Wählen Sie für jede Aufgabe: bildfähiges Modell im Prompt, Bilderzeugung, Image Analysis oder Content Understanding, und nennen Sie, was Learn dazu sagt.

  1. Ein Foto soll in zwei Sätzen beschrieben werden.
  2. Für den Newsletter von Nordlicht soll ein Aquarell-Bild eines Strandes entstehen.
  3. Ein neues Projekt soll Texte auf fotografierten Schildern lesen, und der Dienst soll noch lange laufen.

Lösung 1

  1. Bildfähiges Modell im Prompt. Textteil mit der Aufgabe plus Bildteil, höchstens 20 MB; das Bild muss öffentlich erreichbar sein oder als Base64 gesendet werden.
  2. Bilderzeugung mit einem Modell der gpt-image-Reihe. Ein Mensch gibt das Bild frei; der Inhaltsfilter kann einen Prompt ablehnen.
  3. Nicht Image Analysis: Es ist veraltet und wird eingestellt. Für Texterkennung nennt Learn Document Intelligence, für allgemeine Bildaufgaben GPT-Modelle in Foundry oder Content Understanding.

Weiterlesen