llama-stack-mirror/llama_stack/distribution
Charlie Doern dcc6b1eee9 refactor: install external provider via module
using `module` in the provider class and the fact that `build` and `run` configs BOTH use the `class Provider` now, enables us to point to an external provider via a `module`.

For example, say this is in your build config:

```
- provider_id: ramalama
  provider_type: remote::ramalama
  module: ramalama_stack
```

during build (in the various scripts), additionally to installing any pip dependencies we will also install this module
and use the `get_provider_spec` method to retreive the ProviderSpec that is currently specified using `providers.d`.

Most (if not all) external providers today have a `get_provider_spec` method that sits unused. Utilizing this method rather than the providers.d route allows for a much easier installation process for external providers and limits the amount of extra configuration
a regular user has to do to get their stack off the ground.

In production so far, providing instructions for installing external providers for users has been difficult: they need to install the module as a pre-req, create the providers.d directory, copy in the provider spec, and also copy in the necessary build/run yaml files.

Using the module is a more seamless discovery method

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2025-07-24 18:54:00 -04:00
..
access_control fix: auth sql store: user is owner policy (#2674) 2025-07-10 14:40:32 -07:00
routers feat(registry): more flexible model lookup (#2859) 2025-07-22 15:22:48 -07:00
routing_tables feat(registry): make the Stack query providers for model listing (#2862) 2025-07-24 10:39:53 -07:00
server feat(auth): API access control (#2822) 2025-07-24 15:30:48 -07:00
store fix: store configs (#2593) 2025-07-03 10:07:23 -07:00
ui chore: remove nested imports (#2515) 2025-06-26 08:01:05 +05:30
utils chore: merge --config and --template in server.py (#2716) 2025-07-21 13:19:27 -07:00
__init__.py API Updates (#73) 2024-09-17 19:51:35 -07:00
build.py refactor: install external provider via module 2025-07-24 18:54:00 -04:00
build_conda_env.sh refactor: install external provider via module 2025-07-24 18:54:00 -04:00
build_container.sh refactor: install external provider via module 2025-07-24 18:54:00 -04:00
build_venv.sh refactor: install external provider via module 2025-07-24 18:54:00 -04:00
client.py chore: make cprint write to stderr (#2250) 2025-05-24 23:39:57 -07:00
common.sh feat(pre-commit): enhance pre-commit hooks with additional checks (#2014) 2025-04-30 11:35:49 -07:00
configure.py refactor: Align build and run provider datatypes 2025-07-24 18:45:41 -04:00
datatypes.py refactor: Align build and run provider datatypes 2025-07-24 18:45:41 -04:00
distribution.py refactor: install external provider via module 2025-07-24 18:54:00 -04:00
external.py feat: Bring Your Own API (BYOA) (#2228) 2025-07-24 13:41:14 -07:00
inspect.py feat: Bring Your Own API (BYOA) (#2228) 2025-07-24 13:41:14 -07:00
library_client.py refactor: Align build and run provider datatypes 2025-07-24 18:45:41 -04:00
providers.py feat: consolidate most distros into "starter" (#2516) 2025-07-04 15:58:03 +02:00
request_headers.py feat(auth): API access control (#2822) 2025-07-24 15:30:48 -07:00
resolver.py refactor: Align build and run provider datatypes 2025-07-24 18:45:41 -04:00
stack.py feat(registry): make the Stack query providers for model listing (#2862) 2025-07-24 10:39:53 -07:00
start_stack.sh chore: merge --config and --template in server.py (#2716) 2025-07-21 13:19:27 -07:00