Repository: meta-llama/llama-stack
File: llama_stack/templates/starter/starter.py (Python)

Code before:
                ),
            ],
            VLLMInferenceAdapterConfig.sample_run_config(
                url="${env.VLLM_URL:=http://localhost:8000/v1}",
            ),
        ),
    ]
    inference_providers = []
    available_models = {}
    for provider_id, model_entries, config in providers:
        inference_providers.append(
            Provider(
                provider_id=provider_id,
                provider_type=f"remote::{provider_id}",
                config=config,
            )
        )
        available_models[provider_id] = model_entries
    return inference_providers, available_models


def get_distribution_template() -> DistributionTemplate:
    inference_providers, available_models = get_inference_providers()
    providers = {
        "inference": ([p.provider_type for p in inference_providers] + ["inline::sentence-transformers"]),
        "vector_io": ["inline::faiss", "inline::sqlite-vec", "inline::milvus", "remote::chromadb", "remote::pgvector"],
        "files": ["inline::localfs"],
        "safety": ["inline::llama-guard"],
        "agents": ["inline::meta-reference"],
        "telemetry": ["inline::meta-reference"],
        "eval": ["inline::meta-reference"],
        "datasetio": ["remote::huggingface", "inline::localfs"],
        "scoring": ["inline::basic", "inline::llm-as-judge", "inline::braintrust"],
        "tool_runtime": [
            "remote::brave-search",
            "remote::tavily-search",
            "inline::rag-runtime",
            "remote::model-context-protocol",
        ],
    }
    name = "starter"

    vector_io_providers = [
        Provider(
            provider_id="faiss",
            provider_type="inline::faiss",
            config=FaissVectorIOConfig.sample_run_config(f"~/.llama/distributions/{name}"),
        ),
        Provider(
            provider_id="${env.ENABLE_SQLITE_VEC:+sqlite-vec}",
            provider_type="inline::sqlite-vec",

Review comment (suggestion):
```suggestion
        "vector_io": ([p.provider_type for p in vector_io_providers]),
```

And move up `vector_io_providers` and `name`.

Code after:
        env_var = f"ENABLE_{provider_type.upper().replace('-', '_').replace('::', '_')}"
        model_entries = _get_model_entries_for_provider(provider_type)
        config = _get_config_for_provider(provider_spec)
        providers.append(
            (
                f"${{env.{env_var}:=__disabled__}}",
                provider_type,
                model_entries,
                config,
            )
        )
        available_models[f"${{env.{env_var}:=__disabled__}}"] = model_entries

    inference_providers = []
    for provider_id, provider_type, model_entries, config in providers:
        inference_providers.append(
            Provider(
                provider_id=provider_id,
                provider_type=f"remote::{provider_type}",
                config=config,
            )
        )
        available_models[provider_id] = model_entries
    return inference_providers, available_models


def get_distribution_template() -> DistributionTemplate:
    remote_inference_providers, available_models = get_remote_inference_providers()

    name = "starter"

    vector_io_providers = [
        Provider(
            provider_id="${env.ENABLE_FAISS:=faiss}",
            provider_type="inline::faiss",
            config=FaissVectorIOConfig.sample_run_config(f"~/.llama/distributions/{name}"),
        ),
        Provider(
            provider_id="${env.ENABLE_SQLITE_VEC:=__disabled__}",
            provider_type="inline::sqlite-vec",
            config=SQLiteVectorIOConfig.sample_run_config(f"~/.llama/distributions/{name}"),
        ),
        Provider(
            provider_id="${env.ENABLE_MILVUS:=__disabled__}",
            provider_type="inline::milvus",
            config=MilvusVectorIOConfig.sample_run_config(f"~/.llama/distributions/{name}"),
        ),
        Provider(
            provider_id="${env.ENABLE_CHROMADB:=__disabled__}",
            provider_type="remote::chromadb",
            config=ChromaVectorIOConfig.sample_run_config(url="${env.CHROMADB_URL:=}"),