# [InsuRo 개인정보 P0-2] 고객 PII AI경로 Gemini→아누시스템 전환 (무학습)

## allowed_resources

```yaml
allowed_resources:
  paths:
    - "supabase/functions/analyze-customer/**"
    - "supabase/functions/transcribe-call/**"
    - "supabase/functions/_shared/**"
    - "supabase/functions/tests/**"
  forbidden_paths:
    - ".env"
    - ".env.*"
    - ".github/**"
  commands:
    - "deno"
    - "npx"
    - "node"
  merge_policy: "tiered"
  ttl_hours: 48
```

## 배경 (회장 지시)
개인정보 P0-2: 고객 PII가 외부 Gemini로 전송되는데 **Gemini 무료 등급은 데이터를 학습·사람 리뷰**에 사용(벤더 정책 확인). Anthropic 상업 API(Claude)는 기본 무학습. → **고객 PII 경로를 아누 시스템(Claude 상업 API, 무학습)으로 전환**.

## 확인된 현황 (재확인 불필요)
- 고객 PII 경로 2곳이 `callAI("gemini-2.0-flash-lite", ...)` **하드코딩**:
  - `supabase/functions/analyze-customer/index.ts:96` (고객명·메모·대화 전송)
  - `supabase/functions/transcribe-call/index.ts:89` (통화 전문 전송)
- 아누 provider 이미 정의됨: `_shared/ai-provider.ts:59` `"anu-system": {api:"anu", apiKeyEnv:"ANU_API_KEY"}`, `callAnuSystem`(:260)이 `${ANU_SYSTEM_URL}/api/insuro/ai/anu-generate` 호출.
- 아누 서버 엔드포인트 **라이브 확인**: `POST https://api.insuro.biz/api/insuro/ai/anu-generate` → 401(인증 게이트 존재). 즉 배선 대상.

## 수정 범위
1. **provider 교체** (2곳): `"gemini-2.0-flash-lite"` → `"anu-system"`
   - `analyze-customer/index.ts:96`, `transcribe-call/index.ts:89`
   - callAI 추상화라 반환 형식 호환되나, **응답 파싱부(결과 사용처)가 anu-system 반환과 정합한지 확인**(callAnuSystem의 AICallResult 구조 대조). 불일치 시 파싱 보정.
2. **model_tier 지정**: anu-system은 model_tier 기반 라우팅(prompt/model_tier/feature_key). 두 경로에 적절한 model_tier(예: 요약/분석용 tier) 전달되는지 확인·설정.
3. **폴백 안전**: 아누 호출 실패 시 처리(에러 반환). ※무학습이 목적이므로 **실패해도 Gemini로 자동 폴백하지 말 것**(폴백하면 PII가 다시 Gemini로 감). 실패는 에러로.

## 인프라 (ANU가 설정 — 봇은 코드만, 설정 필요사항 result.json에 명시)
- Supabase Edge Function secret: `ANU_SYSTEM_URL=https://api.insuro.biz`, `ANU_API_KEY=<아누 서버 anu-generate 인증키>` 필요. 봇은 **이 secret 필요를 보고서에 명시**(직접 설정 불가).

## 검증
1. 코드: provider 교체 grep 확인, 응답 파싱 정합, 폴백 없음(Gemini 재호출 0).
2. deno 타입체크/기존 테스트 회귀 0.
3. (배포 후 ANU) Edge Function이 api.insuro.biz/anu-generate 호출 → Claude 경유, Gemini 미호출 실동작.

## 배포
- Supabase Edge Function(`supabase functions deploy analyze-customer transcribe-call`) + secret 설정 = ANU 조율. finalize-only.

## 완료 보고
provider 교체 diff · 응답 파싱 정합 · 폴백 제거 확인 · 필요 secret 명시 · 회귀 · callback.