Fix relative path resolution for models.yaml config

- Change working directory to PROJECT_ROOT on startup
- Resolve models_config path relative to PROJECT_ROOT
- Add debug logging for config path and available models
- This fixes "Unknown model" error when running from different directories

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-27 13:32:05 +01:00
parent 503b3ce473
commit 0288e32de9

22
main.py
View File

@@ -3,11 +3,18 @@
import asyncio import asyncio
import logging import logging
import os
import sys import sys
from pathlib import Path from pathlib import Path
# Get project root directory
PROJECT_ROOT = Path(__file__).parent.absolute()
# Change to project root to ensure relative paths work
os.chdir(PROJECT_ROOT)
# Add project root to path # Add project root to path
sys.path.insert(0, str(Path(__file__).parent)) sys.path.insert(0, str(PROJECT_ROOT))
from config.settings import get_settings from config.settings import get_settings
from src.core.gpu_manager import GPUMemoryManager from src.core.gpu_manager import GPUMemoryManager
@@ -50,8 +57,13 @@ async def initialize_services():
# Initialize model registry # Initialize model registry
logger.info("Initializing model registry...") logger.info("Initializing model registry...")
config_path = Path(settings.models_config)
if not config_path.is_absolute():
config_path = PROJECT_ROOT / config_path
logger.info(f"Models config path: {config_path} (exists: {config_path.exists()})")
model_registry = ModelRegistry( model_registry = ModelRegistry(
config_path=settings.models_config, config_path=config_path,
gpu_manager=gpu_manager, gpu_manager=gpu_manager,
max_cached_models=settings.max_loaded_models, max_cached_models=settings.max_loaded_models,
idle_timeout_minutes=settings.idle_unload_minutes, idle_timeout_minutes=settings.idle_unload_minutes,
@@ -61,6 +73,12 @@ async def initialize_services():
logger.info("Registering model adapters...") logger.info("Registering model adapters...")
register_all_adapters(model_registry) register_all_adapters(model_registry)
# Log available models for debugging
available_models = model_registry.list_models()
logger.info(f"Available models: {len(available_models)}")
for model in available_models[:5]: # Log first 5
logger.info(f" - {model['model_id']}/{model['variant']} (has_adapter: {model['has_adapter']})")
# Initialize services # Initialize services
logger.info("Initializing services...") logger.info("Initializing services...")
generation_service = GenerationService( generation_service = GenerationService(