From 5c93e5d7a89ac2417bb583d6869fe08c16f57cd7 Mon Sep 17 00:00:00 2001 From: furyhawk Date: Sun, 14 Jun 2026 13:33:34 +0800 Subject: [PATCH] feat: Add session commit in database operations and update embedding configuration --- backend/core/database.py | 1 + backend/services/rag/config.py | 8 ++++++-- backend/worker/tasks/rag_tasks.py | 2 ++ docker-compose.yml | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/core/database.py b/backend/core/database.py index 7a36916..5a4a2ee 100644 --- a/backend/core/database.py +++ b/backend/core/database.py @@ -99,6 +99,7 @@ def open_session() -> AsyncSession: async with open_session() as session: await session.execute(...) + await session.commit() # required — no auto-commit The session is automatically closed on exit of the ``async with`` block. """ diff --git a/backend/services/rag/config.py b/backend/services/rag/config.py index 50f28c8..36e8cb1 100644 --- a/backend/services/rag/config.py +++ b/backend/services/rag/config.py @@ -98,14 +98,18 @@ EMBEDDING_DIMENSIONS: dict[str, int] = { "bge-small-en-v1.5": 384, "bge-base-en-v1.5": 768, "bge-large-en-v1.5": 1024, + # llama.cpp / local models (Gemma, Llama, etc.) + "gemma-4-12b-it": 3840, + "gemma-4-12b": 3840, + "unsloth/gemma-4-12B-it-qat-GGUF:UD-Q4_K_XL": 3840, } class EmbeddingsConfig(BaseModel): """Embeddings configuration. Dimension is auto-derived from model name.""" - model: str = "text-embedding-3-small" - dim: int = 1536 + model: str = "unsloth/gemma-4-12B-it-qat-GGUF:UD-Q4_K_XL" + dim: int = 3840 @model_validator(mode="after") def set_dim_from_model(self) -> "EmbeddingsConfig": diff --git a/backend/worker/tasks/rag_tasks.py b/backend/worker/tasks/rag_tasks.py index c997268..db8735e 100644 --- a/backend/worker/tasks/rag_tasks.py +++ b/backend/worker/tasks/rag_tasks.py @@ -86,6 +86,7 @@ async def ingest_document_task( doc_id=rag_document_id, error_message=result.error_message or "Unknown error", ) + await session.commit() logger.info( "[WORKER] Ingestion complete: doc=%s, status=%s", @@ -104,6 +105,7 @@ async def ingest_document_task( doc_id=rag_document_id, error_message=str(exc), ) + await session.commit() return {"status": "error", "message": str(exc)} diff --git a/docker-compose.yml b/docker-compose.yml index 6d9b9a6..0666215 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -42,7 +42,7 @@ services: - MAX_UPLOAD_SIZE_MB=${MAX_UPLOAD_SIZE_MB:-50} # Embeddings — defaults to LLM_BASE_URL; set to a server that supports # the OpenAI-compatible embeddings endpoint (e.g. Ollama, OpenAI). - - EMBEDDING_BASE_URL=${EMBEDDING_BASE_URL:-} + - EMBEDDING_BASE_URL=${EMBEDDING_BASE_URL:-http://host.containers.internal:8011/v1} - EMBEDDING_API_KEY=${EMBEDDING_API_KEY:-} restart: unless-stopped