# task-441.1: InsuRo AI Gateway 독립화 (issue-002)

## 배경
InsuRo의 Edge Function들이 Lovable의 AI gateway를 경유하고 있음.
이를 제거하고, subscription_plans 테이블의 ai_provider 필드에 따라 직접 AI API를 호출하도록 전환.

## 참고 문서
- AI 비용 분석: `/home/jay/workspace/memory/research/insuro-ai-cost-analysis.md`
- InsuRo 프로젝트: `/home/jay/projects/InsuRo/`
- 플랜별 AI provider 설정 (task-435.1에서 seed 완료):
  - Free/Basic: gemini-2.0-flash-lite
  - Pro: gemini-2.0-flash
  - Premium: claude-haiku-4-5-20251001
  - Enterprise: claude-sonnet-4-5-20250514
  - Internal (히든): gemini-2.0-flash

## 작업 내용

### 1. Edge Function 분석
- `supabase/functions/` 디렉토리의 모든 Edge Function 확인
- Lovable AI gateway 호출 부분 식별 (URL, 헤더, 인증 방식)
- 각 Function이 AI를 어떤 용도로 쓰는지 파악 (텍스트 생성, 분석, 요약 등)

### 2. AI Provider 분기 모듈 생성
- `supabase/functions/_shared/ai-provider.ts` 신규 생성
- subscription_plans 테이블에서 해당 사용자의 ai_provider 조회
- provider별 API 호출 함수:
  - Gemini: Google AI API (REST)
  - Claude: Anthropic API (REST)
- 통일된 인터페이스: `callAI(prompt, options) → response`

### 3. 각 Edge Function 수정
- Lovable gateway 호출 → ai-provider.ts의 callAI() 호출로 교체
- 기존 프롬프트/파라미터 유지
- 에러 핸들링: API 실패 시 적절한 에러 반환

### 4. 환경변수 설정
- Supabase Edge Function secrets에 추가 필요:
  - `GOOGLE_AI_API_KEY` (Gemini용)
  - `ANTHROPIC_API_KEY` (Claude용)
- ⚠️ 키 값은 제이회장님이 직접 설정 (Supabase Dashboard → Edge Functions → Secrets)

### 5. 테스트
- 각 Edge Function 호출 테스트
- Free 플랜 → Gemini Flash Lite 호출 확인
- Premium 플랜 → Claude Haiku 호출 확인
- AI provider 미설정 시 기본값 fallback (gemini-flash-lite)

## 수정 대상
- `supabase/functions/_shared/ai-provider.ts` (신규)
- `supabase/functions/*/index.ts` (각 Edge Function 수정)

## 프로젝트 경로
- `/home/jay/projects/InsuRo/`

## 레벨: Lv.2
기존 코드 파악 + 모듈 생성 + 각 Function 수정. 미팅 불필요.