AI-translated from English; not yet reviewed by a fluent editor.

# Ein Jev-ähnlicher Bildmodell-Wrapper macht aus Bildfragen typisierte Entscheidungen

> Ein unabhängiges Python-Beispiel nutzt Token-Wahrscheinlichkeiten eines Bildmodells, um aus Bildern typisierte Entscheidungen abzuleiten. Die Angaben zur Bildrate mit Webcam stammen vom Autor; die Genauigkeit wurde nicht getestet.

By BIG CHANGE Editorial

Published: 2026-09-26T10:09:47.074Z
Updated: 2026-09-26T10:09:47.074Z
Canonical: https://bigchange.ai/blog/jev-like-llm-vision-wrapper-logprobs

![Conceptual charcoal illustration of a webcam clipped to a monitor and facing a leafy plant on a shelf.](https://bigchange.ai/api/media/file/jev-vision-webcam-plant-hero-v1.png)
AI-generated conceptual illustration by BIG CHANGE.

Ein [vom Entwickler Allan Riordan Boll am 25. September veröffentlichtes Python-Beispiel](https://allanrbo.blogspot.com/2026/09/a-jev-like-wrapper-for-llms-including.html) erweitert eine Jev-ähnliche Entscheidungsanfrage um Bildanhänge. Es sendet jedes Webcam-Bild zusammen mit kurzen Fragen an ein Bildmodell und wandelt anschließend die Wahrscheinlichkeiten für das jeweils nächste Token in Ja/Nein-Werte, eine Auswahl oder eine Bewertung um. Das Beispiel ist ein unabhängiger Wrapper, keine Bildfunktion von Jev und kein Test des Jev-Modells.

Für Entwickler ist vor allem die Grenze dieses Verfahrens aufschlussreich. Ein Bildmodell kann eine eingegrenzte Frage beantworten, ohne eine Bildbeschreibung zu verfassen. Die Wahrscheinlichkeiten der zurückgegebenen Antwortoptionen hängen jedoch vom Prompt, den verfügbaren Token-Alternativen und dem Modell ab. Der Beitrag bietet ein nachvollziehbares Implementierungsmuster, keine Genauigkeitsstudie.

## Die große Veränderung

- **Was sich geändert hat:** Ein Entwickler hat das mit Jev verbundene Format für kleine Entscheidungen mithilfe allgemeiner Bildmodelle auf Bilder übertragen. Das Bild wird jeder Anfrage beigefügt; eine Antwort mit einem Buchstaben macht aus einer visuellen Frage einen Wert, den Software weiterverarbeiten kann.
- **Warum das wichtig ist:** Entwickler können das visuelle Kriterium im Text ändern und ein typisiertes Ergebnis erhalten, ohne für jede Frage einen eigenen Bildklassifikator zu erstellen. Das Beispiel behandelt sichtbare Personen und Pflanzen, die Umgebung drinnen oder draußen sowie Helligkeit. Es belegt nicht, wie zuverlässig sich diese Bewertungen auf andere Kameras oder Szenen übertragen lassen.
- **Worauf es ankommt:** Entscheidend ist, ob das gewählte Modell und der Endpunkt die benötigten Wahrscheinlichkeiten alternativer Tokens konsistent genug für die jeweilige Aufgabe zurückgeben. Bildrate und Entscheidungsqualität müssen gemeinsam an repräsentativen Bildern gemessen werden, bevor ein Webcam-Ergebnis eine Handlung auslöst.

## Wie die Bildentscheidung funktioniert

[Jev-Schnellstart von TypeSafe AI](https://docs.typesafe.ai/introduction/quickstart) dokumentiert einen `state` und eine Reihe typisierter `questions`: `noul` für einen Ja/Nein-Wert, `choice` für benannte Alternativen und `score` für geordnete Stufen. Bolls Skript verwendet diese Bezeichnungen und ergänzt das Anfrageobjekt um ein `attachments` als Array mit Bildpfaden oder Base64-Daten-URLs. Dieses Feld ist seine Erweiterung der Anfrage; der zitierte Jev-Schnellstart beschreibt einen Textstatus und dokumentiert es nicht als Jev-API-Eingabe.

Für jede Frage erstellt das Skript einen Prompt mit Optionen, die durch Buchstaben gekennzeichnet sind, etwa `[A] true` und `[B] false`. Es fordert das Modell auf, mit dem besten Buchstaben zu antworten, und liest die Log-Wahrscheinlichkeiten des ersten Ausgabetokens aus: `top_logprobs`. Die zurückgegebenen Log-Wahrscheinlichkeiten werden potenziert, die Gewichte über die aufgeführten Buchstaben hinweg normiert und anschließend dem Fragetyp zugeordnet. Eine `choice` gibt die Option mit dem höchsten Gewicht und deren Verteilung zurück. Ein `noul` liefert das Gewicht für `true`. Ein `score` bildet den gewichteten Mittelwert der geordneten Stufen. Das Skript verwirft eine Antwort, wenn ausgelassene Optionstokens noch ein erhebliches Gewicht haben könnten.

Das Bild wird mit jeder Frage mitgesendet. Das Beispiel stellt mehrere einzelne Anfragen, statt alle Antworten in einem Modellaufruf einzuholen. Für OpenAI verwendet es die Responses API mit `input_image`, `top_logprobs` und `message.output_text.logprobs`; der lokale Pfad über llama.cpp nutzt Chat Completions mit einem `image_url`-Inhaltselement und Log-Wahrscheinlichkeiten. [OpenAIs Bildleitfaden](https://developers.openai.com/api/docs/guides/images-vision) dokumentiert Base64-Daten-URLs für Bilder; die [Responses-Referenz](https://developers.openai.com/api/reference/resources/responses/methods/create) beschreibt die Ausgabe von Log-Wahrscheinlichkeiten und höchstens 20 zurückgegebene Alternativen je Tokenposition. [Die Serverdokumentation von llama.cpp](https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md) beschreibt Bild-URLs in seiner Chat-Schnittstelle. Diese Quellen stützen das Anfrageformat; wir haben das Beispiel nicht gegen einen der beiden Endpunkte ausgeführt.

## Was das Webcam-Beispiel misst

Das Skript erfasst mit OpenCV ein Bild, kodiert es als JPEG und stellt vier Fragen: ob eine Person oder Pflanze zu sehen ist, ob die Szene drinnen oder draußen ist und wie hell sie ist. Ein Hintergrundprozess wertet jeweils ein Bild aus, während die Vorschau weiterläuft. Die Kameraeinrichtung verwendet Linux V4L2; ohne Änderungen ist die veröffentlichte Datei daher keine portable Webcam-Lösung. Der Artikeltext nennt drei Fragen pro Bild, der veröffentlichte Code enthält jedoch vier. Für diese Anzahl ist hier der Code maßgeblich.

Boll berichtet von etwa **einem ausgewerteten Bild pro Sekunde** mit einem lokal bereitgestellten Gemma-4-12B-QAT-Modell auf einer RTX 3090 und etwa **0,2 Bildern pro Sekunde** mit dem gehosteten Modell GPT-6 Luna. Er vermutet, dass wiederholte Verbindungen zum gehosteten Ergebnis beitragen könnten. Der Beitrag enthält keinen kontrollierten Vergleich von Hardware, Netzwerk, Bildgröße, Zwischenspeicherung, Genauigkeit oder Anfragedauer. Die Zahlen beschreiben die Konfiguration und den Code dieses Autors, keinen allgemeinen Geschwindigkeitsvergleich der Modelle. [OpenAI führt GPT-6 Luna als bildfähig auf](https://developers.openai.com/api/docs/models/gpt-6-luna), und laut [den Modellhinweisen](https://developers.openai.com/api/docs/guides/latest-model) unterstützt Luna die Einstellung `none` als Reasoning-Einstellung, die im Beispiel verwendet wird.

Für Entwickler, die das Skript anpassen, sind die ersten Prüfungen konkret: Bestätigen Sie, dass das Modell Bilder akzeptiert und die benötigten Alternativen für das erste Token bereitstellt; prüfen Sie, ob alle Optionsbuchstaben auftauchen; und bewerten Sie anschließend die zurückgegebenen Entscheidungen anhand gekennzeichneter Bilder von der vorgesehenen Kamera oder aus dem Zieldatensatz. Die normierten Gewichte beziehen sich relativ auf die aufgeführten Buchstaben-Tokens. Für sich genommen sind sie keine gemessenen Wahrscheinlichkeiten dafür, dass eine visuelle Bewertung richtig ist. OpenAIs [älteres logprobs-Cookbook](https://developers.openai.com/cookbook/examples/using_logprobs) erläutert das Prinzip der Token-Wahrscheinlichkeiten, ist aber als archiviert gekennzeichnet und kann veraltete API-Beispiele enthalten.

Dieser Wrapper zeigt auch, was bei einem typisierten Ergebnis der Anwendungslogik überlassen bleibt. Das Modell bewertet das bereitgestellte Bild anhand des schriftlich festgelegten Kriteriums. Die Anwendung wählt die Bilder aus, behandelt fehlende Bewertungen und entscheidet, ob ein Ergebnis sicher genug ist, um darauf zu reagieren. Bolls Beispiel gibt eine Tabelle aus; es dokumentiert weder eine automatisierte Handlung noch einen Einsatz mit gemessenen Ergebnissen.

## Quellen und weiterführende Informationen

- [Allan Riordan Boll: „Ein Jev-ähnlicher Wrapper für LLMs, einschließlich Bildmodellen“, 25. September 2026](https://allanrbo.blogspot.com/2026/09/a-jev-like-wrapper-for-llms-including.html): Das ursprüngliche Python-Beispiel, der Webcam-Ablauf und die vom Autor berichteten Bildraten. Im Fließtext ist von drei Fragen pro Bild die Rede, im Code sind vier definiert. Die Zeitangaben sind weder ein unabhängiger noch ein kontrollierter Benchmark.
- [TypeSafe AI: Jev-Schnellstart](https://docs.typesafe.ai/introduction/quickstart): Dokumentiert Textstatus und die drei Fragetypen `noul`, `choice` und `score`. Der Schnellstart dokumentiert das vom Autor ergänzte Feld `attachments` nicht als Jev-API-Funktion.
- [OpenAI: Bilder und Bildverarbeitung](https://developers.openai.com/api/docs/guides/images-vision): Dokumentiert `input_image`, Bild-URLs und Base64-Daten-URLs für Bildeingaben. [Die Responses-API-Referenz](https://developers.openai.com/api/reference/resources/responses/methods/create) beschreibt `message.output_text.logprobs` sowie die Begrenzung der zurückgegebenen Alternativen.
- [OpenAI: GPT-6 Luna und Modellhinweise](https://developers.openai.com/api/docs/models/gpt-6-luna): Bestätigt Bildeingaben und die Einstellung `none`; die [Modellhinweise](https://developers.openai.com/api/docs/guides/latest-model) erläutern die Parameterkompatibilität. Diese Dokumente bestätigen nicht die Bildrate des Blogautors.
- [llama.cpp: Server-README](https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md): Beschreibt den OpenAI-kompatiblen Chat-Endpunkt und die Eingabe image\_url. Die Unterstützung durch das genaue Backend und die verwendete Modellversion wurde hier nicht unabhängig getestet.
- [OpenAI Cookbook: Log-Wahrscheinlichkeiten verwenden](https://developers.openai.com/cookbook/examples/using_logprobs): Hintergrund zu Token-Wahrscheinlichkeiten. OpenAI kennzeichnet dieses Cookbook-Beispiel als archiviert und weist darauf hin, dass einige Modelle oder APIs veraltet sein könnten.

## Sources

- [Allan Riordan Boll: Ein Jev-ähnlicher Wrapper für LLMs, einschließlich Bildmodelle](https://allanrbo.blogspot.com/2026/09/a-jev-like-wrapper-for-llms-including.html) — Unabhängiger Python-Code und vom Autor berichtete Webcam-Beobachtungen. Der Code stellt vier Fragen, obwohl der umgebende Text drei nennt; ein kontrollierter Benchmark oder eine unabhängige Genauigkeitsstudie fehlt.
- [TypeSafe AI: Jev-Schnellstart](https://docs.typesafe.ai/introduction/quickstart) — Dokumentiert Textstatus, Fragetypen und einen Beispiel-Anfragekörper. Der Autor ergänzt Anhänge in seinem eigenen Jev-ähnlichen Anfrageobjekt; der Schnellstart dokumentiert dieses Feld nicht.
- [OpenAI: Bilder und Bildverarbeitung](https://developers.openai.com/api/docs/guides/images-vision) — Dokumentiert Bildeingaben und Base64-Daten-URLs. Dies stützt das Anfrageformat, nicht die vom Autor beobachtete Bildrate.
- [OpenAI: Modellantwort erstellen](https://developers.openai.com/api/reference/resources/responses/methods/create) — Dokumentiert Bildeingaben, message.output_text.logprobs und bis zu 20 führende Log-Wahrscheinlichkeiten pro Tokenposition, manchmal auch weniger.
- [OpenAI: GPT-6 Luna und Modellhinweise](https://developers.openai.com/api/docs/models/gpt-6-luna) — Listet Bildeingaben und den Reasoning-Aufwand none auf; OpenAIs Modellhinweise erklären Parametergrenzen für Log-Wahrscheinlichkeiten je nach Aufwand.
- [llama.cpp: Server-README](https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md) — Dokumentiert den OpenAI-kompatiblen Chat-Endpunkt und image_url-Eingaben. Das genaue Backend und die Modellversion wurden hier nicht unabhängig getestet.
- [OpenAI Cookbook: Log-Wahrscheinlichkeiten verwenden](https://developers.openai.com/cookbook/examples/using_logprobs) — Hintergrund zu Token-Wahrscheinlichkeiten. OpenAI kennzeichnet dieses Cookbook-Beispiel als archiviert und möglicherweise für aktuelle Modelle oder APIs veraltet.
