Skip to content

Commit 63b9ec0

Browse files
feat(api): manual updates
Move models to platform api
1 parent 5247aee commit 63b9ec0

File tree

9 files changed

+212
-190
lines changed

9 files changed

+212
-190
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 77
1+
configured_endpoints: 76
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/digitalocean%2Fgradientai-e8b3cbc80e18e4f7f277010349f25e1319156704f359911dc464cc21a0d077a6.yml
33
openapi_spec_hash: c773d792724f5647ae25a5ae4ccec208
4-
config_hash: 94c621a4008714c6ab5f773670265bcc
4+
config_hash: f0976fbc552ea878bb527447b5e663c9

api.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -433,10 +433,9 @@ Methods:
433433
Types:
434434

435435
```python
436-
from gradientai.types import APIAgreement, APIModel, APIModelVersion, Model, ModelListResponse
436+
from gradientai.types import APIAgreement, APIModel, APIModelVersion, ModelListResponse
437437
```
438438

439439
Methods:
440440

441-
- <code title="get /models/{model}">client.models.<a href="./src/gradientai/resources/models.py">retrieve</a>(model) -> <a href="./src/gradientai/types/model.py">Model</a></code>
442-
- <code title="get /models">client.models.<a href="./src/gradientai/resources/models.py">list</a>() -> <a href="./src/gradientai/types/model_list_response.py">ModelListResponse</a></code>
441+
- <code title="get /v2/gen-ai/models">client.models.<a href="./src/gradientai/resources/models.py">list</a>(\*\*<a href="src/gradientai/types/model_list_params.py">params</a>) -> <a href="./src/gradientai/types/model_list_response.py">ModelListResponse</a></code>

src/gradientai/resources/models.py

Lines changed: 105 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@
22

33
from __future__ import annotations
44

5+
from typing import List
6+
from typing_extensions import Literal
7+
58
import httpx
69

10+
from ..types import model_list_params
711
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
12+
from .._utils import maybe_transform, async_maybe_transform
813
from .._compat import cached_property
914
from .._resource import SyncAPIResource, AsyncAPIResource
1015
from .._response import (
@@ -13,7 +18,6 @@
1318
async_to_raw_response_wrapper,
1419
async_to_streamed_response_wrapper,
1520
)
16-
from ..types.model import Model
1721
from .._base_client import make_request_options
1822
from ..types.model_list_response import ModelListResponse
1923

