# AI 서비스 환경변수 설정 가이드

## 필수 환경변수

### 데이터베이스 설정
```bash
export DB_HOST=20.249.153.213
export DB_NAME=aidb
export DB_USERNAME=hgzerouser
export DB_PASSWORD=Hi5Jessica!
export DB_PORT=5432
export DDL_AUTO=update
```

### Redis 설정
```bash
export REDIS_HOST=20.249.177.114
export REDIS_PORT=6379
export REDIS_PASSWORD=Hi5Jessica!
export REDIS_DATABASE=4
```

### 서버 설정
```bash
export SERVER_PORT=8083
export SPRING_PROFILES_ACTIVE=dev
```

### JWT 설정
```bash
export JWT_SECRET=dev-jwt-secret-key-for-development-only
export JWT_ACCESS_TOKEN_VALIDITY=1800
export JWT_REFRESH_TOKEN_VALIDITY=86400
```

### 로깅 설정
```bash
export LOG_LEVEL_ROOT=INFO
export LOG_LEVEL_APP=DEBUG
export LOG_FILE=logs/ai-service.log
export LOG_MAX_FILE_SIZE=10MB
export LOG_MAX_HISTORY=7
export LOG_TOTAL_SIZE_CAP=100MB
```

### 외부 API 키 설정
```bash
export CLAUDE_API_KEY=sk-ant-ap...
export OPENAI_API_KEY=sk-proj-An4Q...
export OPENWEATHER_API_KEY=1aa5b...
export KAKAO_API_KEY=5cdc24....
```

### Azure EventHub 설정
```bash
export AZURE_EVENTHUB_CONNECTION_STRING="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo="
export AZURE_EVENTHUB_NAME=hgzero-eventhub-name
export AZURE_EVENTHUB_NAMESPACE=hgzero-eventhub-ns
```

### CORS 설정
```bash
export CORS_ALLOWED_ORIGINS=http://localhost:*
```

## 선택적 환경변수 (Azure AI 서비스 사용 시)
```bash
export AZURE_OPENAI_API_KEY=your-azure-openai-key
export AZURE_OPENAI_ENDPOINT=your-azure-openai-endpoint
export AZURE_AI_SEARCH_ENDPOINT=your-azure-search-endpoint
export AZURE_AI_SEARCH_API_KEY=your-azure-search-key
```

## 실행 방법

### 1. IntelliJ IDEA 실행 프로파일 사용
- IntelliJ에서 ai-service 실행 프로파일이 자동으로 설정됨
- 환경변수가 미리 설정되어 있어 바로 실행 가능

### 2. Gradle 직접 실행
```bash
cd ai
export 환경변수들...
./gradlew bootRun
```

### 3. 환경변수 파일 사용 (.env)
```bash
# .env 파일 생성 후 위 환경변수들 설정
source .env
./gradlew bootRun
```

## 주의사항
- API 키들은 보안을 위해 실제 값으로 교체해야 함
- 운영 환경에서는 JWT_SECRET을 반드시 변경
- 로그 파일 위치는 애플리케이션 실행 권한이 있는 경로로 설정
- EventHub Connection String은 실제 Azure 리소스에 맞게 설정