mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-23 06:09:40 +00:00
fix: remove disabled providers from model dump
currently when running `llama stack run --template starter...` the __disabled__ providers, their models, etc are printed alongside the enabled ones making the output really confusing in server.py add a utility `remove_disabled_providers` which post-processes the model_dump output to remove any dict with `provider_id: __disabled__` Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
parent
d64e096c5f
commit
fe6d4795e9
2 changed files with 24 additions and 4 deletions
|
|
@ -445,9 +445,7 @@ def main(args: argparse.Namespace | None = None):
|
||||||
# now that the logger is initialized, print the line about which type of config we are using.
|
# now that the logger is initialized, print the line about which type of config we are using.
|
||||||
logger.info(log_line)
|
logger.info(log_line)
|
||||||
|
|
||||||
logger.info("Run configuration:")
|
_log_run_config(run_config=config)
|
||||||
safe_config = redact_sensitive_fields(config.model_dump(mode="json"))
|
|
||||||
logger.info(yaml.dump(safe_config, indent=2))
|
|
||||||
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
lifespan=lifespan,
|
lifespan=lifespan,
|
||||||
|
|
@ -594,6 +592,14 @@ def main(args: argparse.Namespace | None = None):
|
||||||
uvicorn.run(**uvicorn_config)
|
uvicorn.run(**uvicorn_config)
|
||||||
|
|
||||||
|
|
||||||
|
def _log_run_config(run_config: StackRunConfig):
|
||||||
|
"""Logs the run config with redacted fields and disabled providers removed."""
|
||||||
|
logger.info("Run configuration:")
|
||||||
|
safe_config = redact_sensitive_fields(run_config.model_dump(mode="json"))
|
||||||
|
clean_config = remove_disabled_providers(safe_config)
|
||||||
|
logger.info(yaml.dump(clean_config, indent=2))
|
||||||
|
|
||||||
|
|
||||||
def extract_path_params(route: str) -> list[str]:
|
def extract_path_params(route: str) -> list[str]:
|
||||||
segments = route.split("/")
|
segments = route.split("/")
|
||||||
params = [seg[1:-1] for seg in segments if seg.startswith("{") and seg.endswith("}")]
|
params = [seg[1:-1] for seg in segments if seg.startswith("{") and seg.endswith("}")]
|
||||||
|
|
@ -602,5 +608,20 @@ def extract_path_params(route: str) -> list[str]:
|
||||||
return params
|
return params
|
||||||
|
|
||||||
|
|
||||||
|
def remove_disabled_providers(obj):
|
||||||
|
if isinstance(obj, dict):
|
||||||
|
if (
|
||||||
|
obj.get("provider_id") == "__disabled__"
|
||||||
|
or obj.get("shield_id") == "__disabled__"
|
||||||
|
or obj.get("provider_model_id") == "__disabled__"
|
||||||
|
):
|
||||||
|
return None
|
||||||
|
return {k: v for k, v in ((k, remove_disabled_providers(v)) for k, v in obj.items()) if v is not None}
|
||||||
|
elif isinstance(obj, list):
|
||||||
|
return [item for item in (remove_disabled_providers(i) for i in obj) if item is not None]
|
||||||
|
else:
|
||||||
|
return obj
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,6 @@ def replace_env_vars(config: Any, path: str = "") -> Any:
|
||||||
# Create a copy with resolved provider_id but original config
|
# Create a copy with resolved provider_id but original config
|
||||||
disabled_provider = v.copy()
|
disabled_provider = v.copy()
|
||||||
disabled_provider["provider_id"] = resolved_provider_id
|
disabled_provider["provider_id"] = resolved_provider_id
|
||||||
result.append(disabled_provider)
|
|
||||||
continue
|
continue
|
||||||
except EnvVarError:
|
except EnvVarError:
|
||||||
# If we can't resolve the provider_id, continue with normal processing
|
# If we can't resolve the provider_id, continue with normal processing
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue