Skip to content

Conversation

cdoern
Copy link
Contributor

@cdoern cdoern commented Apr 8, 2025

What does this PR do?

add v1/providers/ which uses PUT to allow users to change their provider configuration

this is a follow up to #1429 and related to #1359

a user can call something like:

llama_stack_client.providers.update(api="inference", provider_id="ollama", provider_type="remote::ollama", config={'url': 'http:/localhost:12345'})

or

llama-stack-client providers update inference ollama remote::ollama "{'url': 'http://localhost:12345'}"

this API works by adding a RequestMiddleware to the server which checks requests, and if the user is using PUT /v1/providers, the routes are re-registered with the re-initialized provider configurations/methods

for the client, self.impls is updated to hold the proper methods+configurations

this depends on a client PR, the CI will fail until then but succeeded locally

Test Plan

pytest -s -v tests/integration/providers/test_providers.py --stack-config=ollama --text-model=meta-llama/Llama-3.2-3B-Instruct
Screenshot 2025-04-08 at 4 48 58 PM

llama-stack-client providers update inference ollama remote::ollama "{'url': 'http://localhost:12345'}"

Screenshot 2025-04-08 at 4 50 16 PM

Copy link
Contributor

github-actions bot commented Jun 8, 2025

This pull request has been automatically marked as stale because it has not had activity within 60 days. It will be automatically closed if no further activity occurs within 30 days.

@github-actions github-actions bot added the stale label Jun 8, 2025
@jwm4
Copy link
Contributor

jwm4 commented Jun 27, 2025

@cdoern , do you know if there has been any news about when/if the maintainers would accept something like this? It seems very useful.

@cdoern
Copy link
Contributor Author

cdoern commented Jun 27, 2025

@jwm4 I am coming back to this with #2386 and #2385 I think. Those issues in conjunction describe some sort of system where a user can/cannot update their provider at runtime. I am going to re-think the mechanism for this though

@cdoern cdoern force-pushed the provider-update branch from 3e72956 to 807fbed Compare June 27, 2025 20:57
@github-actions github-actions bot removed the stale label Jun 28, 2025
@cdoern cdoern force-pushed the provider-update branch 2 times, most recently from 6f843ea to 371755b Compare June 30, 2025 19:56
cdoern added 2 commits July 1, 2025 10:04
add `v1/providers/` which uses PUT to allow users to change their provider configuration

this is a follow up to llamastack#1429 and related to llamastack#1359

a user can call something like:

`llama_stack_client.providers.update(api="inference", provider_id="ollama", provider_type="remote::ollama", config={'url': 'http:/localhost:12345'})`

or

`llama-stack-client providers update inference ollama remote::ollama "{'url': 'http://localhost:12345'}"`

this API works by adding a `RequestMiddleware` to the server which checks requests, and if the user is using PUT /v1/providers, the routes are re-registered with the re-initialized provider configurations/methods

for the client, `self.impls` is updated to hold the proper methods+configurations

this depends on a client PR, the CI will fail until then but succeeded locally

Signed-off-by: Charlie Doern <cdoern@redhat.com>
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>
@cdoern cdoern force-pushed the provider-update branch from 371755b to e4b040d Compare July 1, 2025 14:07
@ashwinb
Copy link
Contributor

ashwinb commented Aug 22, 2025

This is rather stale. But also -- why do we want users to be able to update provider configuration? I can imagine an admin wanting to do it I guess but we don't have well developed admin flows right now.

@ehhuang
Copy link
Contributor

ehhuang commented Sep 10, 2025

stale; feel free to reopen if still applicable

@ehhuang ehhuang closed this Sep 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants