Spaces:
Running
Running
File size: 1,943 Bytes
846ac2c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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"
|