Task #613: export-png VLM 프리셋 확장 (GPT-4V / Gemini / Qwen-VL / LLaVA)#735
Task #613: export-png VLM 프리셋 확장 (GPT-4V / Gemini / Qwen-VL / LLaVA)#735oksure wants to merge 2 commits into
Conversation
…/ LLaVA) VlmTarget enum 을 6종으로 확장: - claude: 1568 px / 1.15 MP (기존) - gpt4v-low: 512 px / 262K px (GPT-4V low detail) - gpt4v-high: 2000 px / 1.54 MP (GPT-4V high detail) - gemini: 3072 px / 9.44 MP (Google Gemini) - qwen-vl: 2240 px / 5.02 MP (Qwen-VL, 28×28 patch 기반) - llava: 672 px / 452K px (LLaVA / CLIP backbone OSS) CLI: --vlm-target <프리셋> 도움말 및 오류 메시지 갱신. 대소문자/하이픈/밑줄 유연 매칭 (gpt4v-low, gpt4v_low, GPT4V-LOW 모두 인식). 단위 테스트: from_str 전 변형 + constraints 정합성 검증. Closes edwardkim#613 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
export-png --vlm-target 옵션을 Claude 단일 프리셋에서 6종 VLM provider 프리셋으로 확장하고, CLI 도움말/에러 메시지 및 관련 단위 테스트를 추가합니다.
Changes:
VlmTargetenum을claude외 5개 프리셋(GPT-4V low/high, Gemini, Qwen-VL, LLaVA)으로 확장하고 provider별 제약값을 추가--vlm-target도움말 및 잘못된 입력 시 에러 메시지에 지원 프리셋 목록을 노출from_str()변형 입력 파싱 및 constraints 정합성 검증 테스트 추가
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| src/main.rs | --vlm-target 도움말 업데이트 및 유효하지 않은 값에 대한 에러 메시지 개선 |
| src/document_core/queries/rendering.rs | VlmTarget 프리셋 확장, constraints/from_str/all_names 추가, 관련 단위 테스트 추가 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "gpt4v_low" | "gpt4v-low" => Some(VlmTarget::Gpt4vLow), | ||
| "gpt4v_high" | "gpt4v-high" | "gpt4v" => Some(VlmTarget::Gpt4vHigh), | ||
| "gemini" => Some(VlmTarget::Gemini), | ||
| "qwen_vl" | "qwen-vl" | "qwen" => Some(VlmTarget::QwenVl), |
| "gpt4v_low" | "gpt4v-low" => Some(VlmTarget::Gpt4vLow), | ||
| "gpt4v_high" | "gpt4v-high" | "gpt4v" => Some(VlmTarget::Gpt4vHigh), | ||
| "gemini" => Some(VlmTarget::Gemini), | ||
| "qwen_vl" | "qwen-vl" | "qwen" => Some(VlmTarget::QwenVl), | ||
| "llava" => Some(VlmTarget::Llava), | ||
| _ => None, | ||
| } | ||
| } | ||
|
|
||
| pub fn all_names() -> &'static str { | ||
| "claude, gpt4v-low, gpt4v-high, gemini, qwen-vl, llava" |
| println!(" --vlm-target <프리셋> VLM 입력 프리셋:"); | ||
| println!(" claude: 1568 px / 1.15 MP (Claude Vision)"); | ||
| println!(" gpt4v-low: 512 px (GPT-4V low detail)"); | ||
| println!(" gpt4v-high: 2000 px / 1.54 MP (GPT-4V high detail)"); | ||
| println!(" gemini: 3072 px (Google Gemini)"); | ||
| println!(" qwen-vl: 2240 px (Qwen-VL)"); | ||
| println!(" llava: 672 px (LLaVA / OSS CLIP)"); |
- replace('-','_') 정규화 이후 하이픈 패턴은 매칭 불가하므로 제거
- all_names() 에 축약 별칭 (gpt4v, qwen) 표기 추가
- CLI 도움말에 별칭 명시 (gpt4v-high 별칭: gpt4v, qwen-vl 별칭: qwen)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Copilot 리뷰 피드백을 c6a762c 에서 반영했습니다:
|
…wen-VL / LLaVA) PR #735 (@oksure) 옵션 A 처리 — 2 commits cherry-pick + 수동 충돌 해결 + no-ff merge. 본질 정정 (2 files, +71/-8): - src/document_core/queries/rendering.rs (+61/-3): VlmTarget enum 1 → 6 variants 확장 (Claude / Gpt4vLow / Gpt4vHigh / Gemini / QwenVl / Llava) + constraints() 메서드 각 provider 한도 (edge / pixels) + from_str() 하이픈/밑줄 정규화 + 축약 별칭 (gpt4v / qwen) + all_names() 헬퍼 + 신규 unit tests 2건 (vlm_target_from_str_all_variants 12 케이스 / vlm_target_constraints_are_sane 6 variants sanity check) - src/main.rs (+10/-5): CLI 도움말 영역 6종 프리셋 한 줄 설명 + 에러 메시지 영역 VlmTarget::all_names() 동기화 추가 프리셋: - gpt4v-low: 512 px / 262K (GPT-4V low detail) - gpt4v-high: 2000 px / 1.54 MP (GPT-4V high, 별칭 gpt4v) - gemini: 3072 px / 9.44 MP (Google Gemini) - qwen-vl: 2240 px / 5.02 MP (Qwen-VL 28×28 patch, 별칭 qwen) - llava: 672 px / 452K (LLaVA / OSS CLIP backbone) Copilot 리뷰 반영 (commit 2883733): from_str 정규화 후 dead arm 제거 + 별칭 도움말 동기화 (하이픈/밑줄 모두 허용 명시). 본 환경 cherry-pick 영역 영역 PR #734 (Task #614 --dpi) 영역 영역 동일 파일 영역 영역 누적 변경 영역 영역 충돌 발생 영역 영역 → **수동 통합** (PR #734 의 --dpi 보존 + PR #735 의 VLM 6종 보존). 자기 검증: - cherry-pick 2 commits 영역 영역 수동 충돌 해결 (main.rs 도움말 + rendering.rs 테스트 모듈) - cargo build/test --release ✅ ALL GREEN (native-skia feature 영역 영역 도) - VLM unit tests ✅ 2 PASS - 광범위 sweep 7 fixture / 170 페이지 / **회귀 0** ✅ - --dpi + --vlm-target 통합 동작 검증 ✅ (samples/통합재정통계(2010.11월).hwp 영역 영역 --vlm-target gemini 단독 + --vlm-target gpt4v --dpi 200 동시 — pHYs ppm 7874 = 200 DPI 정합) opt-in 영역 영역: - --vlm-target 미지정 시 기존 동작 100% 보존 - 시각 판정 면제 합리 (CLI 옵션 + enum 확장 영역 영역 픽셀 데이터 무영향, feedback_visual_judgment_authority 정합) closes #613
…M 프리셋 표 갱신 - mydocs/pr/archives/pr_735_review.md: 검토 문서 archives 이동 - mydocs/pr/archives/pr_735_report.md: 처리 보고서 작성 · VLM 프리셋 1 → 6 variants 확장 (Issue #613 closes) · PR #734 + PR #735 동일 파일 누적 변경 영역 영역 수동 통합 · PR #734 + PR #735 통합 검증 ✅ (--vlm-target + --dpi 독립 동작 입증) · 시각 판정 면제 합리 (CLI + enum 확장 영역 영역 픽셀 데이터 무영향) - mydocs/orders/20260510.md: PR #735 항목 추가 (5/10 사이클 영역 영역 9건 처리) - mydocs/manual/export_png_command.md: VLM 프리셋 표 갱신 (1 → 6 variants) + 비목표 영역 갱신 (#613 완료)
|
@oksure 님, 검토 + 머지 완료했습니다. 처리 결과옵션 A (2 commits cherry-pick + 수동 충돌 해결 + no-ff merge `56fe3a74`) 로 처리. 본 환경 영역 영역 PR #734 (Task #614 --dpi) 영역 영역 동일 파일 영역 영역 누적 변경 영역 영역 충돌 발생 영역 영역 → 수동 통합 (PR #734 의 `--dpi` 보존 + PR #735 의 VLM 6종 보존, 동일 컨트리뷰터 영역 영역 두 PR 영역 영역 의도 영역 영역 다른 영역 영역 정합). 자기 검증
PR #734 + PR #735 통합 검증 ✅`samples/통합재정통계(2010.11월).hwp` 영역 영역 두 옵션 동시 사용 영역 영역 정합 입증:
두 옵션 영역 영역 독립 동작 — `--vlm-target` 영역 영역 픽셀 한도 + `--dpi` 영역 영역 메타데이터 영역 영역 분리. 매뉴얼 현행화`mydocs/manual/export_png_command.md` 영역 VLM 프리셋 표 영역 영역 1 → 6 variants 갱신 + 비목표 영역 영역 영역 `#613` 완료 영역 영역 표시. 시각 판정 면제`feedback_visual_judgment_authority` 정합 — CLI 옵션 + enum 확장 영역 영역 (픽셀 데이터 무영향), SVG 시각 출력 무변경, 결정적 검증 통과. 처리 보고서: `mydocs/pr/archives/pr_735_report.md`. @oksure 님 20+ 사이클 컨트리뷰션 영역 — 5/10 사이클 영역 영역 PR #720/#723/#725/#728/#729/#730/#732/#734/#735 영역 9건 처리 완료 영역. |
- 옵션 우선순위 영역 정정: --dpi 영역 영역 메타데이터 영역 영역 항상 적용 + --vlm-target / --dpi 동시 사용 가능 명시 - DPI 메타데이터 절: 표현 정정 (어색한 한국어 표현 자연 정정) + --vlm-target gpt4v --dpi 200 동시 적용 예시 추가 - 사용 예시: 신규 VLM 프리셋 5종 (gemini / gpt4v-high (별칭 gpt4v) / qwen (별칭) / llava) + VLM + DPI 동시 적용 예시 추가 - 출력 dimension 표: 5종 VLM 프리셋 추가 (gpt4v-low/high / gemini / qwen-vl / llava) - 출력 형식 / 비목표: 표현 정정 (자연 한국어) PR #735 (Task #613) 머지 영역 영역 후 매뉴얼 영역 영역 충실 현행화.
요약
export-png --vlm-target옵션을 6종 VLM provider 프리셋으로 확장합니다.추가된 프리셋
claudegpt4v-lowgpt4v-highgeminiqwen-vlllava변경 사항
VlmTargetenum 확장 (1 → 6 variants)constraints()메서드에 각 provider 별 한도 추가from_str()에 대소문자/하이픈/밑줄 유연 매칭사용 예시
테스트
Closes #613
감사합니다.