JatsTheAIGen commited on
Commit
f5d3311
·
1 Parent(s): df93424

fix: Resolve database permission errors and OMP_NUM_THREADS warning

Browse files

- Change default database path from sessions.db to /tmp/sessions.db (writable in containers)
- Update EfficientContextManager to accept db_path parameter and use settings
- Update all config files (config.py, src/config.py) to use /tmp for database paths
- Update FAISS index path to /tmp/embeddings.faiss
- Update ZeroGPUUserManager default db_path to /tmp/sessions.db
- Fix libgomp OMP_NUM_THREADS warning by setting ENV variables in Dockerfile
- Prevents sqlite3.OperationalError: unable to open database file

Dockerfile CHANGED
@@ -16,6 +16,11 @@ RUN apt-get update && apt-get install -y \
16
  # Set working directory
17
  WORKDIR /app
18
 
 
 
 
 
 
19
  # Copy requirements first for better caching
20
  COPY requirements.txt .
21
 
 
16
  # Set working directory
17
  WORKDIR /app
18
 
19
+ # Set environment variables to prevent warnings
20
+ # Fix libgomp OMP_NUM_THREADS warning
21
+ ENV OMP_NUM_THREADS=4
22
+ ENV MKL_NUM_THREADS=4
23
+
24
  # Copy requirements first for better caching
25
  COPY requirements.txt .
26
 
config.py CHANGED
@@ -17,8 +17,9 @@ class Settings(BaseSettings):
17
  cache_ttl: int = int(os.getenv("CACHE_TTL", "3600"))
18
 
19
  # Database settings
20
- db_path: str = os.getenv("DB_PATH", "sessions.db")
21
- faiss_index_path: str = os.getenv("FAISS_INDEX_PATH", "embeddings.faiss")
 
22
 
23
  # Session settings
24
  session_timeout: int = int(os.getenv("SESSION_TIMEOUT", "3600"))
 
17
  cache_ttl: int = int(os.getenv("CACHE_TTL", "3600"))
18
 
19
  # Database settings
20
+ # Use /tmp for database in Docker containers (writable location)
21
+ db_path: str = os.getenv("DB_PATH", "/tmp/sessions.db")
22
+ faiss_index_path: str = os.getenv("FAISS_INDEX_PATH", "/tmp/embeddings.faiss")
23
 
24
  # Session settings
25
  session_timeout: int = int(os.getenv("SESSION_TIMEOUT", "3600"))
src/config.py CHANGED
@@ -17,8 +17,9 @@ class Settings(BaseSettings):
17
  cache_ttl: int = int(os.getenv("CACHE_TTL", "3600"))
18
 
19
  # Database settings
20
- db_path: str = os.getenv("DB_PATH", "sessions.db")
21
- faiss_index_path: str = os.getenv("FAISS_INDEX_PATH", "embeddings.faiss")
 
22
 
23
  # Session settings
24
  session_timeout: int = int(os.getenv("SESSION_TIMEOUT", "3600"))
 
17
  cache_ttl: int = int(os.getenv("CACHE_TTL", "3600"))
18
 
19
  # Database settings
20
+ # Use /tmp for database in Docker containers (writable location)
21
+ db_path: str = os.getenv("DB_PATH", "/tmp/sessions.db")
22
+ faiss_index_path: str = os.getenv("FAISS_INDEX_PATH", "/tmp/embeddings.faiss")
23
 
24
  # Session settings
25
  session_timeout: int = int(os.getenv("SESSION_TIMEOUT", "3600"))
src/context_manager.py CHANGED
@@ -49,7 +49,7 @@ class TransactionManager:
49
  conn.close()
50
 
51
  class EfficientContextManager:
52
- def __init__(self, llm_router=None):
53
  self.session_cache = {} # In-memory for active sessions
54
  self._session_cache = {} # Enhanced in-memory cache with timestamps
55
  self.cache_config = {
@@ -58,7 +58,16 @@ class EfficientContextManager:
58
  "compression": "gzip",
59
  "eviction_policy": "LRU"
60
  }
61
- self.db_path = "sessions.db"
 
 
 
 
 
 
 
 
 
62
  self.llm_router = llm_router # For generating context summaries
63
  logger.info(f"Initializing ContextManager with DB path: {self.db_path}")
64
  self.transaction_manager = TransactionManager(self.db_path)
 
49
  conn.close()
50
 
51
  class EfficientContextManager:
52
+ def __init__(self, llm_router=None, db_path=None):
53
  self.session_cache = {} # In-memory for active sessions
54
  self._session_cache = {} # Enhanced in-memory cache with timestamps
55
  self.cache_config = {
 
58
  "compression": "gzip",
59
  "eviction_policy": "LRU"
60
  }
61
+ # Use provided db_path or get from settings, fallback to /tmp/sessions.db
62
+ if db_path is None:
63
+ try:
64
+ from src.config import settings
65
+ db_path = settings.db_path
66
+ except (ImportError, AttributeError):
67
+ # Fallback to writable location in containers
68
+ import os
69
+ db_path = os.getenv("DB_PATH", "/tmp/sessions.db")
70
+ self.db_path = db_path
71
  self.llm_router = llm_router # For generating context summaries
72
  logger.info(f"Initializing ContextManager with DB path: {self.db_path}")
73
  self.transaction_manager = TransactionManager(self.db_path)
src/llm_router.py CHANGED
@@ -36,7 +36,7 @@ class LLMRouter:
36
  base_url = zero_gpu_config.get("base_url", os.getenv("ZERO_GPU_API_URL", "https://bm9njt1ypzvuqw-8000.proxy.runpod.net"))
37
  admin_email = zero_gpu_config.get("admin_email", os.getenv("ZERO_GPU_ADMIN_EMAIL", ""))
38
  admin_password = zero_gpu_config.get("admin_password", os.getenv("ZERO_GPU_ADMIN_PASSWORD", ""))
39
- db_path = zero_gpu_config.get("db_path", os.getenv("DB_PATH", "sessions.db"))
40
 
41
  if admin_email and admin_password:
42
  self.zero_gpu_user_manager = ZeroGPUUserManager(
 
36
  base_url = zero_gpu_config.get("base_url", os.getenv("ZERO_GPU_API_URL", "https://bm9njt1ypzvuqw-8000.proxy.runpod.net"))
37
  admin_email = zero_gpu_config.get("admin_email", os.getenv("ZERO_GPU_ADMIN_EMAIL", ""))
38
  admin_password = zero_gpu_config.get("admin_password", os.getenv("ZERO_GPU_ADMIN_PASSWORD", ""))
39
+ db_path = zero_gpu_config.get("db_path", os.getenv("DB_PATH", "/tmp/sessions.db"))
40
 
41
  if admin_email and admin_password:
42
  self.zero_gpu_user_manager = ZeroGPUUserManager(
zero_gpu_user_manager.py CHANGED
@@ -17,7 +17,7 @@ logger = logging.getLogger(__name__)
17
  class ZeroGPUUserManager:
18
  """Manages per-user ZeroGPU API accounts with automatic registration and token management"""
19
 
20
- def __init__(self, base_url: str, admin_email: str, admin_password: str, db_path: str = "sessions.db"):
21
  """
22
  Initialize user manager
23
 
 
17
  class ZeroGPUUserManager:
18
  """Manages per-user ZeroGPU API accounts with automatic registration and token management"""
19
 
20
+ def __init__(self, base_url: str, admin_email: str, admin_password: str, db_path: str = "/tmp/sessions.db"):
21
  """
22
  Initialize user manager
23