RyZ commited on
Commit
77f2d58
Β·
1 Parent(s): d852d80

fix: resolve env path and respect dependency overrides in lifespan

Browse files
Files changed (2) hide show
  1. src/interface/api/app.py +4 -2
  2. src/shared/config.py +6 -1
src/interface/api/app.py CHANGED
@@ -80,7 +80,8 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
80
  await create_all_tables()
81
 
82
  # ── 3. Connect broker (best-effort on startup) ────────────────────────────
83
- broker = get_broker()
 
84
  try:
85
  await broker.connect()
86
  logger.info("βœ“ RabbitMQ broker connected.")
@@ -90,7 +91,8 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
90
  )
91
 
92
  # ── 4. Pre-load AI model (best-effort) ────────────────────────────────────
93
- model_service = get_model_service()
 
94
  try:
95
  await model_service.load_model()
96
  logger.info("βœ“ Model service ready: %s", model_service.model_version)
 
80
  await create_all_tables()
81
 
82
  # ── 3. Connect broker (best-effort on startup) ────────────────────────────
83
+ broker_provider = app.dependency_overrides.get(get_broker, get_broker)
84
+ broker = broker_provider()
85
  try:
86
  await broker.connect()
87
  logger.info("βœ“ RabbitMQ broker connected.")
 
91
  )
92
 
93
  # ── 4. Pre-load AI model (best-effort) ────────────────────────────────────
94
+ model_provider = app.dependency_overrides.get(get_model_service, get_model_service)
95
+ model_service = model_provider()
96
  try:
97
  await model_service.load_model()
98
  logger.info("βœ“ Model service ready: %s", model_service.model_version)
src/shared/config.py CHANGED
@@ -30,9 +30,14 @@ if "KAGGLE_KERNEL_RUN_TYPE" in os.environ or os.path.exists("/kaggle"):
30
  except ImportError:
31
  pass
32
 
 
33
  from pydantic import Field, field_validator
34
  from pydantic_settings import BaseSettings, SettingsConfigDict
35
 
 
 
 
 
36
 
37
  class Settings(BaseSettings):
38
  """
@@ -45,7 +50,7 @@ class Settings(BaseSettings):
45
  """
46
 
47
  model_config = SettingsConfigDict(
48
- env_file=".env",
49
  env_file_encoding="utf-8",
50
  case_sensitive=False,
51
  extra="ignore",
 
30
  except ImportError:
31
  pass
32
 
33
+ from pathlib import Path
34
  from pydantic import Field, field_validator
35
  from pydantic_settings import BaseSettings, SettingsConfigDict
36
 
37
+ # Resolve absolute path to the .env file in the project root
38
+ _ROOT_DIR = Path(__file__).resolve().parent.parent.parent
39
+ _ENV_FILE = _ROOT_DIR / ".env"
40
+
41
 
42
  class Settings(BaseSettings):
43
  """
 
50
  """
51
 
52
  model_config = SettingsConfigDict(
53
+ env_file=str(_ENV_FILE),
54
  env_file_encoding="utf-8",
55
  case_sensitive=False,
56
  extra="ignore",