feat: allow for provider immutability

being able to update providers means that admins should have the ability to turn this feature off. introduce `immutable` as a field in the Provider class. Defauling to false means all providers can be updated by default, but an admin at runtime can choose to set this to True to disable provider updating

Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
Charlie Doern 2025-06-30 15:07:09 -04:00
parent 436f8ade9e
commit e4b040d5cc
35 changed files with 554 additions and 0 deletions

View file

@ -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
@ -53,6 +59,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
@ -60,6 +67,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
@ -68,6 +76,7 @@ providers:
type: sqlite
namespace: null
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/meta_reference_eval.db
immutable: false
datasetio:
- provider_id: huggingface
provider_type: remote::huggingface
@ -76,6 +85,7 @@ providers:
type: sqlite
namespace: null
db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/llama_api}/huggingface_datasetio.db
immutable: false
- provider_id: localfs
provider_type: inline::localfs
config:
@ -83,34 +93,42 @@ providers:
type: sqlite
namespace: null
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