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

# Jev형 비전 래퍼가 이미지 질문을 유형이 지정된 선택지로 바꾸다

> 독립적인 Python 예시는 비전 모델의 토큰 확률을 사용해 이미지에서 유형이 지정된 판단을 반환합니다. 웹캠 처리 속도는 작성자가 보고한 값이며 정확도는 검증되지 않았습니다.

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 방식의 판단 요청에 이미지 첨부를 더합니다. 웹캠 프레임을 짧은 질문과 함께 비전 모델에 보내고, 모델의 다음 토큰 확률을 예/아니요 값, 선택지 또는 점수로 변환합니다. 이 예시는 독립적인 래퍼이며 Jev의 비전 기능이나 Jev 모델 테스트가 아닙니다.

개발자에게 유용한 점은 이 기법의 적용 범위입니다. 비전 모델은 설명문을 작성하지 않고도 제약된 질문에 답할 수 있지만, 반환되는 선택지 확률은 프롬프트, 사용할 수 있는 토큰 대안, 모델에 따라 달라집니다. 이 게시물은 살펴볼 만한 작동 패턴을 제시할 뿐 정확도 연구는 아닙니다.

## 큰 변화

- **무엇이 달라졌나:**한 개발자가 Jev와 연관된 소규모 판단 형식을 일반 비전 모델을 사용해 이미지에 적용했습니다. 각 요청에 이미지를 첨부하고 한 글자로 답하게 해 시각적 질문을 소프트웨어가 처리할 수 있는 값으로 바꿉니다.
- **왜 중요한가:**개발자는 질문마다 별도의 이미지 분류기를 만들지 않고도 텍스트로 시각적 기준을 바꾸고 유형이 지정된 결과를 받을 수 있습니다. 이 예시는 사람과 식물의 가시 여부, 실내외 장면, 밝기를 다루지만, 그런 판단이 다른 카메라나 장면에서도 얼마나 안정적으로 적용되는지는 입증하지 않습니다.
- **살펴볼 점:**실무에서 판단할 점은 선택한 모델과 엔드포인트가 작업에 충분히 일관되게 필요한 대체 토큰 점수를 반환하는지 여부입니다. 웹캠 결과가 어떤 동작을 유발하기 전에 대표 이미지에서 프레임 처리량과 판단 품질을 함께 측정해야 합니다.

## 이미지 판단의 작동 방식

[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` 같은 문자 선택지를 포함한 프롬프트를 만듭니다. 모델에 가장 적합한 문자로 답하라고 요청한 뒤 첫 번째 출력 토큰의  `top_logprobs`을 읽습니다. 반환된 로그 확률을 지수화하고, 나열된 문자들의 가중치를 정규화해 질문 유형에 대응시킵니다. `choice`는 가중치가 가장 높은 선택지와 그 분포를 반환합니다. `noul`는 `true`의 가중치를 반환합니다. `score`는 순서형 단계의 가중 평균을 반환합니다. 생략된 선택지 토큰에 여전히 의미 있는 가중치가 남을 수 있으면 스크립트는 응답을 거부합니다. 

각 질문에 이미지가 함께 전달됩니다. 이 예시는 한 번의 모델 호출로 모든 답을 얻는 대신 개별 요청을 보냅니다. 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)는 로그 확률 출력과 토큰 위치당 최대 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 모델을 사용한 결과이며, 약 **초당 0.2프레임은** 호스팅된 GPT-6 Luna를 사용한 경우입니다. 그는 연결을 반복하는 일이 호스팅 결과에 영향을 줄 수 있다고 제안합니다. 게시물에는 하드웨어, 네트워크, 이미지 크기, 캐싱, 정확도 또는 요청 시간을 통제한 비교가 없습니다. 이 수치는 작성자의 설정과 코드에서 나온 값이지 모델 전반의 속도 순위가 아닙니다. [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`의 추론 설정을 지원한다고 설명합니다.

스크립트를 적용하려는 개발자는 먼저 구체적인 점검을 해야 합니다. 모델이 이미지 입력을 받고 필요한 첫 토큰 대안을 제공하는지 확인하고, 모든 선택지 문자가 나타나는지 확인한 다음, 대상 카메라나 데이터셋에서 라벨이 붙은 이미지로 반환된 판단을 평가합니다. 정규화된 가중치는 나열된 문자 토큰에 대한 상대값입니다. 그 자체가 시각적 판단의 정답 여부를 측정한 확률은 아닙니다. OpenAI의 [오래된 logprobs 쿡북](https://developers.openai.com/cookbook/examples/using_logprobs)은 토큰 확률의 개념을 설명하지만 보관 자료로 표시되어 있으며 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 입력을 설명합니다. 정확한 버전과 모델에서 백엔드가 지원되는지, 토큰 목록이 반환되는지는 확인이 더 필요합니다.
- [OpenAI 쿡북, Using logprobs](https://developers.openai.com/cookbook/examples/using_logprobs): 토큰 확률에 대한 배경 설명입니다. 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, 토큰 위치당 최대 20개의 top log probabilities(때로는 그보다 적음)를 설명합니다.
- [OpenAI: GPT-6 Luna and model guidance](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) — 토큰 확률에 대한 배경 설명입니다. OpenAI는 이 쿡북 예시를 보관 자료로 표시하며 현재 모델이나 API에는 오래된 내용일 수 있다고 설명합니다.
