Spaces:
Sleeping
Sleeping
| -- 간단한 Supabase 설정 SQL | |
| -- 이 버전은 기본 기능만 포함하여 호환성을 높입니다. | |
| -- 1. pgvector 확장 활성화 | |
| CREATE EXTENSION IF NOT EXISTS vector; | |
| -- 2. documents 테이블 생성 (필수 항목만) | |
| CREATE TABLE IF NOT EXISTS documents ( | |
| id SERIAL PRIMARY KEY, | |
| content TEXT NOT NULL, | |
| metadata JSONB DEFAULT '{}', | |
| embedding vector(1536), -- OpenAI text-embedding-3-small 차원 | |
| source_file VARCHAR(255), | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| -- 3. 기본 인덱스 생성 (테이블 생성 후) | |
| CREATE INDEX IF NOT EXISTS documents_created_at_idx | |
| ON documents (created_at); | |
| -- 4. 벡터 유사도 검색 함수 (가장 간단한 버전) | |
| CREATE OR REPLACE FUNCTION search_similar_documents( | |
| query_embedding vector(1536), | |
| match_count int DEFAULT 10 | |
| ) | |
| RETURNS TABLE ( | |
| id int, | |
| content text, | |
| metadata jsonb, | |
| similarity float | |
| ) AS $$ | |
| BEGIN | |
| RETURN QUERY | |
| SELECT | |
| d.id, | |
| d.content, | |
| d.metadata, | |
| 1 - (d.embedding <=> query_embedding) as similarity | |
| FROM documents d | |
| ORDER BY d.embedding <=> query_embedding | |
| LIMIT match_count; | |
| END; | |
| $$ LANGUAGE plpgsql; | |
| -- 5. 성공 메시지 | |
| SELECT 'Supabase setup completed successfully!' as status; | |
| -- 6. 테이블 구조 확인 | |
| SELECT | |
| column_name, | |
| data_type, | |
| is_nullable | |
| FROM information_schema.columns | |
| WHERE table_name = 'documents' | |
| ORDER BY ordinal_position; |