1. Einführung in das GPT-4 Vision Modell

Das GPT-4 Vision Modell (GPT-4V) ist ein multimodales Künstliche-Intelligenz-Modell, das von OpenAI eingeführt wurde und visuelle Verständnisfähigkeiten basierend auf GPT-4 integriert. Im Gegensatz zu traditionellen Textverarbeitungsmodellen kann GPT-4V Bildinhalte empfangen und analysieren, Beschreibungen bereitstellen, Fragen beantworten und Interaktionen im Zusammenhang mit den Bildern eingehen.

Beispielanwendungen:

  • Produkterkennung und Klassifizierung: E-Commerce-Plattformen können GPT-4V nutzen, um Produktbilder zu identifizieren und Beschreibungen bereitzustellen, was dazu beiträgt, die Such- und Empfehlungssysteme zu verbessern.
  • Unterstützung bei medizinischen Entscheidungen: Obwohl GPT-4V nicht für eine direkte professionelle medizinische Bilddiagnose geeignet ist, kann es medizinisches Personal bei der anfänglichen Bildverständnis und Datenorganisation unterstützen.
  • Bildung und Forschung: In Lehre und wissenschaftlicher Forschung kann GPT-4V zur Analyse von Diagrammen, Experimentergebnissen und zur automatischen Interpretation wissenschaftlicher Bilddaten verwendet werden.
  • Verkehrsüberwachung und -analyse: Durch die Analyse von Verkehrskontrollbildern kann GPT-4V Verkehrsbewirtschaftungssystemen bei der Echtzeit-Zustandsberichterstattung und der Identifikation von Unfällen unterstützen.

2. Einfaches Beispiel

Nachfolgend finden Sie ein einfaches Beispiel für die Verwendung eines CURL-Aufrufs, um das GPT-4 Vision Modell zur Analyse von Bildern zu nutzen.

API-Anforderungsparameter:

  • modell: Spezifiziert die zu verwendende Modellversion, in diesem Fall "gpt-4-vision-preview".
  • nachrichten: Enthält Rollendefinition und Inhalt, wobei der Inhalt Text und Bildlinks enthalten kann.
  • max_tokens: Spezifiziert die maximale Längenbeschränkung für die Textgenerierung.

