diff --git a/docs/_static/llama-stack-spec.html b/docs/_static/llama-stack-spec.html
index ae9ad5d4c..eb31e634a 100644
--- a/docs/_static/llama-stack-spec.html
+++ b/docs/_static/llama-stack-spec.html
@@ -4946,6 +4946,74 @@
}
}
},
+ "/v1/providers/{api}/{provider_id}/{provider_type}": {
+ "post": {
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ProviderInfo"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/BadRequest400"
+ },
+ "429": {
+ "$ref": "#/components/responses/TooManyRequests429"
+ },
+ "500": {
+ "$ref": "#/components/responses/InternalServerError500"
+ },
+ "default": {
+ "$ref": "#/components/responses/DefaultError"
+ }
+ },
+ "tags": [
+ "Providers"
+ ],
+ "description": "",
+ "parameters": [
+ {
+ "name": "api",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "provider_id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "provider_type",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UpdateProviderRequest"
+ }
+ }
+ },
+ "required": true
+ }
+ }
+ },
"/v1/version": {
"get": {
"responses": {
@@ -16101,6 +16169,41 @@
"title": "SyntheticDataGenerationResponse",
"description": "Response from the synthetic data generation. Batch of (prompt, response, score) tuples that pass the threshold."
},
+ "UpdateProviderRequest": {
+ "type": "object",
+ "properties": {
+ "config": {
+ "type": "object",
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "array"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "config"
+ ],
+ "title": "UpdateProviderRequest"
+ },
"VersionInfo": {
"type": "object",
"properties": {
diff --git a/docs/_static/llama-stack-spec.yaml b/docs/_static/llama-stack-spec.yaml
index 48cefe12b..3c4e9c865 100644
--- a/docs/_static/llama-stack-spec.yaml
+++ b/docs/_static/llama-stack-spec.yaml
@@ -3484,6 +3484,50 @@ paths:
schema:
$ref: '#/components/schemas/SyntheticDataGenerateRequest'
required: true
+ /v1/providers/{api}/{provider_id}/{provider_type}:
+ post:
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProviderInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest400'
+ '429':
+ $ref: >-
+ #/components/responses/TooManyRequests429
+ '500':
+ $ref: >-
+ #/components/responses/InternalServerError500
+ default:
+ $ref: '#/components/responses/DefaultError'
+ tags:
+ - Providers
+ description: ''
+ parameters:
+ - name: api
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: provider_id
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: provider_type
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateProviderRequest'
+ required: true
/v1/version:
get:
responses:
@@ -11234,6 +11278,23 @@ components:
description: >-
Response from the synthetic data generation. Batch of (prompt, response, score)
tuples that pass the threshold.
+ UpdateProviderRequest:
+ type: object
+ properties:
+ config:
+ type: object
+ additionalProperties:
+ oneOf:
+ - type: 'null'
+ - type: boolean
+ - type: number
+ - type: string
+ - type: array
+ - type: object
+ additionalProperties: false
+ required:
+ - config
+ title: UpdateProviderRequest
VersionInfo:
type: object
properties:
diff --git a/llama_stack/apis/providers/providers.py b/llama_stack/apis/providers/providers.py
index 4bc977bf1..0f29a6e05 100644
--- a/llama_stack/apis/providers/providers.py
+++ b/llama_stack/apis/providers/providers.py
@@ -47,3 +47,8 @@ class Providers(Protocol):
:returns: A ProviderInfo object containing the provider's details.
"""
...
+
+ @webmethod(route="/providers/{api}/{provider_id}/{provider_type}", method="PUT")
+ async def update_provider(
+ self, api: str, provider_id: str, provider_type: str, config: dict[str, Any]
+ ) -> ProviderInfo: ...
diff --git a/llama_stack/distribution/datatypes.py b/llama_stack/distribution/datatypes.py
index 5e48ac0ad..1118bf82f 100644
--- a/llama_stack/distribution/datatypes.py
+++ b/llama_stack/distribution/datatypes.py
@@ -151,6 +151,7 @@ class Provider(BaseModel):
provider_id: str | None
provider_type: str
config: dict[str, Any]
+ immutable: bool = False
class LoggingConfig(BaseModel):
diff --git a/llama_stack/distribution/library_client.py b/llama_stack/distribution/library_client.py
index cebfabba5..5a59706ac 100644
--- a/llama_stack/distribution/library_client.py
+++ b/llama_stack/distribution/library_client.py
@@ -25,6 +25,7 @@ from llama_stack_client import (
AsyncStream,
LlamaStackClient,
)
+from llama_stack_client.types import provider_info
from pydantic import BaseModel, TypeAdapter
from rich.console import Console
from termcolor import cprint
@@ -293,6 +294,22 @@ class AsyncLlamaStackAsLibraryClient(AsyncLlamaStackClient):
cast_to=cast_to,
options=options,
)
+ # Check if response is of a certain type
+ # this indicates we have done a provider update
+ if (
+ isinstance(response, provider_info.ProviderInfo)
+ and hasattr(response, "config")
+ and options.method.lower() == "put"
+ ):
+ # patch in the new provider config
+ for api, providers in self.config.providers.items():
+ if api != response.api:
+ continue
+ for prov in providers:
+ if prov.provider_id == response.provider_id:
+ prov.config = response.config
+ break
+ await self.initialize()
return response
async def _call_non_streaming(
diff --git a/llama_stack/distribution/providers.py b/llama_stack/distribution/providers.py
index 1d9c1f4e9..75599f9ed 100644
--- a/llama_stack/distribution/providers.py
+++ b/llama_stack/distribution/providers.py
@@ -5,6 +5,7 @@
# the root directory of this source tree.
import asyncio
+import copy
from typing import Any
from pydantic import BaseModel
@@ -13,7 +14,7 @@ from llama_stack.apis.providers import ListProvidersResponse, ProviderInfo, Prov
from llama_stack.log import get_logger
from llama_stack.providers.datatypes import HealthResponse, HealthStatus
-from .datatypes import StackRunConfig
+from .datatypes import Provider, StackRunConfig
from .utils.config import redact_sensitive_fields
logger = get_logger(name=__name__, category="core")
@@ -129,3 +130,89 @@ class ProviderImpl(Providers):
providers_health[api_name] = health_response
return providers_health
+
+ async def update_provider(
+ self, api: str, provider_id: str, provider_type: str, config: dict[str, Any]
+ ) -> ProviderInfo:
+ # config = ast.literal_eval(provider_request.config)
+ prov = Provider(
+ provider_id=provider_id,
+ provider_type=provider_type,
+ config=config,
+ )
+ assert prov.provider_id is not None
+ existing_provider = None
+ # if the provider isn't there or the API is invalid, we should not continue
+ for prov_api, providers in self.config.run_config.providers.items():
+ if prov_api != api:
+ continue
+ for p in providers:
+ # the provider needs to be mutable for us to update its config
+ if p.provider_id == provider_id:
+ if p.immutable:
+ raise ValueError(f"Provider {provider_id} is immutable, you can only update mutable providers.")
+ existing_provider = p
+ break
+ if existing_provider is not None:
+ break
+
+ if existing_provider is None:
+ raise ValueError(f"Provider {provider_id} not found, you can only update already registered providers.")
+
+ new_config = self.merge_providers(existing_provider, prov)
+ existing_provider.config = new_config
+ providers_health = await self.get_providers_health()
+ # takes a single provider, validates its in the registry
+ # if it is, merge the provider config with the existing one
+ ret = ProviderInfo(
+ api=api,
+ provider_id=prov.provider_id,
+ provider_type=prov.provider_type,
+ config=new_config,
+ health=providers_health.get(api, {}).get(
+ p.provider_id,
+ HealthResponse(status=HealthStatus.NOT_IMPLEMENTED, message="Provider does not implement health check"),
+ ),
+ )
+
+ return ret
+
+ def merge_dicts(self, base: dict[str, Any], overrides: dict[str, Any]) -> dict[str, Any]:
+ """Recursively merges `overrides` into `base`, replacing only specified keys."""
+
+ merged = copy.deepcopy(base) # Preserve original dict
+ for key, value in overrides.items():
+ if isinstance(value, dict) and isinstance(merged.get(key), dict):
+ # Recursively merge if both are dictionaries
+ merged[key] = self.merge_dicts(merged[key], value)
+ else:
+ # Otherwise, directly override
+ merged[key] = value
+
+ return merged
+
+ def merge_configs(
+ self, global_config: dict[str, list[Provider]], new_config: dict[str, list[Provider]]
+ ) -> dict[str, list[Provider]]:
+ merged_config = copy.deepcopy(global_config) # Preserve original structure
+
+ for key, new_providers in new_config.items():
+ if key in merged_config:
+ existing_providers = {p.provider_id: p for p in merged_config[key]}
+
+ for new_provider in new_providers:
+ if new_provider.provider_id in existing_providers:
+ # Override settings of existing provider
+ existing = existing_providers[new_provider.provider_id]
+ existing.config = self.merge_dicts(existing.config, new_provider.config)
+ else:
+ # Append new provider
+ merged_config[key].append(new_provider)
+ else:
+ # Add new category entirely
+ merged_config[key] = new_providers
+
+ return merged_config
+
+ def merge_providers(self, current_provider: Provider, new_provider: Provider) -> dict[str, Any]:
+ return self.merge_dicts(current_provider.config, new_provider.config)
diff --git a/llama_stack/distribution/server/routes.py b/llama_stack/distribution/server/routes.py
index ea66fec5a..ee059a4a6 100644
--- a/llama_stack/distribution/server/routes.py
+++ b/llama_stack/distribution/server/routes.py
@@ -62,6 +62,8 @@ def get_all_api_routes() -> dict[Api, list[Route]]:
http_method = hdrs.METH_GET
elif webmethod.method == hdrs.METH_DELETE:
http_method = hdrs.METH_DELETE
+ elif webmethod.method == hdrs.METH_PUT:
+ http_method = hdrs.METH_PUT
else:
http_method = hdrs.METH_POST
routes.append(
diff --git a/llama_stack/distribution/server/server.py b/llama_stack/distribution/server/server.py
index 681ab320d..2338fc4b1 100644
--- a/llama_stack/distribution/server/server.py
+++ b/llama_stack/distribution/server/server.py
@@ -28,8 +28,10 @@ from fastapi import Body, FastAPI, HTTPException, Request
from fastapi import Path as FastapiPath
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse, StreamingResponse
+from fastapi.routing import APIRoute
from openai import BadRequestError
from pydantic import BaseModel, ValidationError
+from starlette.types import Message
from llama_stack.apis.common.responses import PaginatedResponse
from llama_stack.distribution.access_control.access_control import AccessDeniedError
@@ -274,6 +276,84 @@ def create_dynamic_typed_route(func: Any, method: str, route: str) -> Callable:
return route_handler
+class RequestMiddleware:
+ def __init__(self, app, api, stack_run_config):
+ self.app = app
+ self.api = api
+ self.stack_run_config = stack_run_config
+
+ async def __call__(self, scope, receive, send):
+ import json
+
+ from fastapi import Request
+
+ from llama_stack.apis.providers import ProviderInfo
+
+ # from llama_stack.stack_utils import construct_stack # or wherever you define it
+ if scope["type"] != "http":
+ return await self.app(scope, receive, send)
+
+ request = Request(scope, receive)
+ method = request.method
+ path = request.url.path
+
+ # Only intercept PUT /v1/providers/update
+ if method == "PUT" and "/v1/providers" in path:
+ # Clone the request body so FastAPI doesn't break
+
+ body = await request.body()
+ request = Request(scope, receive_from_body(body))
+
+ response_body = b""
+ status_code = 500
+ headers = []
+
+ async def send_wrapper(message: Message):
+ nonlocal response_body, status_code, headers
+
+ if message["type"] == "http.response.start":
+ status_code = message["status"]
+ headers = message.get("headers", [])
+
+ elif message["type"] == "http.response.body":
+ response_body += message.get("body", b"")
+
+ if not message.get("more_body", False):
+ # Rebuild stack
+ try:
+ # Parse the request body (not response)
+ payload = json.loads(response_body.decode("utf-8"))
+ new_provider = ProviderInfo(**payload)
+ for api, providers in self.stack_run_config.providers.items():
+ if api != new_provider.api:
+ continue
+ for prov in providers:
+ if prov.provider_id == new_provider.provider_id:
+ prov.config = new_provider.config
+ break
+
+ _, impls = await construct(app=self.api, config=self.stack_run_config, reconstruct=True)
+ self.api.__llama_stack_impls__ = impls
+ print("✅ Stack rebuilt and updated.")
+ except Exception as e:
+ print(f"⚠️ Failed to rebuild stack: {e}")
+
+ await send(message)
+
+ return await self.app(scope, request.receive, send_wrapper)
+
+ # All other requests go through normally
+ return await self.app(scope, receive, send)
+
+
+# Helper to inject the saved body back into the request
+def receive_from_body(body: bytes):
+ async def receive() -> Message:
+ return {"type": "http.request", "body": body, "more_body": False}
+
+ return receive
+
+
class TracingMiddleware:
def __init__(self, app, impls):
self.app = app
@@ -487,67 +567,15 @@ def main(args: argparse.Namespace | None = None):
window_seconds=window_seconds,
)
- try:
- impls = asyncio.run(construct_stack(config))
- except InvalidProviderError as e:
- logger.error(f"Error: {str(e)}")
- sys.exit(1)
-
- if Api.telemetry in impls:
- setup_logger(impls[Api.telemetry])
- else:
- setup_logger(TelemetryAdapter(TelemetryConfig(), {}))
-
- all_routes = get_all_api_routes()
-
- if config.apis:
- apis_to_serve = set(config.apis)
- else:
- apis_to_serve = set(impls.keys())
-
- for inf in builtin_automatically_routed_apis():
- # if we do not serve the corresponding router API, we should not serve the routing table API
- if inf.router_api.value not in apis_to_serve:
- continue
- apis_to_serve.add(inf.routing_table_api.value)
-
- apis_to_serve.add("inspect")
- apis_to_serve.add("providers")
- for api_str in apis_to_serve:
- api = Api(api_str)
-
- routes = all_routes[api]
- impl = impls[api]
-
- for route in routes:
- if not hasattr(impl, route.name):
- # ideally this should be a typing violation already
- raise ValueError(f"Could not find method {route.name} on {impl}!")
-
- impl_method = getattr(impl, route.name)
- # Filter out HEAD method since it's automatically handled by FastAPI for GET routes
- available_methods = [m for m in route.methods if m != "HEAD"]
- if not available_methods:
- raise ValueError(f"No methods found for {route.name} on {impl}")
- method = available_methods[0]
- logger.debug(f"{method} {route.path}")
-
- with warnings.catch_warnings():
- warnings.filterwarnings("ignore", category=UserWarning, module="pydantic._internal._fields")
- getattr(app, method.lower())(route.path, response_model=None)(
- create_dynamic_typed_route(
- impl_method,
- method.lower(),
- route.path,
- )
- )
-
+ apis_to_serve, impls = asyncio.run(construct(app=app, config=config))
logger.debug(f"serving APIs: {apis_to_serve}")
app.exception_handler(RequestValidationError)(global_exception_handler)
app.exception_handler(Exception)(global_exception_handler)
app.__llama_stack_impls__ = impls
+ # Add the custom middleware
+ app.add_middleware(RequestMiddleware, api=app, stack_run_config=config)
app.add_middleware(TracingMiddleware, impls=impls)
import uvicorn
@@ -597,5 +625,81 @@ def extract_path_params(route: str) -> list[str]:
return params
+async def construct(
+ app: FastAPI, config: StackRunConfig, reconstruct: bool = False
+) -> tuple[set[str] | set[Api], dict[Api, Any]]:
+ try:
+ impls = await construct_stack(config)
+ except InvalidProviderError as e:
+ logger.error(f"Error: {str(e)}")
+ sys.exit(1)
+
+ if Api.telemetry in impls:
+ setup_logger(impls[Api.telemetry])
+ else:
+ setup_logger(TelemetryAdapter(TelemetryConfig(), {}))
+
+ all_routes = get_all_api_routes()
+
+ if config.apis:
+ apis_to_serve = set(config.apis)
+ else:
+ apis_to_serve = set(impls.keys())
+
+ for inf in builtin_automatically_routed_apis():
+ # if we do not serve the corresponding router API, we should not serve the routing table API
+ if inf.router_api.value not in apis_to_serve:
+ continue
+ apis_to_serve.add(inf.routing_table_api.value)
+
+ apis_to_serve.add("inspect")
+ apis_to_serve.add("providers")
+
+ for api_str in apis_to_serve:
+ api = Api(api_str)
+
+ routes = all_routes[api]
+ impl = impls[api]
+ for route in routes:
+ if not hasattr(impl, route.name):
+ # ideally this should be a typing violation already
+ raise ValueError(f"Could not find method {route.name} on {impl}!!")
+
+ impl_method = getattr(impl, route.name)
+
+ # Filter out HEAD method since it's automatically handled by FastAPI for GET routes
+ available_methods = [m for m in route.methods if m != "HEAD"]
+ if not available_methods:
+ raise ValueError(f"No methods found for {route.name} on {impl}")
+ method = available_methods[0]
+ logger.debug(f"{method} {route.path}")
+
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", category=UserWarning, module="pydantic._internal._fields")
+ # Remove old route
+ if reconstruct:
+ app.router.routes = [
+ r for r in app.router.routes if not (r.path == route.path and method.lower() in r.methods)
+ ]
+ new_endpoint = create_dynamic_typed_route(
+ impl_method,
+ method.lower(),
+ route.path, # route.path
+ )
+ getattr(app, method.lower())(route.path, response_model=None)(new_endpoint)
+ if reconstruct:
+ new_route = APIRoute(
+ response_model=None,
+ path=route.path,
+ endpoint=new_endpoint,
+ methods=[method.lower()],
+ name=impl_method.__name__,
+ )
+ # Add new route
+ app.router.routes.append(new_route)
+
+ return apis_to_serve, impls
+
+
if __name__ == "__main__":
main()
diff --git a/llama_stack/templates/bedrock/run.yaml b/llama_stack/templates/bedrock/run.yaml
index 068278c66..a02289b0e 100644
--- a/llama_stack/templates/bedrock/run.yaml
+++ b/llama_stack/templates/bedrock/run.yaml
@@ -15,6 +15,7 @@ providers:
- provider_id: bedrock
provider_type: remote::bedrock
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -22,10 +23,12 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/bedrock}/faiss_store.db
+ immutable: false
safety:
- provider_id: bedrock
provider_type: remote::bedrock
config: {}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -36,6 +39,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/bedrock}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -43,6 +47,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/bedrock}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -50,6 +55,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/bedrock}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -57,40 +63,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/bedrock}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/bedrock}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/bedrock}/registry.db
diff --git a/llama_stack/templates/cerebras/run.yaml b/llama_stack/templates/cerebras/run.yaml
index 305e9a20f..6d5397f62 100644
--- a/llama_stack/templates/cerebras/run.yaml
+++ b/llama_stack/templates/cerebras/run.yaml
@@ -17,14 +17,17 @@ providers:
config:
base_url: https://api.cerebras.ai
api_key: ${env.CEREBRAS_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -32,6 +35,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/cerebras}/faiss_store.db
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +46,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/cerebras}/responses_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,6 +54,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/cerebras}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -56,23 +62,28 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/cerebras}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/cerebras}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -80,20 +91,24 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/cerebras}/trace_store.db
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/cerebras}/registry.db
diff --git a/llama_stack/templates/ci-tests/run.yaml b/llama_stack/templates/ci-tests/run.yaml
index 5a68af3e6..721e66017 100644
--- a/llama_stack/templates/ci-tests/run.yaml
+++ b/llama_stack/templates/ci-tests/run.yaml
@@ -17,19 +17,23 @@ providers:
config:
url: https://api.fireworks.ai/inference/v1
api_key: ${env.FIREWORKS_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: sqlite-vec
provider_type: inline::sqlite-vec
config:
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/sqlite_vec.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -40,6 +44,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +52,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,6 +60,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -61,40 +68,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/registry.db
diff --git a/llama_stack/templates/dell/run-with-safety.yaml b/llama_stack/templates/dell/run-with-safety.yaml
index 1e1ef1ea9..3e8600a73 100644
--- a/llama_stack/templates/dell/run-with-safety.yaml
+++ b/llama_stack/templates/dell/run-with-safety.yaml
@@ -16,23 +16,28 @@ providers:
provider_type: remote::tgi
config:
url: ${env.DEH_URL}
+ immutable: false
- provider_id: tgi1
provider_type: remote::tgi
config:
url: ${env.DEH_SAFETY_URL}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: chromadb
provider_type: remote::chromadb
config:
url: ${env.CHROMA_URL}
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -43,6 +48,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -50,6 +56,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -57,6 +64,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -64,37 +72,45 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/registry.db
diff --git a/llama_stack/templates/dell/run.yaml b/llama_stack/templates/dell/run.yaml
index 6f5c56dd3..7f6d644bc 100644
--- a/llama_stack/templates/dell/run.yaml
+++ b/llama_stack/templates/dell/run.yaml
@@ -16,19 +16,23 @@ providers:
provider_type: remote::tgi
config:
url: ${env.DEH_URL}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: chromadb
provider_type: remote::chromadb
config:
url: ${env.CHROMA_URL}
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -39,6 +43,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -46,6 +51,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -53,6 +59,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -60,37 +67,45 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/registry.db
diff --git a/llama_stack/templates/fireworks/run-with-safety.yaml b/llama_stack/templates/fireworks/run-with-safety.yaml
index 1233e2271..349c467ff 100644
--- a/llama_stack/templates/fireworks/run-with-safety.yaml
+++ b/llama_stack/templates/fireworks/run-with-safety.yaml
@@ -18,9 +18,11 @@ providers:
config:
url: https://api.fireworks.ai/inference/v1
api_key: ${env.FIREWORKS_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -28,16 +30,20 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config: {}
+ immutable: false
- provider_id: llama-guard-vision
provider_type: inline::llama-guard
config: {}
+ immutable: false
- provider_id: code-scanner
provider_type: inline::code-scanner
config: {}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -48,6 +54,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -55,6 +62,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -62,6 +70,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -69,23 +78,28 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
files:
- provider_id: meta-reference-files
provider_type: inline::localfs
@@ -94,27 +108,33 @@ providers:
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/files_metadata.db
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/registry.db
diff --git a/llama_stack/templates/fireworks/run.yaml b/llama_stack/templates/fireworks/run.yaml
index 7f0bc49f5..547462e1f 100644
--- a/llama_stack/templates/fireworks/run.yaml
+++ b/llama_stack/templates/fireworks/run.yaml
@@ -18,9 +18,11 @@ providers:
config:
url: https://api.fireworks.ai/inference/v1
api_key: ${env.FIREWORKS_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -28,11 +30,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -43,6 +47,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -50,6 +55,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -57,6 +63,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -64,23 +71,28 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
files:
- provider_id: meta-reference-files
provider_type: inline::localfs
@@ -89,27 +101,33 @@ providers:
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/files_metadata.db
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/fireworks}/registry.db
diff --git a/llama_stack/templates/groq/run.yaml b/llama_stack/templates/groq/run.yaml
index 351ca74f7..aaf9f8cfc 100644
--- a/llama_stack/templates/groq/run.yaml
+++ b/llama_stack/templates/groq/run.yaml
@@ -17,9 +17,11 @@ providers:
config:
url: https://api.groq.com
api_key: ${env.GROQ_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,11 +29,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/groq}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +46,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/groq}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,6 +54,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/groq}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -56,6 +62,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/groq}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -63,37 +70,45 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/groq}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/groq}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/groq}/registry.db
diff --git a/llama_stack/templates/hf-endpoint/run-with-safety.yaml b/llama_stack/templates/hf-endpoint/run-with-safety.yaml
index 63063ad91..2683a9f06 100644
--- a/llama_stack/templates/hf-endpoint/run-with-safety.yaml
+++ b/llama_stack/templates/hf-endpoint/run-with-safety.yaml
@@ -17,14 +17,17 @@ providers:
config:
endpoint_name: ${env.INFERENCE_ENDPOINT_NAME}
api_token: ${env.HF_API_TOKEN}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
- provider_id: hf-endpoint-safety
provider_type: remote::hf::endpoint
config:
endpoint_name: ${env.SAFETY_INFERENCE_ENDPOINT_NAME}
api_token: ${env.HF_API_TOKEN}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -32,11 +35,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +52,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,6 +60,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -61,6 +68,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -68,40 +76,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/registry.db
diff --git a/llama_stack/templates/hf-endpoint/run.yaml b/llama_stack/templates/hf-endpoint/run.yaml
index 4caf0db04..8ad26b2f1 100644
--- a/llama_stack/templates/hf-endpoint/run.yaml
+++ b/llama_stack/templates/hf-endpoint/run.yaml
@@ -17,9 +17,11 @@ providers:
config:
endpoint_name: ${env.INFERENCE_ENDPOINT_NAME}
api_token: ${env.HF_API_TOKEN}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,11 +29,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +46,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,6 +54,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -56,6 +62,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -63,40 +70,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-endpoint}/registry.db
diff --git a/llama_stack/templates/hf-serverless/run-with-safety.yaml b/llama_stack/templates/hf-serverless/run-with-safety.yaml
index a4bba1f76..fa5cbabf3 100644
--- a/llama_stack/templates/hf-serverless/run-with-safety.yaml
+++ b/llama_stack/templates/hf-serverless/run-with-safety.yaml
@@ -17,14 +17,17 @@ providers:
config:
huggingface_repo: ${env.INFERENCE_MODEL}
api_token: ${env.HF_API_TOKEN}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
- provider_id: hf-serverless-safety
provider_type: remote::hf::serverless
config:
huggingface_repo: ${env.SAFETY_MODEL}
api_token: ${env.HF_API_TOKEN}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -32,11 +35,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +52,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,6 +60,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -61,6 +68,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -68,40 +76,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/registry.db
diff --git a/llama_stack/templates/hf-serverless/run.yaml b/llama_stack/templates/hf-serverless/run.yaml
index 23e4c1f28..bb437ca60 100644
--- a/llama_stack/templates/hf-serverless/run.yaml
+++ b/llama_stack/templates/hf-serverless/run.yaml
@@ -17,9 +17,11 @@ providers:
config:
huggingface_repo: ${env.INFERENCE_MODEL}
api_token: ${env.HF_API_TOKEN}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,11 +29,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +46,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,6 +54,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -56,6 +62,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -63,40 +70,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/hf-serverless}/registry.db
diff --git a/llama_stack/templates/llama_api/run.yaml b/llama_stack/templates/llama_api/run.yaml
index 77bbcfbc8..584cbcfee 100644
--- a/llama_stack/templates/llama_api/run.yaml
+++ b/llama_stack/templates/llama_api/run.yaml
@@ -17,18 +17,22 @@ providers:
config:
openai_compat_api_base: https://api.llama.com/compat/v1/
api_key: ${env.LLAMA_API_KEY:=}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: sqlite-vec
provider_type: inline::sqlite-vec
config:
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/sqlite_vec.db
+ immutable: false
- provider_id: ${env.ENABLE_CHROMADB:+chromadb}
provider_type: remote::chromadb
config:
url: ${env.CHROMADB_URL:=}
+ immutable: false
- provider_id: ${env.ENABLE_PGVECTOR:+pgvector}
provider_type: remote::pgvector
config:
@@ -37,11 +41,13 @@ providers:
db: ${env.PGVECTOR_DB:=}
user: ${env.PGVECTOR_USER:=}
password: ${env.PGVECTOR_PASSWORD:=}
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -52,6 +58,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -59,6 +66,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -66,6 +74,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -73,40 +82,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/registry.db
diff --git a/llama_stack/templates/meta-reference-gpu/run-with-safety.yaml b/llama_stack/templates/meta-reference-gpu/run-with-safety.yaml
index 2f5ee4062..b9d3d8c67 100644
--- a/llama_stack/templates/meta-reference-gpu/run-with-safety.yaml
+++ b/llama_stack/templates/meta-reference-gpu/run-with-safety.yaml
@@ -22,9 +22,11 @@ providers:
model_parallel_size: ${env.MODEL_PARALLEL_SIZE:=0}
max_batch_size: ${env.MAX_BATCH_SIZE:=1}
max_seq_len: ${env.MAX_SEQ_LEN:=4096}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
- provider_id: meta-reference-safety
provider_type: inline::meta-reference
config:
@@ -35,6 +37,7 @@ providers:
model_parallel_size: ${env.MODEL_PARALLEL_SIZE:=0}
max_batch_size: ${env.MAX_BATCH_SIZE:=1}
max_seq_len: ${env.MAX_SEQ_LEN:=4096}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -42,11 +45,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -57,6 +62,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -64,6 +70,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -71,6 +78,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -78,40 +86,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/registry.db
diff --git a/llama_stack/templates/meta-reference-gpu/run.yaml b/llama_stack/templates/meta-reference-gpu/run.yaml
index cc119bf4d..1d85dea0c 100644
--- a/llama_stack/templates/meta-reference-gpu/run.yaml
+++ b/llama_stack/templates/meta-reference-gpu/run.yaml
@@ -22,9 +22,11 @@ providers:
model_parallel_size: ${env.MODEL_PARALLEL_SIZE:=0}
max_batch_size: ${env.MAX_BATCH_SIZE:=1}
max_seq_len: ${env.MAX_SEQ_LEN:=4096}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -32,11 +34,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +51,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,6 +59,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -61,6 +67,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -68,40 +75,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/registry.db
diff --git a/llama_stack/templates/nvidia/run-with-safety.yaml b/llama_stack/templates/nvidia/run-with-safety.yaml
index 7dcfd196d..6fcc42026 100644
--- a/llama_stack/templates/nvidia/run-with-safety.yaml
+++ b/llama_stack/templates/nvidia/run-with-safety.yaml
@@ -19,11 +19,13 @@ providers:
url: ${env.NVIDIA_BASE_URL:=https://integrate.api.nvidia.com}
api_key: ${env.NVIDIA_API_KEY:=}
append_api_version: ${env.NVIDIA_APPEND_API_VERSION:=True}
+ immutable: false
- provider_id: nvidia
provider_type: remote::nvidia
config:
guardrails_service_url: ${env.GUARDRAILS_SERVICE_URL:=http://localhost:7331}
config_id: ${env.NVIDIA_GUARDRAILS_CONFIG_ID:=self-check}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -31,12 +33,14 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/faiss_store.db
+ immutable: false
safety:
- provider_id: nvidia
provider_type: remote::nvidia
config:
guardrails_service_url: ${env.GUARDRAILS_SERVICE_URL:=http://localhost:7331}
config_id: ${env.NVIDIA_GUARDRAILS_CONFIG_ID:=self-check}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +51,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,11 +59,13 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/trace_store.db
+ immutable: false
eval:
- provider_id: nvidia
provider_type: remote::nvidia
config:
evaluator_url: ${env.NVIDIA_EVALUATOR_URL:=http://localhost:7331}
+ immutable: false
post_training:
- provider_id: nvidia
provider_type: remote::nvidia
@@ -67,6 +74,7 @@ providers:
dataset_namespace: ${env.NVIDIA_DATASET_NAMESPACE:=default}
project_id: ${env.NVIDIA_PROJECT_ID:=test-project}
customizer_url: ${env.NVIDIA_CUSTOMIZER_URL:=http://nemo.test}
+ immutable: false
datasetio:
- provider_id: localfs
provider_type: inline::localfs
@@ -74,6 +82,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/localfs_datasetio.db
+ immutable: false
- provider_id: nvidia
provider_type: remote::nvidia
config:
@@ -81,14 +90,17 @@ providers:
dataset_namespace: ${env.NVIDIA_DATASET_NAMESPACE:=default}
project_id: ${env.NVIDIA_PROJECT_ID:=test-project}
datasets_url: ${env.NVIDIA_DATASETS_URL:=http://nemo.test}
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
tool_runtime:
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/registry.db
diff --git a/llama_stack/templates/nvidia/run.yaml b/llama_stack/templates/nvidia/run.yaml
index f69270fb5..c60b74c5c 100644
--- a/llama_stack/templates/nvidia/run.yaml
+++ b/llama_stack/templates/nvidia/run.yaml
@@ -19,6 +19,7 @@ providers:
url: ${env.NVIDIA_BASE_URL:=https://integrate.api.nvidia.com}
api_key: ${env.NVIDIA_API_KEY:=}
append_api_version: ${env.NVIDIA_APPEND_API_VERSION:=True}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -26,12 +27,14 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/faiss_store.db
+ immutable: false
safety:
- provider_id: nvidia
provider_type: remote::nvidia
config:
guardrails_service_url: ${env.GUARDRAILS_SERVICE_URL:=http://localhost:7331}
config_id: ${env.NVIDIA_GUARDRAILS_CONFIG_ID:=self-check}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +45,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,11 +53,13 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/trace_store.db
+ immutable: false
eval:
- provider_id: nvidia
provider_type: remote::nvidia
config:
evaluator_url: ${env.NVIDIA_EVALUATOR_URL:=http://localhost:7331}
+ immutable: false
post_training:
- provider_id: nvidia
provider_type: remote::nvidia
@@ -62,6 +68,7 @@ providers:
dataset_namespace: ${env.NVIDIA_DATASET_NAMESPACE:=default}
project_id: ${env.NVIDIA_PROJECT_ID:=test-project}
customizer_url: ${env.NVIDIA_CUSTOMIZER_URL:=http://nemo.test}
+ immutable: false
datasetio:
- provider_id: nvidia
provider_type: remote::nvidia
@@ -70,14 +77,17 @@ providers:
dataset_namespace: ${env.NVIDIA_DATASET_NAMESPACE:=default}
project_id: ${env.NVIDIA_PROJECT_ID:=test-project}
datasets_url: ${env.NVIDIA_DATASETS_URL:=http://nemo.test}
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
tool_runtime:
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/registry.db
diff --git a/llama_stack/templates/ollama/run-with-safety.yaml b/llama_stack/templates/ollama/run-with-safety.yaml
index 98db5fc98..34ec08585 100644
--- a/llama_stack/templates/ollama/run-with-safety.yaml
+++ b/llama_stack/templates/ollama/run-with-safety.yaml
@@ -19,6 +19,7 @@ providers:
config:
url: ${env.OLLAMA_URL:=http://localhost:11434}
raise_on_connect_error: true
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -26,13 +27,16 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config: {}
+ immutable: false
- provider_id: code-scanner
provider_type: inline::code-scanner
config: {}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -43,6 +47,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -50,6 +55,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -57,6 +63,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -64,23 +71,28 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
files:
- provider_id: meta-reference-files
provider_type: inline::localfs
@@ -89,6 +101,7 @@ providers:
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/files_metadata.db
+ immutable: false
post_training:
- provider_id: huggingface
provider_type: inline::huggingface
@@ -96,27 +109,33 @@ providers:
checkpoint_format: huggingface
distributed_backend: null
device: cpu
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/registry.db
diff --git a/llama_stack/templates/ollama/run.yaml b/llama_stack/templates/ollama/run.yaml
index 38fb2bace..12f9f2cb0 100644
--- a/llama_stack/templates/ollama/run.yaml
+++ b/llama_stack/templates/ollama/run.yaml
@@ -19,6 +19,7 @@ providers:
config:
url: ${env.OLLAMA_URL:=http://localhost:11434}
raise_on_connect_error: true
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -26,11 +27,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -41,6 +44,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -48,6 +52,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -55,6 +60,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -62,23 +68,28 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
files:
- provider_id: meta-reference-files
provider_type: inline::localfs
@@ -87,6 +98,7 @@ providers:
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/files_metadata.db
+ immutable: false
post_training:
- provider_id: huggingface
provider_type: inline::huggingface
@@ -94,27 +106,33 @@ providers:
checkpoint_format: huggingface
distributed_backend: null
device: cpu
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ollama}/registry.db
diff --git a/llama_stack/templates/open-benchmark/run.yaml b/llama_stack/templates/open-benchmark/run.yaml
index 7b1ef8f10..2eec212ac 100644
--- a/llama_stack/templates/open-benchmark/run.yaml
+++ b/llama_stack/templates/open-benchmark/run.yaml
@@ -16,33 +16,40 @@ providers:
provider_type: remote::openai
config:
api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
- provider_id: anthropic
provider_type: remote::anthropic
config:
api_key: ${env.ANTHROPIC_API_KEY:=}
+ immutable: false
- provider_id: gemini
provider_type: remote::gemini
config:
api_key: ${env.GEMINI_API_KEY:=}
+ immutable: false
- provider_id: groq
provider_type: remote::groq
config:
url: https://api.groq.com
api_key: ${env.GROQ_API_KEY:=}
+ immutable: false
- provider_id: together
provider_type: remote::together
config:
url: https://api.together.xyz/v1
api_key: ${env.TOGETHER_API_KEY:=}
+ immutable: false
vector_io:
- provider_id: sqlite-vec
provider_type: inline::sqlite-vec
config:
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/sqlite_vec.db
+ immutable: false
- provider_id: ${env.ENABLE_CHROMADB:+chromadb}
provider_type: remote::chromadb
config:
url: ${env.CHROMADB_URL:=}
+ immutable: false
- provider_id: ${env.ENABLE_PGVECTOR:+pgvector}
provider_type: remote::pgvector
config:
@@ -51,11 +58,13 @@ providers:
db: ${env.PGVECTOR_DB:=}
user: ${env.PGVECTOR_USER:=}
password: ${env.PGVECTOR_PASSWORD:=}
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -66,6 +75,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -73,6 +83,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -80,6 +91,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -87,40 +99,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/registry.db
diff --git a/llama_stack/templates/passthrough/run-with-safety.yaml b/llama_stack/templates/passthrough/run-with-safety.yaml
index 5cd8a2930..1cb8f0505 100644
--- a/llama_stack/templates/passthrough/run-with-safety.yaml
+++ b/llama_stack/templates/passthrough/run-with-safety.yaml
@@ -17,9 +17,11 @@ providers:
config:
url: ${env.PASSTHROUGH_URL}
api_key: ${env.PASSTHROUGH_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,16 +29,20 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config: {}
+ immutable: false
- provider_id: llama-guard-vision
provider_type: inline::llama-guard
config: {}
+ immutable: false
- provider_id: code-scanner
provider_type: inline::code-scanner
config: {}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +53,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,6 +61,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -61,6 +69,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -68,44 +77,54 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/registry.db
diff --git a/llama_stack/templates/passthrough/run.yaml b/llama_stack/templates/passthrough/run.yaml
index 5b6078953..25a5ad5c7 100644
--- a/llama_stack/templates/passthrough/run.yaml
+++ b/llama_stack/templates/passthrough/run.yaml
@@ -17,9 +17,11 @@ providers:
config:
url: ${env.PASSTHROUGH_URL}
api_key: ${env.PASSTHROUGH_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,11 +29,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +46,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,6 +54,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -56,6 +62,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -63,44 +70,54 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/passthrough}/registry.db
diff --git a/llama_stack/templates/postgres-demo/run.yaml b/llama_stack/templates/postgres-demo/run.yaml
index 2b6b1a64f..a6063c3ac 100644
--- a/llama_stack/templates/postgres-demo/run.yaml
+++ b/llama_stack/templates/postgres-demo/run.yaml
@@ -16,19 +16,23 @@ providers:
max_tokens: ${env.VLLM_MAX_TOKENS:=4096}
api_token: ${env.VLLM_API_TOKEN:=fake}
tls_verify: ${env.VLLM_TLS_VERIFY:=true}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: ${env.ENABLE_CHROMADB:+chromadb}
provider_type: remote::chromadb
config:
url: ${env.CHROMADB_URL:=}
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +51,7 @@ providers:
db: ${env.POSTGRES_DB:=llamastack}
user: ${env.POSTGRES_USER:=llamastack}
password: ${env.POSTGRES_PASSWORD:=llamastack}
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,23 +59,28 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,otel_trace}
otel_trace_endpoint: ${env.OTEL_TRACE_ENDPOINT:=http://localhost:4318/v1/traces}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: postgres
host: ${env.POSTGRES_HOST:=localhost}
diff --git a/llama_stack/templates/remote-vllm/run-with-safety.yaml b/llama_stack/templates/remote-vllm/run-with-safety.yaml
index a8d30904d..501bbd940 100644
--- a/llama_stack/templates/remote-vllm/run-with-safety.yaml
+++ b/llama_stack/templates/remote-vllm/run-with-safety.yaml
@@ -19,6 +19,7 @@ providers:
max_tokens: ${env.VLLM_MAX_TOKENS:=4096}
api_token: ${env.VLLM_API_TOKEN:=fake}
tls_verify: ${env.VLLM_TLS_VERIFY:=true}
+ immutable: false
- provider_id: vllm-safety
provider_type: remote::vllm
config:
@@ -26,9 +27,11 @@ providers:
max_tokens: ${env.VLLM_MAX_TOKENS:=4096}
api_token: ${env.VLLM_API_TOKEN:=fake}
tls_verify: ${env.VLLM_TLS_VERIFY:=true}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -36,11 +39,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -51,6 +56,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/responses_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -58,6 +64,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -65,23 +72,28 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -89,27 +101,33 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/trace_store.db
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/registry.db
diff --git a/llama_stack/templates/remote-vllm/run.yaml b/llama_stack/templates/remote-vllm/run.yaml
index 58c4f867d..6498a6fdc 100644
--- a/llama_stack/templates/remote-vllm/run.yaml
+++ b/llama_stack/templates/remote-vllm/run.yaml
@@ -19,9 +19,11 @@ providers:
max_tokens: ${env.VLLM_MAX_TOKENS:=4096}
api_token: ${env.VLLM_API_TOKEN:=fake}
tls_verify: ${env.VLLM_TLS_VERIFY:=true}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -29,11 +31,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -44,6 +48,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/responses_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -51,6 +56,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -58,23 +64,28 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -82,27 +93,33 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/trace_store.db
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/remote-vllm}/registry.db
diff --git a/llama_stack/templates/sambanova/run.yaml b/llama_stack/templates/sambanova/run.yaml
index ab6c70ae0..bcb1f8f84 100644
--- a/llama_stack/templates/sambanova/run.yaml
+++ b/llama_stack/templates/sambanova/run.yaml
@@ -14,9 +14,11 @@ providers:
config:
url: https://api.sambanova.ai/v1
api_key: ${env.SAMBANOVA_API_KEY}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -24,10 +26,12 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/sambanova}/faiss_store.db
+ immutable: false
- provider_id: ${env.ENABLE_CHROMADB:+chromadb}
provider_type: remote::chromadb
config:
url: ${env.CHROMADB_URL:=}
+ immutable: false
- provider_id: ${env.ENABLE_PGVECTOR:+pgvector}
provider_type: remote::pgvector
config:
@@ -36,12 +40,14 @@ providers:
db: ${env.PGVECTOR_DB:=}
user: ${env.PGVECTOR_USER:=}
password: ${env.PGVECTOR_PASSWORD:=}
+ immutable: false
safety:
- provider_id: sambanova
provider_type: remote::sambanova
config:
url: https://api.sambanova.ai/v1
api_key: ${env.SAMBANOVA_API_KEY}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -52,6 +58,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/sambanova}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -59,27 +66,33 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/sambanova}/trace_store.db
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/sambanova}/registry.db
diff --git a/llama_stack/templates/starter/run.yaml b/llama_stack/templates/starter/run.yaml
index de8d35683..45a4f5b91 100644
--- a/llama_stack/templates/starter/run.yaml
+++ b/llama_stack/templates/starter/run.yaml
@@ -17,39 +17,47 @@ providers:
provider_type: remote::openai
config:
api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
- provider_id: fireworks
provider_type: remote::fireworks
config:
url: https://api.fireworks.ai/inference/v1
api_key: ${env.FIREWORKS_API_KEY:=}
+ immutable: false
- provider_id: together
provider_type: remote::together
config:
url: https://api.together.xyz/v1
api_key: ${env.TOGETHER_API_KEY:=}
+ immutable: false
- provider_id: ollama
provider_type: remote::ollama
config:
url: ${env.OLLAMA_URL:=http://localhost:11434}
raise_on_connect_error: false
+ immutable: false
- provider_id: anthropic
provider_type: remote::anthropic
config:
api_key: ${env.ANTHROPIC_API_KEY:=}
+ immutable: false
- provider_id: gemini
provider_type: remote::gemini
config:
api_key: ${env.GEMINI_API_KEY:=}
+ immutable: false
- provider_id: groq
provider_type: remote::groq
config:
url: https://api.groq.com
api_key: ${env.GROQ_API_KEY:=}
+ immutable: false
- provider_id: sambanova
provider_type: remote::sambanova
config:
url: https://api.sambanova.ai/v1
api_key: ${env.SAMBANOVA_API_KEY:=}
+ immutable: false
- provider_id: vllm
provider_type: remote::vllm
config:
@@ -57,9 +65,11 @@ providers:
max_tokens: ${env.VLLM_MAX_TOKENS:=4096}
api_token: ${env.VLLM_API_TOKEN:=fake}
tls_verify: ${env.VLLM_TLS_VERIFY:=true}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -67,10 +77,12 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/faiss_store.db
+ immutable: false
- provider_id: ${env.ENABLE_SQLITE_VEC:+sqlite-vec}
provider_type: inline::sqlite-vec
config:
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/sqlite_vec.db
+ immutable: false
- provider_id: ${env.ENABLE_MILVUS:+milvus}
provider_type: inline::milvus
config:
@@ -78,10 +90,12 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/milvus_registry.db
+ immutable: false
- provider_id: ${env.ENABLE_CHROMADB:+chromadb}
provider_type: remote::chromadb
config:
url: ${env.CHROMADB_URL:=}
+ immutable: false
- provider_id: ${env.ENABLE_PGVECTOR:+pgvector}
provider_type: remote::pgvector
config:
@@ -90,6 +104,7 @@ providers:
db: ${env.PGVECTOR_DB:=}
user: ${env.PGVECTOR_USER:=}
password: ${env.PGVECTOR_PASSWORD:=}
+ immutable: false
files:
- provider_id: meta-reference-files
provider_type: inline::localfs
@@ -98,11 +113,13 @@ providers:
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/files_metadata.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -113,6 +130,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -120,6 +138,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -127,6 +146,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -134,40 +154,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/registry.db
diff --git a/llama_stack/templates/tgi/run-with-safety.yaml b/llama_stack/templates/tgi/run-with-safety.yaml
index c19b916d5..fd1aea528 100644
--- a/llama_stack/templates/tgi/run-with-safety.yaml
+++ b/llama_stack/templates/tgi/run-with-safety.yaml
@@ -16,10 +16,12 @@ providers:
provider_type: remote::tgi
config:
url: ${env.TGI_URL}
+ immutable: false
- provider_id: tgi-safety
provider_type: remote::tgi
config:
url: ${env.TGI_SAFETY_URL}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,11 +29,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +46,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,6 +54,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -56,6 +62,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -63,40 +70,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/registry.db
diff --git a/llama_stack/templates/tgi/run.yaml b/llama_stack/templates/tgi/run.yaml
index f0197d74c..32197b1b8 100644
--- a/llama_stack/templates/tgi/run.yaml
+++ b/llama_stack/templates/tgi/run.yaml
@@ -16,9 +16,11 @@ providers:
provider_type: remote::tgi
config:
url: ${env.TGI_URL}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -26,11 +28,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -41,6 +45,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -48,6 +53,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -55,6 +61,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -62,40 +69,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/tgi}/registry.db
diff --git a/llama_stack/templates/together/run-with-safety.yaml b/llama_stack/templates/together/run-with-safety.yaml
index b32c9ee8d..75638d24a 100644
--- a/llama_stack/templates/together/run-with-safety.yaml
+++ b/llama_stack/templates/together/run-with-safety.yaml
@@ -17,9 +17,11 @@ providers:
config:
url: https://api.together.xyz/v1
api_key: ${env.TOGETHER_API_KEY:=}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,16 +29,20 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config: {}
+ immutable: false
- provider_id: llama-guard-vision
provider_type: inline::llama-guard
config: {}
+ immutable: false
- provider_id: code-scanner
provider_type: inline::code-scanner
config: {}
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -47,6 +53,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -54,6 +61,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -61,6 +69,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -68,44 +77,54 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/registry.db
diff --git a/llama_stack/templates/together/run.yaml b/llama_stack/templates/together/run.yaml
index 22c99f6cf..a0d1642d4 100644
--- a/llama_stack/templates/together/run.yaml
+++ b/llama_stack/templates/together/run.yaml
@@ -17,9 +17,11 @@ providers:
config:
url: https://api.together.xyz/v1
api_key: ${env.TOGETHER_API_KEY:=}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -27,11 +29,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -42,6 +46,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -49,6 +54,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -56,6 +62,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -63,44 +70,54 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
- provider_id: wolfram-alpha
provider_type: remote::wolfram-alpha
config:
api_key: ${env.WOLFRAM_ALPHA_API_KEY:=}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/together}/registry.db
diff --git a/llama_stack/templates/vllm-gpu/run.yaml b/llama_stack/templates/vllm-gpu/run.yaml
index 6d122e180..bc4d2f216 100644
--- a/llama_stack/templates/vllm-gpu/run.yaml
+++ b/llama_stack/templates/vllm-gpu/run.yaml
@@ -21,9 +21,11 @@ providers:
max_num_seqs: ${env.MAX_NUM_SEQS:=4}
enforce_eager: ${env.ENFORCE_EAGER:=False}
gpu_memory_utilization: ${env.GPU_MEMORY_UTILIZATION:=0.3}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -31,11 +33,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/vllm-gpu}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -46,6 +50,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/vllm-gpu}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -53,6 +58,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/vllm-gpu}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -60,6 +66,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/vllm-gpu}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -67,40 +74,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/vllm-gpu}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/vllm-gpu}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/vllm-gpu}/registry.db
diff --git a/llama_stack/templates/watsonx/run.yaml b/llama_stack/templates/watsonx/run.yaml
index d80ee6329..88a5f409a 100644
--- a/llama_stack/templates/watsonx/run.yaml
+++ b/llama_stack/templates/watsonx/run.yaml
@@ -18,9 +18,11 @@ providers:
url: ${env.WATSONX_BASE_URL:=https://us-south.ml.cloud.ibm.com}
api_key: ${env.WATSONX_API_KEY:=}
project_id: ${env.WATSONX_PROJECT_ID:=}
+ immutable: false
- provider_id: sentence-transformers
provider_type: inline::sentence-transformers
config: {}
+ immutable: false
vector_io:
- provider_id: faiss
provider_type: inline::faiss
@@ -28,11 +30,13 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/faiss_store.db
+ immutable: false
safety:
- provider_id: llama-guard
provider_type: inline::llama-guard
config:
excluded_categories: []
+ immutable: false
agents:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -43,6 +47,7 @@ providers:
responses_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/responses_store.db
+ immutable: false
telemetry:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -50,6 +55,7 @@ providers:
service_name: "${env.OTEL_SERVICE_NAME:=\u200B}"
sinks: ${env.TELEMETRY_SINKS:=console,sqlite}
sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/trace_store.db
+ immutable: false
eval:
- provider_id: meta-reference
provider_type: inline::meta-reference
@@ -57,6 +63,7 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/meta_reference_eval.db
+ immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@@ -64,40 +71,49 @@ providers:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/huggingface_datasetio.db
+ immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
kvstore:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/localfs_datasetio.db
+ immutable: false
scoring:
- provider_id: basic
provider_type: inline::basic
config: {}
+ immutable: false
- provider_id: llm-as-judge
provider_type: inline::llm-as-judge
config: {}
+ immutable: false
- provider_id: braintrust
provider_type: inline::braintrust
config:
openai_api_key: ${env.OPENAI_API_KEY:=}
+ immutable: false
tool_runtime:
- provider_id: brave-search
provider_type: remote::brave-search
config:
api_key: ${env.BRAVE_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: tavily-search
provider_type: remote::tavily-search
config:
api_key: ${env.TAVILY_SEARCH_API_KEY:=}
max_results: 3
+ immutable: false
- provider_id: rag-runtime
provider_type: inline::rag-runtime
config: {}
+ immutable: false
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
config: {}
+ immutable: false
metadata_store:
type: sqlite
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/registry.db
diff --git a/tests/integration/providers/test_providers.py b/tests/integration/providers/test_providers.py
index 8b153411c..2069d4b61 100644
--- a/tests/integration/providers/test_providers.py
+++ b/tests/integration/providers/test_providers.py
@@ -21,3 +21,20 @@ class TestProviders:
pid = provider.provider_id
provider = llama_stack_client.providers.retrieve(pid)
assert provider is not None
+
+ @pytest.mark.asyncio
+ def test_providers_update(self, llama_stack_client: LlamaStackAsLibraryClient | LlamaStackClient):
+ new_cfg = {"url": "http://localhost:12345"}
+
+ _ = llama_stack_client.providers.retrieve("ollama")
+
+ llama_stack_client.providers.update(
+ api="inference",
+ provider_id="ollama",
+ provider_type="remote::ollama",
+ config=new_cfg,
+ )
+
+ new_provider = llama_stack_client.providers.retrieve("ollama")
+
+ assert new_provider.config == new_cfg