Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/llama_stack_client/lib/cli/providers/inspect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import click
import yaml
from rich.console import Console

from ..common.utils import handle_client_errors


@click.command(name="inspect")
@click.argument("provider_id")
@click.pass_context
@handle_client_errors("inspect providers")
def inspect_provider(ctx, provider_id):
"""Show available providers on distribution endpoint"""
client = ctx.obj["client"]
console = Console()

providers_response = client.providers.inspect(provider_id=provider_id)

if providers_response is None:
click.secho("Provider not found", fg="red")
raise click.exceptions.Exit(1)

console.print(f"provider_id={providers_response.provider_id}")
console.print(f"provider_type={providers_response.provider_type}")
console.print("config:")
for line in yaml.dump(providers_response.config, indent=2).split("\n"):
console.print(line)
2 changes: 2 additions & 0 deletions src/llama_stack_client/lib/cli/providers/providers.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import click

from .list import list_providers
from .inspect import inspect_provider


@click.group()
Expand All @@ -11,3 +12,4 @@ def providers():

# Register subcommands
providers.add_command(list_providers)
providers.add_command(inspect_provider)
66 changes: 64 additions & 2 deletions src/llama_stack_client/resources/providers.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from .._wrappers import DataWrapper
from .._base_client import make_request_options
from ..types.provider_list_response import ProviderListResponse
from ..types.provider_get_response import GetProviderResponse

__all__ = ["ProvidersResource", "AsyncProvidersResource"]

Expand Down Expand Up @@ -53,7 +54,7 @@ def list(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ProviderListResponse:
return self._get(
"/v1/inspect/providers",
"/v1/providers",
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand All @@ -64,6 +65,29 @@ def list(
cast_to=cast(Type[ProviderListResponse], DataWrapper[ProviderListResponse]),
)

def inspect(
self,
provider_id,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> GetProviderResponse:
return self._get(
f"/v1/providers/{provider_id}",
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
post_parser=DataWrapper[GetProviderResponse]._unwrapper,
),
cast_to=cast(Type[GetProviderResponse], DataWrapper[GetProviderResponse]),
)


class AsyncProvidersResource(AsyncAPIResource):
@cached_property
Expand Down Expand Up @@ -96,7 +120,7 @@ async def list(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ProviderListResponse:
return await self._get(
"/v1/inspect/providers",
"/v1/providers",
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand All @@ -106,6 +130,29 @@ async def list(
),
cast_to=cast(Type[ProviderListResponse], DataWrapper[ProviderListResponse]),
)

async def inspect(
self,
provider_id,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> GetProviderResponse:
return await self._get(
f"/v1/providers/{provider_id}",
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
post_parser=DataWrapper[GetProviderResponse]._unwrapper,
),
cast_to=cast(Type[GetProviderResponse], DataWrapper[GetProviderResponse]),
)


class ProvidersResourceWithRawResponse:
Expand All @@ -116,6 +163,9 @@ def __init__(self, providers: ProvidersResource) -> None:
providers.list,
)

self.inspect = to_raw_response_wrapper(
providers.inspect,
)

class AsyncProvidersResourceWithRawResponse:
def __init__(self, providers: AsyncProvidersResource) -> None:
Expand All @@ -125,6 +175,11 @@ def __init__(self, providers: AsyncProvidersResource) -> None:
providers.list,
)

self.inspect = async_to_raw_response_wrapper(
providers.inspect,
)



class ProvidersResourceWithStreamingResponse:
def __init__(self, providers: ProvidersResource) -> None:
Expand All @@ -134,6 +189,10 @@ def __init__(self, providers: ProvidersResource) -> None:
providers.list,
)

self.inspect = to_streamed_response_wrapper(
providers.inspect,
)


class AsyncProvidersResourceWithStreamingResponse:
def __init__(self, providers: AsyncProvidersResource) -> None:
Expand All @@ -142,3 +201,6 @@ def __init__(self, providers: AsyncProvidersResource) -> None:
self.list = async_to_streamed_response_wrapper(
providers.list,
)
self.inspect = async_to_streamed_response_wrapper(
providers.inspect,
)
9 changes: 9 additions & 0 deletions src/llama_stack_client/types/provider_get_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing_extensions import TypeAlias

from .provider_info import ProviderInfoWithConfig

__all__ = ["GetProviderResponse"]

GetProviderResponse: TypeAlias = ProviderInfoWithConfig
10 changes: 10 additions & 0 deletions src/llama_stack_client/types/provider_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@


from .._models import BaseModel
from typing import Dict, Any

__all__ = ["ProviderInfo"]

Expand All @@ -12,3 +13,12 @@ class ProviderInfo(BaseModel):
provider_id: str

provider_type: str

class ProviderInfoWithConfig(BaseModel):
api: str

provider_id: str

provider_type: str

config: Dict[str, Any]