CURL Anfragebeispiel:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "modell": "gpt-4-vision-preview",
    "nachrichten": [
      {
        "rolle": "benutzer",
        "inhalt": [
          {
            "typ": "text",
            "text": "Was ist auf diesem Bild?"
          },
          {
            "typ": "image_url",
            "image_url": {
              "url": "Ihr Bild-Link"
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

Mit der obigen Anforderung haben wir ein Bild an das GPT-4 Vision Modell übermittelt und eine einfache Frage gestellt: "Was ist auf diesem Bild?" Das Modell analysiert den Bildinhalt und liefert eine Antwort basierend auf dem Bildinhalt.

3. Hochladen von Bildern mit Base64-Kodierung

In einigen Fällen müssen Sie möglicherweise eine lokale Bilddatei in das GPT-4 Vision Modell hochladen. In solchen Fällen können wir die Bilddaten in die API-Anforderung mithilfe der Base64-Kodierung einbetten.

Python-Codebeispiel:

import base64
import requests

api_key = "IHR_OPENAI_API_SCHLÜSSEL"

def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

image_path = "Pfad_zu_Ihrer_Bilddatei.jpg"

base64_image = encode_image(image_path)

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "modell": "gpt-4-vision-preview",
  "nachrichten": [
    {
      "rolle": "benutzer",
      "inhalt": [
        {
          "typ": "text",
          "text": "Was ist auf diesem Bild?"
        },
        {
          "typ": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

antwort = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(antwort.json())

In dem obigen Code konvertieren wir zunächst eine lokale Bilddatei in eine Base64-kodierte Zeichenfolge und senden dann diese Zeichenfolge als Teil der Anforderung an die API. Die Antwort des Modells enthält eine Beschreibung des Bildinhalts.

4. Umgang mit mehreren Bildinputs

Manchmal ist es notwendig, mehrere Bilder gleichzeitig zu analysieren. Das GPT-4 Vision Modell unterstützt den Empfang mehrerer Bildinputs gleichzeitig und ermöglicht es Benutzern, Fragen zu diesen Bildern zu stellen oder ihre Unterschiede zu vergleichen.

Beispiel für die Eingabe mehrerer Bilder:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4-vision-preview",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "Was ist anders an diesen Bildern?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "URL des ersten Bildes",
            }
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "URL des zweiten Bildes",
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

In dieser Anfrage senden wir zwei Bilder an die API. Das Modell analysiert jedes Bild separat und liefert Beschreibungen und Vergleiche basierend auf den gestellten Fragen. Dieser Ansatz eignet sich ideal für eine Gesamtanalyse einer Bildersammlung.

5. Einstellung des Detaillevels für die Bildanalyse

Bei Verwendung des GPT-4 Visualmodells für die Bildanalyse können Sie das Detaillevel je nach Bedarf einstellen. Durch Anpassung des detail-Parameters können Sie eine der folgenden Optionen wählen: gering, hoch oder automatisch. Hier ist eine ausführliche Erklärung jeder Option und wie sie einzustellen ist:

  • gering: Die Auswahl des Detaillevels "gering" deaktiviert das "Hochauflösungs"-Modell. Dieses Modell erhält eine Niedrigauflösungsversion des Bildes mit 512 Pixel x 512 Pixel und verwendet ein Budget von 65 Tokens, um das Bild zu repräsentieren. Dies eignet sich für Szenarien, die keine hohen Details erfordern, um eine schnellere Reaktionszeit zu erreichen und weniger Eingabetokens zu verbrauchen.

  • hoch: Das Detaillevel "hoch" ermöglicht es dem Modell, zunächst ein Niedrigauflösungsbild zu sehen und dann eine detaillierte zugeschnittene Version in einem 512-Pixel-Raster basierend auf der Größe des Eingabebildes zu erstellen. Jeder detaillierte Bildausschnitt wird mit einem verdoppelten Budget von 129 Tokens dargestellt (d.h. 65 Tokens pro Standardausschnitt).

  • automatisch: Das automatische Detaillevel entscheidet basierend auf der Größe des Eingabebildes, ob das Detaillevel "gering" oder "hoch" verwendet wird.

Das folgende Codebeispiel zeigt, wie das Detaillevel eingestellt wird:

import base64
import requests

api_key = "Ihr_OPENAI_API_KEY"

image_path = "pfad_zu_Ihrem_bild.jpg"

base64_image = base64.b64encode(open(image_path, "rb").read()).decode('utf-8')

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Was ist auf diesem Bild zu sehen?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}",
            "detail": "hoch"  # Auf hohes Detaillevel setzen
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())

6. Verständnis der Modellbeschränkungen und Verwaltung von Bildern

6.1. Modellbeschränkungen

Trotz der leistungsstarken Funktionalität des GPT-4 Visualmodells ist es nicht ohne Einschränkungen, und das Verständnis dieser Beschränkungen ist entscheidend für die Verwendung bei der Bildauswertung. Hier ist eine Übersicht über einige bekannte Einschränkungen:

  • Medizinische Bilder: Das Modell eignet sich nicht für die Interpretation professioneller medizinischer Bilder, wie zum Beispiel CT-Scans, und sollte nicht für medizinische Ratschläge verwendet werden.

  • Nicht-englischer Text: Das Modell könnte bei der Verarbeitung von Bildern mit nichtlateinischen Alphabettexten wie Japanisch oder Koreanisch schlecht abschneiden.

  • Räumliche Lokalisierung: Die Leistung des Modells ist bei Aufgaben, die präzise räumliche Positionszuweisungen erfordern, wie z.B. das Identifizieren von Positionen von Stücken auf einem Schachbrett, suboptimal.

  • Bild-Details: Das Modell könnte Schwierigkeiten haben, Diagramme oder Texte mit Farb- und Stilvariationen (z. B. Voll- und Strichlinien) in einem Bild zu verstehen.

  • Bildrotation: Das Modell könnte verzerrten oder auf dem Kopf stehenden Text und Bilder falsch interpretieren.

6.2 Verwaltung von Bildern in Sitzungen

Da die Chat Completions API zustandslos ist, müssen Sie die Nachrichten (einschließlich Bilder), die an das Modell übergeben werden, selbst verwalten. Wenn Sie dasselbe Bild mehrmals verwenden möchten, müssen Sie die Bilddaten bei jeder API-Anfrage erneut senden.


zusätzliche_payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Basierend auf diesem Bild, welche Vorschläge haben Sie?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

neue_antwort = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=zusätzliche_payload)

print(neue_antwort.json())

7. Kostenberechnung

Jedes Bild, das die Option detail: low verwendet, verbraucht fest 85 Tokens. Für Bilder mit der Option detail: high wird das Bild zunächst proportional auf die Größe von 2048px x 2048px skaliert, und dann wird die kürzere Seite des Bildes auf 768px festgelegt. Das Bild wird dann in mehrere 512px-Quadrate unterteilt, wobei jedes Quadrat 170 Tokens verbraucht, und es werden zusätzliche 85 Tokens zur endgültigen Gesamtzahl hinzugefügt.

Beispiel: Wenn ein Bild Abmessungen von 1024px x 1024px hat und die Option detail: high gewählt wird, wären die Tokenkosten:

  • Zunächst, da 1024 weniger als 2048 ist, erfolgt keine anfängliche Größenanpassung.
  • Dann, mit der kürzeren Seite von 1024, wird das Bild auf 768 x 768 skaliert.
  • 4 512px-Quadrate sind erforderlich, um das Bild darzustellen, sodass die endgültigen Tokenkosten 170 * 4 + 85 = 765 betragen.

Für ein detailliertes Verständnis der Kostenberechnungsmethode lesen Sie bitte die Dokumentation zum GPT-4 Vision Modell.

8. Häufig gestellte Fragen

Hier sind einige häufig gestellte Fragen und ihre Antworten, auf die Benutzer beim Verwenden des GPT-4 Vision-Modells stoßen könnten:

F: Kann ich die Bildfähigkeiten von gpt-4 feinabstimmen?

A: Derzeit unterstützen wir nicht die Feinabstimmung der Bildfähigkeiten von gpt-4.

F: Kann ich gpt-4 verwenden, um Bilder zu generieren?

A: Nein, Sie können dall-e-3 verwenden, um Bilder zu generieren, und gpt-4-vision-preview, um Bilder zu verstehen.

F: Welche Arten von Datei-Uploads werden unterstützt?

A: Wir unterstützen derzeit PNG (.png), JPEG (.jpeg und .jpg), WEBP (.webp) und nicht animierte GIF (.gif) Dateien.