| | |
| |
|
| | from __future__ import annotations |
| |
|
| | from typing import List |
| |
|
| | import httpx |
| |
|
| | from .. import _legacy_response |
| | from ..types import model_list_params |
| | from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given |
| | from .._utils import is_given, maybe_transform, strip_not_given |
| | from .._compat import cached_property |
| | from .._resource import SyncAPIResource, AsyncAPIResource |
| | from .._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper |
| | from ..pagination import SyncPage, AsyncPage |
| | from .._base_client import AsyncPaginator, make_request_options |
| | from ..types.model_info import ModelInfo |
| | from ..types.anthropic_beta_param import AnthropicBetaParam |
| |
|
| | __all__ = ["Models", "AsyncModels"] |
| |
|
| |
|
| | class Models(SyncAPIResource): |
| | @cached_property |
| | def with_raw_response(self) -> ModelsWithRawResponse: |
| | """ |
| | This property can be used as a prefix for any HTTP method call to return |
| | the raw response object instead of the parsed content. |
| | |
| | For more information, see https://www.github.com/anthropics/anthropic-sdk-python#accessing-raw-response-data-eg-headers |
| | """ |
| | return ModelsWithRawResponse(self) |
| |
|
| | @cached_property |
| | def with_streaming_response(self) -> ModelsWithStreamingResponse: |
| | """ |
| | An alternative to `.with_raw_response` that doesn't eagerly read the response body. |
| | |
| | For more information, see https://www.github.com/anthropics/anthropic-sdk-python#with_streaming_response |
| | """ |
| | return ModelsWithStreamingResponse(self) |
| |
|
| | def retrieve( |
| | self, |
| | model_id: str, |
| | *, |
| | betas: List[AnthropicBetaParam] | Omit = omit, |
| | |
| | |
| | extra_headers: Headers | None = None, |
| | extra_query: Query | None = None, |
| | extra_body: Body | None = None, |
| | timeout: float | httpx.Timeout | None | NotGiven = not_given, |
| | ) -> ModelInfo: |
| | """ |
| | Get a specific model. |
| | |
| | The Models API response can be used to determine information about a specific |
| | model or resolve a model alias to a model ID. |
| | |
| | Args: |
| | model_id: Model identifier or alias. |
| | |
| | betas: Optional header to specify the beta version(s) you want to use. |
| | |
| | extra_headers: Send extra headers |
| | |
| | extra_query: Add additional query parameters to the request |
| | |
| | extra_body: Add additional JSON properties to the request |
| | |
| | timeout: Override the client-level default timeout for this request, in seconds |
| | """ |
| | if not model_id: |
| | raise ValueError(f"Expected a non-empty value for `model_id` but received {model_id!r}") |
| | extra_headers = { |
| | **strip_not_given({"anthropic-beta": ",".join(str(e) for e in betas) if is_given(betas) else not_given}), |
| | **(extra_headers or {}), |
| | } |
| | return self._get( |
| | f"/v1/models/{model_id}", |
| | options=make_request_options( |
| | extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout |
| | ), |
| | cast_to=ModelInfo, |
| | ) |
| |
|
| | def list( |
| | self, |
| | *, |
| | after_id: str | Omit = omit, |
| | before_id: str | Omit = omit, |
| | limit: int | Omit = omit, |
| | betas: List[AnthropicBetaParam] | Omit = omit, |
| | |
| | |
| | extra_headers: Headers | None = None, |
| | extra_query: Query | None = None, |
| | extra_body: Body | None = None, |
| | timeout: float | httpx.Timeout | None | NotGiven = not_given, |
| | ) -> SyncPage[ModelInfo]: |
| | """ |
| | List available models. |
| | |
| | The Models API response can be used to determine which models are available for |
| | use in the API. More recently released models are listed first. |
| | |
| | Args: |
| | after_id: ID of the object to use as a cursor for pagination. When provided, returns the |
| | page of results immediately after this object. |
| | |
| | before_id: ID of the object to use as a cursor for pagination. When provided, returns the |
| | page of results immediately before this object. |
| | |
| | limit: Number of items to return per page. |
| | |
| | Defaults to `20`. Ranges from `1` to `1000`. |
| | |
| | betas: Optional header to specify the beta version(s) you want to use. |
| | |
| | extra_headers: Send extra headers |
| | |
| | extra_query: Add additional query parameters to the request |
| | |
| | extra_body: Add additional JSON properties to the request |
| | |
| | timeout: Override the client-level default timeout for this request, in seconds |
| | """ |
| | extra_headers = { |
| | **strip_not_given({"anthropic-beta": ",".join(str(e) for e in betas) if is_given(betas) else not_given}), |
| | **(extra_headers or {}), |
| | } |
| | return self._get_api_list( |
| | "/v1/models", |
| | page=SyncPage[ModelInfo], |
| | options=make_request_options( |
| | extra_headers=extra_headers, |
| | extra_query=extra_query, |
| | extra_body=extra_body, |
| | timeout=timeout, |
| | query=maybe_transform( |
| | { |
| | "after_id": after_id, |
| | "before_id": before_id, |
| | "limit": limit, |
| | }, |
| | model_list_params.ModelListParams, |
| | ), |
| | ), |
| | model=ModelInfo, |
| | ) |
| |
|
| |
|
| | class AsyncModels(AsyncAPIResource): |
| | @cached_property |
| | def with_raw_response(self) -> AsyncModelsWithRawResponse: |
| | """ |
| | This property can be used as a prefix for any HTTP method call to return |
| | the raw response object instead of the parsed content. |
| | |
| | For more information, see https://www.github.com/anthropics/anthropic-sdk-python#accessing-raw-response-data-eg-headers |
| | """ |
| | return AsyncModelsWithRawResponse(self) |
| |
|
| | @cached_property |
| | def with_streaming_response(self) -> AsyncModelsWithStreamingResponse: |
| | """ |
| | An alternative to `.with_raw_response` that doesn't eagerly read the response body. |
| | |
| | For more information, see https://www.github.com/anthropics/anthropic-sdk-python#with_streaming_response |
| | """ |
| | return AsyncModelsWithStreamingResponse(self) |
| |
|
| | async def retrieve( |
| | self, |
| | model_id: str, |
| | *, |
| | betas: List[AnthropicBetaParam] | Omit = omit, |
| | |
| | |
| | extra_headers: Headers | None = None, |
| | extra_query: Query | None = None, |
| | extra_body: Body | None = None, |
| | timeout: float | httpx.Timeout | None | NotGiven = not_given, |
| | ) -> ModelInfo: |
| | """ |
| | Get a specific model. |
| | |
| | The Models API response can be used to determine information about a specific |
| | model or resolve a model alias to a model ID. |
| | |
| | Args: |
| | model_id: Model identifier or alias. |
| | |
| | betas: Optional header to specify the beta version(s) you want to use. |
| | |
| | extra_headers: Send extra headers |
| | |
| | extra_query: Add additional query parameters to the request |
| | |
| | extra_body: Add additional JSON properties to the request |
| | |
| | timeout: Override the client-level default timeout for this request, in seconds |
| | """ |
| | if not model_id: |
| | raise ValueError(f"Expected a non-empty value for `model_id` but received {model_id!r}") |
| | extra_headers = { |
| | **strip_not_given({"anthropic-beta": ",".join(str(e) for e in betas) if is_given(betas) else not_given}), |
| | **(extra_headers or {}), |
| | } |
| | return await self._get( |
| | f"/v1/models/{model_id}", |
| | options=make_request_options( |
| | extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout |
| | ), |
| | cast_to=ModelInfo, |
| | ) |
| |
|
| | def list( |
| | self, |
| | *, |
| | after_id: str | Omit = omit, |
| | before_id: str | Omit = omit, |
| | limit: int | Omit = omit, |
| | betas: List[AnthropicBetaParam] | Omit = omit, |
| | |
| | |
| | extra_headers: Headers | None = None, |
| | extra_query: Query | None = None, |
| | extra_body: Body | None = None, |
| | timeout: float | httpx.Timeout | None | NotGiven = not_given, |
| | ) -> AsyncPaginator[ModelInfo, AsyncPage[ModelInfo]]: |
| | """ |
| | List available models. |
| | |
| | The Models API response can be used to determine which models are available for |
| | use in the API. More recently released models are listed first. |
| | |
| | Args: |
| | after_id: ID of the object to use as a cursor for pagination. When provided, returns the |
| | page of results immediately after this object. |
| | |
| | before_id: ID of the object to use as a cursor for pagination. When provided, returns the |
| | page of results immediately before this object. |
| | |
| | limit: Number of items to return per page. |
| | |
| | Defaults to `20`. Ranges from `1` to `1000`. |
| | |
| | betas: Optional header to specify the beta version(s) you want to use. |
| | |
| | extra_headers: Send extra headers |
| | |
| | extra_query: Add additional query parameters to the request |
| | |
| | extra_body: Add additional JSON properties to the request |
| | |
| | timeout: Override the client-level default timeout for this request, in seconds |
| | """ |
| | extra_headers = { |
| | **strip_not_given({"anthropic-beta": ",".join(str(e) for e in betas) if is_given(betas) else not_given}), |
| | **(extra_headers or {}), |
| | } |
| | return self._get_api_list( |
| | "/v1/models", |
| | page=AsyncPage[ModelInfo], |
| | options=make_request_options( |
| | extra_headers=extra_headers, |
| | extra_query=extra_query, |
| | extra_body=extra_body, |
| | timeout=timeout, |
| | query=maybe_transform( |
| | { |
| | "after_id": after_id, |
| | "before_id": before_id, |
| | "limit": limit, |
| | }, |
| | model_list_params.ModelListParams, |
| | ), |
| | ), |
| | model=ModelInfo, |
| | ) |
| |
|
| |
|
| | class ModelsWithRawResponse: |
| | def __init__(self, models: Models) -> None: |
| | self._models = models |
| |
|
| | self.retrieve = _legacy_response.to_raw_response_wrapper( |
| | models.retrieve, |
| | ) |
| | self.list = _legacy_response.to_raw_response_wrapper( |
| | models.list, |
| | ) |
| |
|
| |
|
| | class AsyncModelsWithRawResponse: |
| | def __init__(self, models: AsyncModels) -> None: |
| | self._models = models |
| |
|
| | self.retrieve = _legacy_response.async_to_raw_response_wrapper( |
| | models.retrieve, |
| | ) |
| | self.list = _legacy_response.async_to_raw_response_wrapper( |
| | models.list, |
| | ) |
| |
|
| |
|
| | class ModelsWithStreamingResponse: |
| | def __init__(self, models: Models) -> None: |
| | self._models = models |
| |
|
| | self.retrieve = to_streamed_response_wrapper( |
| | models.retrieve, |
| | ) |
| | self.list = to_streamed_response_wrapper( |
| | models.list, |
| | ) |
| |
|
| |
|
| | class AsyncModelsWithStreamingResponse: |
| | def __init__(self, models: AsyncModels) -> None: |
| | self._models = models |
| |
|
| | self.retrieve = async_to_streamed_response_wrapper( |
| | models.retrieve, |
| | ) |
| | self.list = async_to_streamed_response_wrapper( |
| | models.list, |
| | ) |
| |
|