@@ -40,22 +44,52 @@ def with_streaming_response(self) -> ModelsResourceWithStreamingResponse:
4044
"""
4145
return ModelsResourceWithStreamingResponse(self)
4246

43-
def retrieve(
47+
def list(
4448
self,
45-
model: str,
4649
*,
50+
page: int | NotGiven = NOT_GIVEN,
51+
per_page: int | NotGiven = NOT_GIVEN,
52+
public_only: bool | NotGiven = NOT_GIVEN,
53+
usecases: List[
54+
Literal[
55+
"MODEL_USECASE_UNKNOWN",
56+
"MODEL_USECASE_AGENT",
57+
"MODEL_USECASE_FINETUNED",
58+
"MODEL_USECASE_KNOWLEDGEBASE",
59+
"MODEL_USECASE_GUARDRAIL",
60+
"MODEL_USECASE_REASONING",
61+
"MODEL_USECASE_SERVERLESS",
62+
]
63+
]
64+
| NotGiven = NOT_GIVEN,
4765
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
4866
# The extra values given here take precedence over values defined on the client or passed to this method.
4967
extra_headers: Headers | None = None,
5068
extra_query: Query | None = None,
5169
extra_body: Body | None = None,
5270
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
53-
) -> Model:
71+
) -> ModelListResponse:
5472
"""
55-
Retrieves a model instance, providing basic information about the model such as
56-
the owner and permissioning.
73+
To list all models, send a GET request to `/v2/gen-ai/models`.
5774
5875
Args:
76+
page: page number.
77+
78+
per_page: items per page.
79+
80+
public_only: only include models that are publicly available.
81+
82+
usecases: include only models defined for the listed usecases.
83+
84+
- MODEL_USECASE_UNKNOWN: The use case of the model is unknown
85+
- MODEL_USECASE_AGENT: The model maybe used in an agent
86+
- MODEL_USECASE_FINETUNED: The model maybe used for fine tuning
87+
- MODEL_USECASE_KNOWLEDGEBASE: The model maybe used for knowledge bases
88+
(embedding models)
89+
- MODEL_USECASE_GUARDRAIL: The model maybe used for guardrails
90+
- MODEL_USECASE_REASONING: The model usecase for reasoning
91+
- MODEL_USECASE_SERVERLESS: The model usecase for serverless inference
92+
5993
extra_headers: Send extra headers
6094
6195
extra_query: Add additional query parameters to the request
@@ -64,36 +98,24 @@ def retrieve(
6498
6599
timeout: Override the client-level default timeout for this request, in seconds
66100
"""
67-
if not model:
68-
raise ValueError(f"Expected a non-empty value for `model` but received {model!r}")
69101
return self._get(
70-
f"/models/{model}"
102+
"/v2/gen-ai/models"
71103
if self._client._base_url_overridden
72-
else f"https://inference.do-ai.run/v1/models/{model}",
104+
else "https://api.digitalocean.com/v2/gen-ai/models",
73105
options=make_request_options(
74-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
75-
),
76-
cast_to=Model,
77-
)
78-
79-
def list(
80-
self,
81-
*,
82-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
83-
# The extra values given here take precedence over values defined on the client or passed to this method.
84-
extra_headers: Headers | None = None,
85-
extra_query: Query | None = None,
86-
extra_body: Body | None = None,
87-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
88-
) -> ModelListResponse:
89-
"""
90-
Lists the currently available models, and provides basic information about each
91-
one such as the owner and availability.
92-
"""
93-
return self._get(
94-
"/models" if self._client._base_url_overridden else "https://inference.do-ai.run/v1/models",
95-
options=make_request_options(
96-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
106+
extra_headers=extra_headers,
107+
extra_query=extra_query,
108+
extra_body=extra_body,
109+
timeout=timeout,
110+
query=maybe_transform(
111+
{
112+
"page": page,
113+
"per_page": per_page,
114+
"public_only": public_only,
115+
"usecases": usecases,
116+
},
117+
model_list_params.ModelListParams,
118+
),
97119
),
98120
cast_to=ModelListResponse,
99121
)
@@ -119,22 +141,52 @@ def with_streaming_response(self) -> AsyncModelsResourceWithStreamingResponse:
119141
"""
120142
return AsyncModelsResourceWithStreamingResponse(self)
121143

122-
async def retrieve(
144+
async def list(
123145
self,
124-
model: str,
125146
*,
147+
page: int | NotGiven = NOT_GIVEN,
148+
per_page: int | NotGiven = NOT_GIVEN,
149+
public_only: bool | NotGiven = NOT_GIVEN,
150+
usecases: List[
151+
Literal[
152+
"MODEL_USECASE_UNKNOWN",
153+
"MODEL_USECASE_AGENT",
154+
"MODEL_USECASE_FINETUNED",
155+
"MODEL_USECASE_KNOWLEDGEBASE",
156+
"MODEL_USECASE_GUARDRAIL",
157+
"MODEL_USECASE_REASONING",
158+
"MODEL_USECASE_SERVERLESS",
159+
]
160+
]
161+
| NotGiven = NOT_GIVEN,
126162
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
127163
# The extra values given here take precedence over values defined on the client or passed to this method.
128164
extra_headers: Headers | None = None,
129165
extra_query: Query | None = None,
130166
extra_body: Body | None = None,
131167
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
132-
) -> Model:
168+
) -> ModelListResponse:
133169
"""
134-
Retrieves a model instance, providing basic information about the model such as
135-
the owner and permissioning.
170+
To list all models, send a GET request to `/v2/gen-ai/models`.
136171
137172
Args:
173+
page: page number.
174+
175+
per_page: items per page.
176+
177+
public_only: only include models that are publicly available.
178+
179+
usecases: include only models defined for the listed usecases.
180+
181+
- MODEL_USECASE_UNKNOWN: The use case of the model is unknown
182+
- MODEL_USECASE_AGENT: The model maybe used in an agent
183+
- MODEL_USECASE_FINETUNED: The model maybe used for fine tuning
184+
- MODEL_USECASE_KNOWLEDGEBASE: The model maybe used for knowledge bases
185+
(embedding models)
186+
- MODEL_USECASE_GUARDRAIL: The model maybe used for guardrails
187+
- MODEL_USECASE_REASONING: The model usecase for reasoning
188+
- MODEL_USECASE_SERVERLESS: The model usecase for serverless inference
189+
138190
extra_headers: Send extra headers
139191
140192
extra_query: Add additional query parameters to the request
@@ -143,36 +195,24 @@ async def retrieve(
143195
144196
timeout: Override the client-level default timeout for this request, in seconds
145197
"""
146-
if not model:
147-
raise ValueError(f"Expected a non-empty value for `model` but received {model!r}")
148198
return await self._get(
149-
f"/models/{model}"
199+
"/v2/gen-ai/models"
150200
if self._client._base_url_overridden
151-
else f"https://inference.do-ai.run/v1/models/{model}",
152-
options=make_request_options(
153-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
154-
),
155-
cast_to=Model,
156-
)
157-
158-
async def list(
159-
self,
160-
*,
161-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
162-
# The extra values given here take precedence over values defined on the client or passed to this method.
163-
extra_headers: Headers | None = None,
164-
extra_query: Query | None = None,
165-
extra_body: Body | None = None,
166-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
167-
) -> ModelListResponse:
168-
"""
169-
Lists the currently available models, and provides basic information about each
170-
one such as the owner and availability.
171-
"""
172-
return await self._get(
173-
"/models" if self._client._base_url_overridden else "https://inference.do-ai.run/v1/models",
201+
else "https://api.digitalocean.com/v2/gen-ai/models",
174202
options=make_request_options(
175-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
203+
extra_headers=extra_headers,
204+
extra_query=extra_query,
205+
extra_body=extra_body,
206+
timeout=timeout,
207+
query=await async_maybe_transform(
208+
{
209+
"page": page,
210+
"per_page": per_page,
211+
"public_only": public_only,
212+
"usecases": usecases,
213+
},
214+
model_list_params.ModelListParams,
215+
),
176216
),
177217
cast_to=ModelListResponse,
178218
)
@@ -182,9 +222,6 @@ class ModelsResourceWithRawResponse:
182222
def __init__(self, models: ModelsResource) -> None:
183223
self._models = models
184224

185-
self.retrieve = to_raw_response_wrapper(
186-
models.retrieve,
187-
)
188225
self.list = to_raw_response_wrapper(
189226
models.list,
190227
)
@@ -194,9 +231,6 @@ class AsyncModelsResourceWithRawResponse:
194231
def __init__(self, models: AsyncModelsResource) -> None:
195232
self._models = models
196233

197-
self.retrieve = async_to_raw_response_wrapper(
198-
models.retrieve,
199-
)
200234
self.list = async_to_raw_response_wrapper(
201235
models.list,
202236
)
@@ -206,9 +240,6 @@ class ModelsResourceWithStreamingResponse:
206240
def __init__(self, models: ModelsResource) -> None:
207241
self._models = models
208242

209-
self.retrieve = to_streamed_response_wrapper(
210-
models.retrieve,
211-
)
212243
self.list = to_streamed_response_wrapper(
213244
models.list,
214245
)
@@ -218,9 +249,6 @@ class AsyncModelsResourceWithStreamingResponse:
218249
def __init__(self, models: AsyncModelsResource) -> None:
219250
self._models = models
220251

221-
self.retrieve = async_to_streamed_response_wrapper(
222-
models.retrieve,
223-
)
224252
self.list = async_to_streamed_response_wrapper(
225253
models.list,
226254
)

src/gradientai/types/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
from __future__ import annotations
44

5-
from .model import Model as Model
65
from .shared import APIMeta as APIMeta, APILinks as APILinks, ChatCompletionTokenLogprob as ChatCompletionTokenLogprob
76
from .api_agent import APIAgent as APIAgent
7+
from .api_model import APIModel as APIModel
88
from .api_agreement import APIAgreement as APIAgreement
99
from .api_workspace import APIWorkspace as APIWorkspace
1010
from .api_agent_model import APIAgentModel as APIAgentModel
1111
from .agent_list_params import AgentListParams as AgentListParams
1212
from .api_model_version import APIModelVersion as APIModelVersion
13+
from .model_list_params import ModelListParams as ModelListParams
1314
from .api_knowledge_base import APIKnowledgeBase as APIKnowledgeBase
1415
from .region_list_params import RegionListParams as RegionListParams
1516
from .agent_create_params import AgentCreateParams as AgentCreateParams

src/gradientai/types/api_model.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import Optional
4+
from datetime import datetime
5+
6+
from .._models import BaseModel
7+
from .api_agreement import APIAgreement
8+
from .api_model_version import APIModelVersion
9+
10+
__all__ = ["APIModel"]
11+
12+
13+
class APIModel(BaseModel):
14+
agreement: Optional[APIAgreement] = None
15+
16+
created_at: Optional[datetime] = None
17+
18+
is_foundational: Optional[bool] = None
19+
20+
name: Optional[str] = None
21+
22+
parent_uuid: Optional[str] = None
23+
24+
updated_at: Optional[datetime] = None
25+
26+
upload_complete: Optional[bool] = None
27+
28+
url: Optional[str] = None
29+
30+
uuid: Optional[str] = None
31+
32+
version: Optional[APIModelVersion] = None

src/gradientai/types/model.py

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)