- AiConfig::getActiveGemini() → config('services.gemini') 기반
- AiConfig::getActiveGcs() → config('services.google') 기반
- AiConfig::getActiveClaude() → config('services.claude') 기반
- AiConfig::getActiveNotion() → config('services.notion') 기반
- GoogleCloudStorageService: DB 우선 로직 제거, .env만 사용
- 8개 서비스 파일은 수정 없이 동작 (AiConfig 인터페이스 유지)
upload()이 gs://bucket/path 형식으로 저장하지만 getSignedUrl()과
delete()는 path만 기대하여 URL에 경로가 중복됨 → 404 발생
stripGsPrefix()로 자동 변환하여 해결
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- config/gcs.php 추가: 환경변수 기반 설정
- GoogleCloudStorageService 우선순위 변경:
1. DB 설정 (UI 오버라이드용)
2. 환경변수 (.env) - 기본
3. 레거시 파일 (fallback)
- .env.example에 GCS 설정 추가
- 서버 배포 시 .env만 설정하면 DB 설정 불필요
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- AI 설정과 스토리지 설정을 탭으로 구분
- GCS 버킷 이름, 서비스 계정 (JSON 직접입력/파일경로) 설정 가능
- GCS 연결 테스트 기능 추가
- GoogleCloudStorageService가 DB 설정 우선 사용 (fallback: 레거시 파일)
- AiConfig 모델에 gcs provider 및 관련 메서드 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- GoogleCloudStorageService 생성 (레거시 방식 JWT 인증)
- 10MB 이상 파일은 Google Cloud Storage에 백업 (본사 연구용)
- 오디오/파일 다운로드 라우트 추가
- voice-recorder.blade.php 인라인 x-data로 변경 (HTMX 호환)
- SalesConsultation 모델에 gcs_uri 필드 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>