def get_model_settings(llm_model: str, tools=None):
    """Get the appropriate model settings based on the model type."""
    # If no tools are provided, no model settings are needed
    if not tools:
        return None
    
    # Get model info from registry
    model_info = get_model_registry_entry(llm_model)
    if not model_info:
        return None

    # Filter out ComputerUse tools if model doesn't support computer_use capability
    filtered_tools = []
    for tool in tools:
        if "ComputerUse" in tool and not has_capability(llm_model, "computer_use"):
            continue
        filtered_tools.append(tool)
    
    # If no tools remain after filtering, return None
    if not filtered_tools:
        return None

    # Special handling for OpenAI models that don't support parallel tool calls
    if model_info["provider"] == "openai" and model_info["model_name"] in OPENAI_NON_PARALLEL_MODELS:
        return OpenAIModelSettings()
    
    # For all other models, return provider settings
    provider = model_info["provider"]
    if provider in MODEL_SETTINGS:
        return MODEL_SETTINGS[provider]
    
    # Log when no settings match is found
    print(f"Warning: No model settings found for {llm_model}")
    return None
Get the appropriate model settings based on the model type.
src/upsonic/model_registry.py