From 0288e32de9aa77f664b01d340a66855cb3a4d376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Thu, 27 Nov 2025 13:32:05 +0100 Subject: [PATCH] Fix relative path resolution for models.yaml config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- main.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 68fcd38..d412677 100644 --- a/main.py +++ b/main.py @@ -3,11 +3,18 @@ import asyncio import logging +import os import sys 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 -sys.path.insert(0, str(Path(__file__).parent)) +sys.path.insert(0, str(PROJECT_ROOT)) from config.settings import get_settings from src.core.gpu_manager import GPUMemoryManager @@ -50,8 +57,13 @@ async def initialize_services(): # Initialize 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( - config_path=settings.models_config, + config_path=config_path, gpu_manager=gpu_manager, max_cached_models=settings.max_loaded_models, idle_timeout_minutes=settings.idle_unload_minutes, @@ -61,6 +73,12 @@ async def initialize_services(): logger.info("Registering model adapters...") 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 logger.info("Initializing services...") generation_service = GenerationService(