-- 임베딩 모델 전환: 로컬 multilingual-e5-small (384차원) -- mock/openai 도 384 로 통일한다 (openai 는 dimensions 파라미터로 축소 요청). DO $$ BEGIN IF (SELECT format_type(atttypid, atttypmod) FROM pg_attribute WHERE attrelid = 'keyword'::regclass AND attname = 'embedding') <> 'vector(384)' THEN DROP INDEX IF EXISTS keyword_embedding_hnsw; ALTER TABLE keyword ALTER COLUMN embedding TYPE vector(384) USING NULL::vector(384); CREATE INDEX keyword_embedding_hnsw ON keyword USING hnsw (embedding vector_cosine_ops); END IF; IF (SELECT format_type(atttypid, atttypmod) FROM pg_attribute WHERE attrelid = 'qa_pair'::regclass AND attname = 'embedding') <> 'vector(384)' THEN ALTER TABLE qa_pair ALTER COLUMN embedding TYPE vector(384) USING NULL::vector(384); END IF; END $$; -- 데이터셋 출처 추적 (수작업 큐레이션 / LLM 생성 구분) ALTER TABLE keyword ADD COLUMN IF NOT EXISTS source text NOT NULL DEFAULT 'llm'; ALTER TABLE keyword ADD COLUMN IF NOT EXISTS kind text NOT NULL DEFAULT 'keyword'; ALTER TABLE keyword ADD COLUMN IF NOT EXISTS category text; CREATE INDEX IF NOT EXISTS keyword_kind_idx ON keyword (kind, category);