refactor: convert providers to be installed via package

currently providers have a `pip_package` list. Rather than make our own form of python dependency management, we should use `pyproject.toml` files in each provider declaring the dependencies in a more trackable manner.
Each provider can then be installed using the already in place `module` field in the ProviderSpec, pointing to the directory the provider lives in
we can then simply `uv pip install` this directory as opposed to installing the dependencies one by one

Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
Charlie Doern 2025-07-29 15:18:54 -04:00
parent a1301911e4
commit 41431d8bdd
76 changed files with 1294 additions and 134 deletions

View file

@ -10,7 +10,6 @@ from llama_stack.providers.datatypes import (
InlineProviderSpec,
ProviderSpec,
)
from llama_stack.providers.utils.kvstore import kvstore_dependencies
def available_providers() -> list[ProviderSpec]:
@ -18,14 +17,6 @@ def available_providers() -> list[ProviderSpec]:
InlineProviderSpec(
api=Api.agents,
provider_type="inline::meta-reference",
pip_packages=[
"matplotlib",
"pillow",
"pandas",
"scikit-learn",
"mcp>=1.8.1",
]
+ kvstore_dependencies(), # TODO make this dynamic based on the kvstore config
module="llama_stack.providers.inline.agents.meta_reference",
config_class="llama_stack.providers.inline.agents.meta_reference.MetaReferenceAgentsImplConfig",
api_dependencies=[