Spaces:
Running
Running
| import json | |
| import os | |
| from pathlib import Path | |
| from typing import Dict, Any, Optional | |
| def load_model_configs() -> Dict[str, Any]: | |
| """Load all model configurations from JSON file""" | |
| config_path = Path(__file__).parent.parent / "multimodel_configs" / "models.json" | |
| with open(config_path, 'r') as f: | |
| return json.load(f) | |
| def get_image_to_image_models() -> Dict[str, Any]: | |
| """Get only models that support image input""" | |
| models = load_model_configs() | |
| return {k: v for k, v in models.items() if v.get('supports_image_input', False)} | |
| def get_ui_parameters(model_name: str) -> Dict[str, Any]: | |
| """Get only parameters that should be shown in UI""" | |
| models = load_model_configs() | |
| if model_name not in models: | |
| return {} | |
| ui_params = {} | |
| for param_name, param_config in models[model_name].get('parameters', {}).items(): | |
| if param_config.get('show_in_ui', True): | |
| ui_params[param_name] = param_config | |
| return ui_params | |
| def get_all_parameters(model_name: str, ui_params: Optional[Dict] = None) -> Dict[str, Any]: | |
| """Get all parameters with defaults for API call""" | |
| models = load_model_configs() | |
| if model_name not in models: | |
| return {} | |
| all_params = {} | |
| for param_name, param_config in models[model_name].get('parameters', {}).items(): | |
| if ui_params and param_name in ui_params: | |
| # Use user-selected value | |
| all_params[param_name] = ui_params[param_name] | |
| else: | |
| # Use default value | |
| all_params[param_name] = param_config.get('default') | |
| return all_params | |
| def get_model_display_name(model_name: str) -> str: | |
| """Get display name for model""" | |
| models = load_model_configs() | |
| return models.get(model_name, {}).get('display_name', model_name) | |
| def is_gpt_model(model_name: str) -> bool: | |
| """Check if model is GPT default""" | |
| return model_name == "gpt_default" | |