from huggingface_hub import model_info PREFERRED_PROVIDERS = ["sambanova", "novita"] def filter_providers(providers): """Filter providers to only include preferred ones.""" return [provider for provider in providers if provider in PREFERRED_PROVIDERS] def prioritize_providers(providers): """Prioritize preferred providers, keeping all others.""" preferred = [provider for provider in providers if provider in PREFERRED_PROVIDERS] non_preferred = [provider for provider in providers if provider not in PREFERRED_PROVIDERS] return preferred + non_preferred def get_model_providers(models, prioritize=True): """Get model providers, optionally prioritizing preferred ones.""" results = [] for model_name in models: try: info = model_info(model_name, expand="inferenceProviderMapping") if hasattr(info, "inference_provider_mapping"): providers = info.inference_provider_mapping.keys() if prioritize: providers = prioritize_providers(providers) else: providers = filter_providers(providers) else: providers = [] results.append((model_name, providers)) except Exception as e: results.append((model_name, [])) return results if __name__ == "__main__": example_models = [ "Qwen/Qwen2.5-72B-Instruct", "meta-llama/Llama-3.3-70B-Instruct", "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", "Qwen/QwQ-32B", "mistralai/Mistral-Small-24B-Instruct-2501" ] results = get_model_providers(example_models, prioritize=True) print(results)