feat(v031): vision capability hints 에 gemma4 추가 (사용자 요청)
본인 dogfood 환경 = gemma4:e4b (텍스트). vision 변종은 현재 gemma3 (vision-capable) 또는 향후 gemma4 출시 시. 양 family 모두 hint 에 포함 — capability detection 이 future-proof. - VisionDetect.VISION_FAMILIES + VISION_NAME_HINTS 에 'gemma4' 추가 - isVisionCapable test 2건 추가 (gemma4 family / gemma4 name hint detection) - spec §1 + §2 의 'gemma3 family default' → 'gemma family — gemma3 / gemma4' 영향: 기존 detection 정확도 무영향 (set 추가만), 사용자가 gemma4 vision 변종을 설치하면 자동 인식.
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
## 1. Cut 정체성
|
||||
|
||||
Ollama vision 모델 (gemma3 family default) 활용 — 이미지 + raw_text 결합 prompt 또는 이미지 단독 분석 → title/summary/tags 자동 생성. F22 prerequisite (Cut A) 이미 완료.
|
||||
Ollama vision 모델 (gemma family — gemma3 / gemma4 default capable) 활용 — 이미지 + raw_text 결합 prompt 또는 이미지 단독 분석 → title/summary/tags 자동 생성. F22 prerequisite (Cut A) 이미 완료.
|
||||
|
||||
---
|
||||
|
||||
@@ -20,7 +20,7 @@ Ollama vision 모델 (gemma3 family default) 활용 — 이미지 + raw_text 결
|
||||
|
||||
| 항목 | 결정 |
|
||||
|---|---|
|
||||
| **F24 default 모델** | gemma3 family (한국어 + 이미지 둘 다 강함, 본인 메모 `gemma4:e4b` 텍스트 모델과 같은 가족) |
|
||||
| **F24 default 모델** | gemma family — gemma3 / gemma4 둘 다 vision-capable hint (한국어 + 이미지 둘 다 강함, 본인 메모 `gemma4:e4b` 텍스트 모델과 같은 가족) |
|
||||
| **prompt 모드** | 단일 vision 모델 호출 (vision 모델이 텍스트도 처리). 모델 capability 부족 시 2단계 fallback (자동) |
|
||||
| **capability detection** | app launch 시 1회 + 설정 페이지 manual refresh 버튼 |
|
||||
| **F23 OFF 시 자동 OFF** | `ai_enabled=false` → vision 도 자동 OFF (자명) |
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
import type { SettingsService } from './SettingsService.js';
|
||||
|
||||
const VISION_FAMILIES = new Set(['gemma3', 'llava', 'llama3.2-vision', 'minicpm-v', 'pixtral']);
|
||||
const VISION_NAME_HINTS = ['vision', 'vl', 'multimodal', 'gemma3'];
|
||||
// v0.3.1 Cut F final fix — gemma 시리즈 default 정정. 본인 dogfood 환경 = gemma4:e4b
|
||||
// (텍스트). vision 변종은 gemma3 (현재 vision-capable) 또는 gemma4 (향후 출시 시).
|
||||
// 양 family 모두 hint 에 포함 — capability detection 이 future-proof.
|
||||
const VISION_FAMILIES = new Set(['gemma3', 'gemma4', 'llava', 'llama3.2-vision', 'minicpm-v', 'pixtral']);
|
||||
const VISION_NAME_HINTS = ['vision', 'vl', 'multimodal', 'gemma3', 'gemma4'];
|
||||
|
||||
export interface OllamaModel {
|
||||
name: string;
|
||||
|
||||
@@ -30,6 +30,17 @@ describe('isVisionCapable', () => {
|
||||
const model: OllamaModel = { name: 'gemma2:9b', details: { family: 'gemma', families: ['gemma'] } };
|
||||
expect(isVisionCapable(model)).toBe(false);
|
||||
});
|
||||
|
||||
// v0.3.1 Cut F final fix — gemma family default 정정. gemma4 도 vision-capable hint.
|
||||
it('returns true for gemma4 family (future-proof)', () => {
|
||||
const model: OllamaModel = { name: 'gemma4-vision:e4b', details: { family: 'gemma4' } };
|
||||
expect(isVisionCapable(model)).toBe(true);
|
||||
});
|
||||
|
||||
it('returns true for gemma4 in name hints (no family)', () => {
|
||||
const model: OllamaModel = { name: 'custom-gemma4:latest' };
|
||||
expect(isVisionCapable(model)).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user