MCPcopy
hub / github.com/AsyncFuncAI/deepwiki-open / get_model_config

Function get_model_config

api/config.py:365–418  ·  view source on GitHub ↗

Get configuration for the specified provider and model Parameters: provider (str): Model provider ('google', 'openai', 'openrouter', 'ollama', 'bedrock') model (str): Model name, or None to use default model Returns: dict: Configuration containing model_client,

(provider="google", model=None)

Source from the content-addressed store, hash-verified

363
364
365def get_model_config(provider="google", model=None):
366 """
367 Get configuration for the specified provider and model
368
369 Parameters:
370 provider (str): Model provider ('google', 'openai', 'openrouter', 'ollama', 'bedrock')
371 model (str): Model name, or None to use default model
372
373 Returns:
374 dict: Configuration containing model_client, model and other parameters
375 """
376 # Get provider configuration
377 if "providers" not in configs:
378 raise ValueError("Provider configuration not loaded")
379
380 provider_config = configs["providers"].get(provider)
381 if not provider_config:
382 raise ValueError(f"Configuration for provider '{provider}' not found")
383
384 model_client = provider_config.get("model_client")
385 if not model_client:
386 raise ValueError(f"Model client not specified for provider '{provider}'")
387
388 # If model not provided, use default model for the provider
389 if not model:
390 model = provider_config.get("default_model")
391 if not model:
392 raise ValueError(f"No default model specified for provider '{provider}'")
393
394 # Get model parameters (if present)
395 model_params = {}
396 if model in provider_config.get("models", {}):
397 model_params = provider_config["models"][model]
398 else:
399 default_model = provider_config.get("default_model")
400 model_params = provider_config["models"][default_model]
401
402 # Prepare base configuration
403 result = {
404 "model_client": model_client,
405 }
406
407 # Provider-specific adjustments
408 if provider == "ollama":
409 # Ollama uses a slightly different parameter structure
410 if "options" in model_params:
411 result["model_kwargs"] = {"model": model, **model_params["options"]}
412 else:
413 result["model_kwargs"] = {"model": model}
414 else:
415 # Standard structure for other providers
416 result["model_kwargs"] = {"model": model, **model_params}
417
418 return result

Callers 4

handle_websocket_chatFunction · 0.90
__init__Method · 0.90
chat_completions_streamFunction · 0.90
response_streamFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected