diff --git a/app/models/document.py b/app/models/document.py index bad4566..6fcb71f 100644 --- a/app/models/document.py +++ b/app/models/document.py @@ -43,7 +43,7 @@ class Document(Base): ai_confidence: Mapped[float | None] = mapped_column() # 3계층: 벡터 임베딩 - embedding = mapped_column(Vector(768), nullable=True) + embedding = mapped_column(Vector(1024), nullable=True) embed_model_version: Mapped[str | None] = mapped_column(String(50)) embedded_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True)) diff --git a/app/workers/embed_worker.py b/app/workers/embed_worker.py index 74f8999..15871a4 100644 --- a/app/workers/embed_worker.py +++ b/app/workers/embed_worker.py @@ -1,4 +1,4 @@ -"""벡터 임베딩 워커 — GPU 서버 nomic-embed-text 호출""" +"""벡터 임베딩 워커 — GPU 서버 bge-m3 호출""" from datetime import datetime, timezone @@ -10,9 +10,9 @@ from models.document import Document logger = setup_logger("embed_worker") -# 임베딩용 텍스트 최대 길이 (nomic-embed-text: 8192 토큰) +# 임베딩용 텍스트 최대 길이 (bge-m3: 8192 토큰) MAX_EMBED_TEXT = 6000 -EMBED_MODEL_VERSION = "nomic-embed-text-v1.5" +EMBED_MODEL_VERSION = "bge-m3" async def process(document_id: int, session: AsyncSession) -> None: diff --git a/config.yaml b/config.yaml index 91fbdf0..53a4f9f 100644 --- a/config.yaml +++ b/config.yaml @@ -26,7 +26,7 @@ ai: embedding: endpoint: "http://ollama:11434/api/embeddings" - model: "nomic-embed-text" + model: "bge-m3" vision: endpoint: "http://ollama:11434/api/generate" diff --git a/migrations/011_embedding_1024.sql b/migrations/011_embedding_1024.sql new file mode 100644 index 0000000..ecc816e --- /dev/null +++ b/migrations/011_embedding_1024.sql @@ -0,0 +1,7 @@ +-- 벡터 차원 변경: 768 → 1024 (nomic-embed-text → bge-m3) +-- 기존 임베딩 데이터 초기화 (재생성 필요) +ALTER TABLE documents DROP COLUMN IF EXISTS embedding; +ALTER TABLE documents ADD COLUMN embedding vector(1024); + +-- 기존 임베딩 메타 초기화 +UPDATE documents SET embedded_at = NULL, embed_model_version = NULL;