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"