diff --git a/cli/planoai/config_generator.py b/cli/planoai/config_generator.py index d6dd37f1..c56a4fdb 100644 --- a/cli/planoai/config_generator.py +++ b/cli/planoai/config_generator.py @@ -248,7 +248,21 @@ def validate_and_render_schema(): f"Must provide base_url and provider_interface for unsupported provider {provider} for model {model_name}. Supported providers are: {', '.join(SUPPORTED_PROVIDERS)}" ) provider = model_provider.get("provider_interface", None) - elif model_provider.get("provider_interface", None) is not None: + elif is_wildcard and provider not in SUPPORTED_PROVIDERS: + # Wildcard models with unsupported providers require base_url and provider_interface + if ( + model_provider.get("base_url", None) is None + or model_provider.get("provider_interface", None) is None + ): + raise Exception( + f"Must provide base_url and provider_interface for unsupported provider {provider} for wildcard model {model_name}. Supported providers are: {', '.join(SUPPORTED_PROVIDERS)}" + ) + provider = model_provider.get("provider_interface", None) + elif ( + provider in SUPPORTED_PROVIDERS + and model_provider.get("provider_interface", None) is not None + ): + # For supported providers, provider_interface should not be manually set raise Exception( f"Please provide provider interface as part of model name {model_name} using the format /. For example, use 'openai/gpt-3.5-turbo' instead of 'gpt-3.5-turbo' " ) diff --git a/config/supervisord.conf b/config/supervisord.conf index 999e761e..812cbc0b 100644 --- a/config/supervisord.conf +++ b/config/supervisord.conf @@ -4,7 +4,7 @@ nodaemon=true [program:brightstaff] command=sh -c "\ envsubst < /app/arch_config_rendered.yaml > /app/arch_config_rendered.env_sub.yaml && \ - RUST_LOG=debug \ + RUST_LOG=info \ ARCH_CONFIG_PATH_RENDERED=/app/arch_config_rendered.env_sub.yaml \ /app/brightstaff 2>&1 | \ tee /var/log/brightstaff.log | \ diff --git a/demos/use_cases/model_alias_routing/config_with_aliases.yaml b/demos/use_cases/model_alias_routing/config_with_aliases.yaml index 00b72a6d..891fa4fe 100644 --- a/demos/use_cases/model_alias_routing/config_with_aliases.yaml +++ b/demos/use_cases/model_alias_routing/config_with_aliases.yaml @@ -23,7 +23,13 @@ llm_providers: - model: openai/gpt-4o access_key: $OPENAI_API_KEY - # Anthropic Models + - model: openai/* + access_key: $OPENAI_API_KEY + + # Anthropic - support all Claude models + - model: anthropic/* + access_key: $ANTHROPIC_API_KEY + - model: anthropic/claude-sonnet-4-20250514 access_key: $ANTHROPIC_API_KEY diff --git a/demos/use_cases/wildcard_providers/config.yaml b/demos/use_cases/wildcard_providers/config.yaml deleted file mode 100644 index eef9807a..00000000 --- a/demos/use_cases/wildcard_providers/config.yaml +++ /dev/null @@ -1,31 +0,0 @@ -version: v0.3.0 - -listeners: - # Model listener for direct LLM access - - type: model - name: llms - address: 0.0.0.0 - port: 12000 - -model_providers: - # OpenAI - support all models via wildcard - - model: openai/* - access_key: $OPENAI_API_KEY - - # Anthropic - support all Claude models - - model: anthropic/* - access_key: $ANTHROPIC_API_KEY - - - model: anthropic/claude-sonnet-4-20250514 - access_key: $ANTHROPIC_API_KEY - routing_preferences: - - name: code generation - description: generating new code snippets, functions, or boilerplate based on user prompts or requirements - - - model: xai/* - access_key: $GROK_API_KEY - - # Custom internal LLM provider - # Note: Requires base_url and provider_interface for unknown providers - - model: ollama/* - base_url: https://llm.internal.company.com