feat: introduce a /credentials API for specifying ephemeral provider-specific keys

This commit is contained in:
Ashwin Bharambe 2025-05-18 11:35:45 -07:00
parent 87a4b9cb28
commit 226dc60775
7 changed files with 506 additions and 5 deletions

View file

@ -66,9 +66,23 @@ def builtin_automatically_routed_apis() -> list[AutoRoutedApiInfo]:
]
def apis_provided_by_stack() -> set[Api]:
return {
Api.models,
Api.shields,
Api.vector_dbs,
Api.datasets,
Api.scoring,
Api.eval,
Api.tool_runtime,
Api.credentials,
Api.providers,
Api.inspect,
}
def providable_apis() -> list[Api]:
routing_table_apis = {x.routing_table_api for x in builtin_automatically_routed_apis()}
return [api for api in Api if api not in routing_table_apis and api != Api.inspect and api != Api.providers]
return [api for api in Api if api not in apis_provided_by_stack()]
def _load_remote_provider_spec(spec_data: dict[str, Any], api: Api) -> ProviderSpec:

View file

@ -15,6 +15,7 @@ import yaml
from llama_stack.apis.agents import Agents
from llama_stack.apis.batch_inference import BatchInference
from llama_stack.apis.benchmarks import Benchmarks
from llama_stack.apis.credentials import Credentials
from llama_stack.apis.datasetio import DatasetIO
from llama_stack.apis.datasets import Datasets
from llama_stack.apis.eval import Eval
@ -47,7 +48,6 @@ logger = get_logger(name=__name__, category="core")
class LlamaStack(
Providers,
VectorDBs,
Inference,
BatchInference,
@ -65,11 +65,13 @@ class LlamaStack(
DatasetIO,
Models,
Shields,
Inspect,
ToolGroups,
ToolRuntime,
RAGToolRuntime,
Files,
Providers,
Credentials,
Inspect,
):
pass