Zum Hauptinhalt springen

Funktionsübersicht

Visuelle Sprachmodelle (Vision-Language Models, VLM) sind multimodale große Modelle, die sowohl Bild- als auch Texteingaben unterstützen und Bildinhalte verstehen sowie modalitätsübergreifende Informationen verarbeiten können. Auf Grundlage kombinierter Bild- und Textinformationen können die Modelle hochwertige Antworten ausgeben und werden häufig in Szenarien wie Bilderkennung, Inhaltsverständnis und intelligenten Frage-Antwort-Systemen eingesetzt.

Typische Anwendungsszenarien

  • Erkennung und Beschreibung von Bildinhalten: Automatische Erkennung von Objekten, Farben, Szenen und räumlichen Beziehungen in Bildern sowie Generierung natürlichsprachlicher Beschreibungen.
  • Ganzheitliches Verständnis von Bild und Text: Kombination von Bild- und Texteingaben für kontextbezogene Mehr-Runden-Dialoge und komplexe Aufgaben.
  • Visuell unterstützte Fragebeantwortung: Kann als Ergänzung zu OCR-Tools dienen, um in Bildern eingebettete Textinformationen zu erkennen und Fragen dazu zu beantworten.
  • Zukünftige Erweiterungen: Geeignet für interaktive Szenarien wie intelligente visuelle Assistenten, Roboterwahrnehmung und Augmented Reality.

Hinweise zum API-Aufruf

Der Aufruf visueller Sprachmodelle erfolgt über die Schnittstelle /chat/completions und unterstützt gemischte Eingaben aus Bild und Text.

Parameter für die Bildverarbeitung

Über das Feld detail wird die Genauigkeit der Bildverarbeitung festgelegt. Folgende Optionen werden unterstützt:
  • high: Hohe Auflösung, erhält mehr Details, geeignet für feingranulare Aufgaben.
  • low: Niedrige Auflösung, schnelle Verarbeitung, geeignet für Echtzeitantworten.
  • auto: Das System wählt automatisch den passenden Modus.

Beispiel für das Nachrichtenformat

Bild als URL

{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image.png",
        "detail": "high"
      }
    },
    {
      "type": "text",
      "text": "Bitte beschreibe die Szene im Bild."
    }
  ]
}

Bild als Base64

{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}",
        "detail": "low"
      }
    },
    {
      "type": "text",
      "text": "Welche Textinhalte sind im Bild zu sehen?"
    }
  ]
}

Beispielcode für Base64-Bildkodierung (Python)

import base64
from PIL import Image
import io

def image_to_base64(image_path):
    with Image.open(image_path) as img:
        buffered = io.BytesIO()
        img.save(buffered, format="JPEG")
        return base64.b64encode(buffered.getvalue()).decode('utf-8')

base64_image = image_to_base64("path/to/your/image.jpg")

Mehrbildmodus

Es wird unterstützt, mehrere Bilder zusammen mit Text als Eingabe zu senden. Für eine bessere Leistung und ein besseres Verständnis werden maximal zwei Bilder empfohlen.
{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image1.png"
      }
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}"
      }
    },
    {
      "type": "text",
      "text": "Vergleiche die gemeinsamen Merkmale dieser beiden Bilder."
    }
  ]
}

Unterstützte Modelle

Im Folgenden sind die derzeit von der Plattform unterstützten visuellen Sprachmodelle (VLM) aufgeführt:

Abrechnung

Bildeingaben visueller Sprachmodelle werden in Tokens umgewandelt und gemeinsam mit Text zur Berechnung der Aufrufkosten herangezogen:
  • Die Regeln zur Schätzung der Bild-Tokens unterscheiden sich je nach Modell geringfügig;
  • Die detaillierten Abrechnungsstandards können auf der jeweiligen Modellvorstellungsseite eingesehen werden.

Beispielcode für API-Aufrufe

Beschreibung eines einzelnen Bildes

from openai import OpenAI

client = OpenAI(api_key="YOUR_KEY", base_url="https://api.highwayapi.ai/openai")

response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/cityscape.jpg"}},
                {"type": "text", "text": "Beschreibe die wichtigsten Gebäude im Bild."}
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

Vergleichsanalyse mehrerer Bilder

response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/product1.jpg"}},
                {"type": "image_url", "image_url": {"url": "https://example.com/product2.jpg"}},
                {"type": "text", "text": "Bitte vergleiche die wichtigsten Unterschiede zwischen diesen beiden Produkten."}
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

Häufige Fragen und Hinweise

  • Bildauflösung und Schärfe beeinflussen die Erkennungsgenauigkeit des Modells. Es wird empfohlen, klare Bildquellen zu verwenden.
  • Base64-kodierte Inhalte sind relativ groß; es wird empfohlen, dass Bilder 1 MB nicht überschreiten.
  • Bei Problemen lesen Sie bitte die Entwicklerdokumentation der Plattform oder reichen Sie ein Support-Ticket ein.