feat: 임베딩 모델 변경 — nomic-embed-text → bge-m3 (1024차원, 다국어)
- config.yaml: embedding model → bge-m3 - document.py: Vector(768) → Vector(1024) - embed_worker.py: 모델 버전 업데이트 - migration 011: 벡터 컬럼 재생성 (기존 임베딩 초기화) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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))
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"
|
||||
|
||||
7
migrations/011_embedding_1024.sql
Normal file
7
migrations/011_embedding_1024.sql
Normal file
@@ -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;
|
||||
Reference in New Issue
Block a user