# C. 네이버 블로그 모델 4종 선택 기능

## 배경
- 모델에 따라 글 스타일/품질이 달라짐
- 인슈로 네이버블로그 기능 적용 시에도 필요
- 현재: sonnet 고정 → sonnet/haiku(내부 CLI) + gemini/gpt(외부) 선택 가능하게

## 수정 대상
- `/home/jay/workspace/dashboard/components/NaverBlogView.js` — BlogGenerateStep
- `/home/jay/workspace/dashboard/server.py` — generate 핸들러

## 요구사항

### 1. 모델 4종

| 모델 | 호출 방식 | CLI 경로 |
|------|----------|---------|
| Sonnet (기본) | `/home/jay/.local/bin/claude -p "..." --model sonnet` | 내부 CLI |
| Haiku | `/home/jay/.local/bin/claude -p "..." --model haiku` | 내부 CLI |
| Gemini | 확인 필요 — Gemini CLI가 있다면 사용, 없으면 API | 확인 필요 |
| GPT | 확인 필요 — OpenAI CLI가 있다면 사용, 없으면 API | 확인 필요 |

### 2. Gemini/GPT CLI 확인
```bash
# 현재 사용 가능한 CLI 확인
which gemini 2>/dev/null
which gpt 2>/dev/null
ls /home/jay/workspace/tools/ | grep -i gemini
ls /home/jay/workspace/tools/ | grep -i gpt
# .env.keys에서 API 키 확인
grep -i "GEMINI\|GOOGLE_AI\|OPENAI" /home/jay/workspace/.env.keys
```
- Gemini: `google-generativeai` 패키지 또는 `glm-mcp` MCP 서버 활용 가능
- GPT: `openai` 패키지 활용 가능

### 3. 백엔드 구현
`/api/naver-blog/generate` 핸들러에서:
```python
model = body.get("model", "sonnet")  # sonnet | haiku | gemini | gpt

if model in ("sonnet", "haiku"):
    # 기존 claude CLI 호출
    result = subprocess.run(
        ["/home/jay/.local/bin/claude", "-p", prompt_text, "--model", model],
        ...
    )
elif model == "gemini":
    # Gemini 호출 (방법 확인 후 구현)
    ...
elif model == "gpt":
    # GPT 호출 (방법 확인 후 구현)
    ...
```

### 4. 프론트엔드 UI
`BlogGenerateStep`에 모델 선택 드롭다운 추가:
- 위치: 어투 선택 옆 또는 아래
- 라벨: "생성 모델"
- 옵션: Sonnet(기본) / Haiku(빠름) / Gemini / GPT
- 각 옵션에 짧은 설명 (예: "Sonnet — 균형잡힌 품질", "Haiku — 빠른 생성")

### 5. API 변경
```
POST /api/naver-blog/generate
{
  "keywords": [...],
  "additionalContent": "...",
  "tone": "mixed",
  "model": "sonnet"
}
```

### 6. 주의사항
- Gemini/GPT API 키는 `.env.keys`에서 로드 (하드코딩 금지)
- 각 모델별 timeout 조정 (haiku: 120초, sonnet: 300초, gemini/gpt: 300초)
- 모델별 프롬프트 미세 조정은 이번 범위 외 (동일 프롬프트 사용)

## 보고서
`/home/jay/workspace/memory/reports/task-1588.md`에 작성
- 각 모델 호출 방식 상세
- Gemini/GPT 연동 방법 (CLI or API)
