-- ===================================================================== -- GUARDiA ESN — 94. AI 플랫폼(LLM provider) 설정 시드 (멱등) -- 대상 DB : guardia_esn_db (테이블 esn_setting — schema.sql 에서 생성) -- 적용 : application.yml spring.sql.init.mode=always + schema-locations 에 본 파일 등재. -- mode:always 재실행 안전(ON CONFLICT DO NOTHING). -- 설명 : 외부 Claude(Anthropic) API 를 온프레미스 Ollama 와 병행·선택형으로 추가. -- 관리자(ADMIN)가 런타임으로 provider/모델을 선택(재기동 불요, AiConfigService). -- * ai.provider : ollama(기본) / claude / qwen3 / deepseek / glm -- * ai.claude.model : claude-sonnet-4-6(기본) / claude-haiku-4-5 / claude-opus-4-8 -- * ai.ollama.textModel: 빈값(=서버 프로퍼티 guardia.ollama-text-model 폴백, llama3.2:1b) -- * ai.enabled : true(기본, off=규칙기반 degraded) -- 보안 : Claude API 키는 DB 에 저장하지 않는다 — 서버 환경변수 ANTHROPIC_API_KEY 로만 주입. -- 본 시드에 키/시크릿/IP/비밀번호 일절 미포함. -- 무회귀 : 기본 provider=ollama → 설정 미변경 시 기존 Ollama 동작과 바이트 동일. -- 멱등 : INSERT ... ON CONFLICT (setting_key) DO NOTHING. -- 참고 : 기존 ai.ollama.text.model / ai.ollama.enabled(레거시 키)와 별개(신규 ai.* 키). -- ===================================================================== SET client_encoding = 'UTF8'; INSERT INTO esn_setting (setting_key, setting_value, category, description) VALUES ('ai.provider', 'ollama', 'AI', 'LLM provider(ollama/claude/qwen3/deepseek/glm)'), ('ai.claude.model', 'claude-sonnet-4-6', 'AI', 'Claude 모델 ID(화이트리스트)'), ('ai.ollama.textModel', '', 'AI', 'Ollama 텍스트 모델(빈값=서버 기본 폴백)'), ('ai.enabled', 'true', 'AI', '전역 AI 사용 여부(off=규칙기반 degraded)') ON CONFLICT (setting_key) DO NOTHING; -- end 94_seed_ai_config.sql