世界從未停止變化。RSS
BIG CHANGE.

Markdown 版本

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

# Jev 風格的視覺包裝器將影像問題轉為具型別的選項

> 一個獨立的 Python 範例使用視覺模型的 token 機率,從影像產生具型別的判斷結果。網路攝影機的速度由作者自行回報,準確度尚未測試。

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.

一個[開發者 Allan Riordan Boll 於 9 月 25 日發布的 Python 範例](https://allanrbo.blogspot.com/2026/09/a-jev-like-wrapper-for-llms-including.html)將影像附件加入 Jev 風格的判斷請求。它把每個網路攝影機畫面連同簡短問題傳給視覺模型,再將模型下一個 token 的機率轉成是/否值、選項或分數。這是獨立的包裝器,不是 Jev 的視覺功能,也不是對 Jev 模型的測試。

對開發者而言,這項技術的適用範圍很重要。視覺模型可以不撰寫描述而回答受限問題,但回傳的選項機率取決於提示、可用的 token 替代項與模型。這篇文章提供可檢視的運作模式,並非準確度研究。

## 重大變化

- **改變了什麼:**一名開發者將 Jev 相關的小型決策格式套用到通用視覺模型處理影像。每個請求都附上影像,而單一字母的回答會把視覺問題轉成軟體可處理的值。
- **為何重要:**開發者可以用文字更改視覺判準並取得具型別的結果,無須為每個問題另外建立影像分類器。此範例涵蓋是否看見人或植物、場景位於室內或室外,以及亮度;它並未證明這些判斷能否可靠地套用到其他攝影機或場景。
- **值得觀察之處:**實際上要判斷的是,選定的模型與端點能否穩定回傳任務所需的替代 token 分數。在網路攝影機的結果觸發動作前,應使用具代表性的影像,一併測量畫面處理量與判斷品質。

## 影像判斷如何運作

[TypeSafe AI 的 Jev 快速入門文件](https://docs.typesafe.ai/introduction/quickstart)記載一種具型別的`state`以及一組具型別的`questions`問題:`noul`適用於是/否值,`choice`適用於具名選項,`score`適用於有序級別。Boll 的程式使用這些名稱,並新增一個包含影像路徑或 base64 資料 URL 的陣列,也就是`attachments`。這個欄位是他對請求物件所做的擴充;引用的 Jev 快速入門文件描述文字狀態,但未將此欄位列為 Jev API 輸入。

每個問題都會建立含有字母選項的提示,例如`[A] true`與`[B] false`。程式要求模型以最適合的字母作答,並讀取第一個輸出 token 的`top_logprobs`。接著將回傳的對數機率取指數,在列出的字母間正規化權重,再對應到問題類型。`choice`會回傳權重最高的選項及其分布。`noul`會回傳`true`的權重。`score`會回傳有序級別的加權平均。如果省略的選項 token 仍可能帶有重要權重,程式就會拒絕該回應。

每個問題都會附上影像。此範例會分別送出請求,而非透過一次模型呼叫取得所有答案。OpenAI 路徑使用 Responses API 搭配`input_image`、`top_logprobs`及`message.output_text.logprobs`;本機 llama.cpp 路徑則使用 Chat Completions,並搭配`image_url`內容項目與對數機率。[OpenAI 的影像指南](https://developers.openai.com/api/docs/guides/images-vision)說明 base64 影像資料 URL;其[Responses 參考文件](https://developers.openai.com/api/reference/resources/responses/methods/create)說明對數機率輸出,以及每個 token 位置最多回傳 20 個替代項。[llama.cpp 伺服器文件](https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md)說明聊天介面中的影像 URL。這些來源支持此請求模式;我們並未在任一端點上執行該範例。

## 網路攝影機範例測量什麼

程式使用 OpenCV 擷取畫面、編碼為 JPEG,並提出四個問題:是否看見人或植物、場景位於室內或室外,以及亮度如何。預覽持續顯示時,背景工作程序會一次評估一個畫面。攝影機設定使用 Linux V4L2,因此發布的檔案若不修改,並非可攜式的通用網路攝影機設定。文章文字稱每個畫面有三個問題,但發布的程式碼包含四個;此處以程式碼為計數依據。

Boll 回報約**每秒評估一個畫面**使用 RTX 3090 上本機服務的 Gemma 4 12B QAT 模型;他也回報使用託管 GPT-6 Luna 時約有**每秒 0.2 個畫面**。他推測重複連線可能影響託管結果。文章未對硬體、網路、影像大小、快取、準確度或請求時間進行受控比較。這些數字描述的是作者的設定與程式碼結果,不代表模型的一般速度排名。[OpenAI 表示 GPT-6 Luna 可接受影像輸入](https://developers.openai.com/api/docs/models/gpt-6-luna),其[模型指南](https://developers.openai.com/api/docs/guides/latest-model)指出 Luna 支援此範例使用的`none`推理設定。

開發者修改此程式時,應先進行具體檢查:確認模型接受影像輸入並提供所需的第一個 token 替代項;檢查所有選項字母是否都出現;再以目標攝影機或資料集的標記影像評估回傳的判斷。正規化權重是相對於列出的字母 token,而非視覺判斷正確與否的實測機率。OpenAI 的[舊版 logprobs cookbook](https://developers.openai.com/cookbook/examples/using_logprobs)說明 token 機率的概念,但已標示為封存,API 範例也可能過時。

此包裝器也釐清了具型別結果留給應用程式程式碼處理的部分。模型依照文字判準判斷提供的影像;應用程式選擇畫面、處理缺少的分數,並決定結果是否安全到足以採取行動。Boll 的範例會輸出表格,但未報告自動化動作或經測量的部署。

## 來源與延伸閱讀

- [Allan Riordan Boll,〈A Jev-like wrapper for LLMs, including vision models〉,2026 年 9 月 25 日](https://allanrbo.blogspot.com/2026/09/a-jev-like-wrapper-for-llms-including.html):原始 Python 範例、網路攝影機工作流程,以及作者回報的畫面速率。文章文字稱每個畫面有三個問題;程式碼定義四個。這些時間數據不是獨立或受控的基準測試。
- [TypeSafe AI,Jev 快速入門](https://docs.typesafe.ai/introduction/quickstart):記載文字狀態與`noul`、`choice`及`score`等問題類型。文件未將作者自訂的`attachments`欄位列為 Jev API 功能。
- [OpenAI,Images and vision](https://developers.openai.com/api/docs/guides/images-vision):說明`input_image`、影像 URL 與視覺輸入的 base64 資料 URL。[Responses API 參考文件](https://developers.openai.com/api/reference/resources/responses/methods/create)說明`message.output_text.logprobs`及回傳替代項的上限。
- [OpenAI,GPT-6 Luna 模型與模型指南](https://developers.openai.com/api/docs/models/gpt-6-luna):確認影像輸入及模型的`none`推理設定;[模型指南](https://developers.openai.com/api/docs/guides/latest-model)詳述參數相容性。這些文件並未驗證部落格作者回報的處理量。
- [llama.cpp 伺服器文件](https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md):說明 OpenAI 相容的聊天端點與影像 URL 輸入。仍需針對實際使用的版本與模型確認後端支援情形及回傳的 token 清單。
- [OpenAI cookbook,Using logprobs](https://developers.openai.com/cookbook/examples/using_logprobs):token 機率的背景說明。OpenAI 將此內容標示為封存,並提醒某些模型或 API 資訊可能已過時。

## Sources

- [Allan Riordan Boll:A Jev-like wrapper for LLMs, including vision models](https://allanrbo.blogspot.com/2026/09/a-jev-like-wrapper-for-llms-including.html) — 獨立的原始 Python 程式碼與作者回報的網路攝影機觀察。程式碼定義四個問題,周邊文字卻稱三個;沒有受控基準測試或獨立準確度研究。
- [TypeSafe AI:Jev quick start](https://docs.typesafe.ai/introduction/quickstart) — 說明文字狀態、問題類型與請求本文範例。部落格作者在自己的 Jev 風格請求物件中加入附件;此快速入門文件未記載該欄位。
- [OpenAI:Images and vision](https://developers.openai.com/api/docs/guides/images-vision) — 說明影像輸入與 base64 資料 URL。此文件支持請求模式,不支持作者觀察到的處理量。
- [OpenAI:Create a model response](https://developers.openai.com/api/reference/resources/responses/methods/create) — 說明影像輸入、message.output_text.logprobs,以及每個 token 位置最多 20 個(有時更少)的 top log probabilities。
- [OpenAI:GPT-6 Luna 與模型指南](https://developers.openai.com/api/docs/models/gpt-6-luna) — 列出影像輸入與 none 推理強度;OpenAI 模型指南說明不同推理強度的 logprob 參數限制。
- [llama.cpp server README](https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md) — 說明 OpenAI 相容的聊天端點與 image_url 輸入。此處未獨立執行驗證確切的後端/模型版本。
- [OpenAI Cookbook:Using logprobs](https://developers.openai.com/cookbook/examples/using_logprobs) — 提供 token 機率背景說明。OpenAI 將此 Cookbook 範例標示為封存,對目前模型或 API 可能已過時。