Skip to content

Commit c3aee20

Browse files
feat(api): add model groups (#87)
1 parent 07ca394 commit c3aee20

File tree

9 files changed

+445
-1
lines changed

9 files changed

+445
-1
lines changed

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 90
1+
configured_endpoints: 92
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/datamini%2Fasktable-bb6c8be98a7d3c5109b7def15a21653d7bade60a2b6939157361c3fe9ef049d9.yml

api.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,19 @@ Methods:
374374
- <code title="get /training">client.trainings.<a href="./src/asktable/resources/trainings.py">list</a>(\*\*<a href="src/asktable/types/training_list_params.py">params</a>) -> <a href="./src/asktable/types/training_list_response.py">SyncPage[TrainingListResponse]</a></code>
375375
- <code title="delete /training/{id}">client.trainings.<a href="./src/asktable/resources/trainings.py">delete</a>(id, \*\*<a href="src/asktable/types/training_delete_params.py">params</a>) -> <a href="./src/asktable/types/training_delete_response.py">object</a></code>
376376

377+
# Project
378+
379+
Types:
380+
381+
```python
382+
from asktable.types import ProjectListModelGroupsResponse
383+
```
384+
385+
Methods:
386+
387+
- <code title="patch /project">client.project.<a href="./src/asktable/resources/project.py">update</a>(\*\*<a href="src/asktable/types/project_update_params.py">params</a>) -> <a href="./src/asktable/types/sys/project.py">Project</a></code>
388+
- <code title="get /project/model-groups">client.project.<a href="./src/asktable/resources/project.py">list_model_groups</a>() -> <a href="./src/asktable/types/project_list_model_groups_response.py">ProjectListModelGroupsResponse</a></code>
389+
377390
# Scores
378391

379392
Types:

src/asktable/_client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
roles,
3131
caches,
3232
scores,
33+
project,
3334
policies,
3435
trainings,
3536
integration,
@@ -78,6 +79,7 @@ class Asktable(SyncAPIClient):
7879
business_glossary: business_glossary.BusinessGlossaryResource
7980
preferences: preferences.PreferencesResource
8081
trainings: trainings.TrainingsResource
82+
project: project.ProjectResource
8183
scores: scores.ScoresResource
8284
with_raw_response: AsktableWithRawResponse
8385
with_streaming_response: AsktableWithStreamedResponse
@@ -151,6 +153,7 @@ def __init__(
151153
self.business_glossary = business_glossary.BusinessGlossaryResource(self)
152154
self.preferences = preferences.PreferencesResource(self)
153155
self.trainings = trainings.TrainingsResource(self)
156+
self.project = project.ProjectResource(self)
154157
self.scores = scores.ScoresResource(self)
155158
self.with_raw_response = AsktableWithRawResponse(self)
156159
self.with_streaming_response = AsktableWithStreamedResponse(self)
@@ -276,6 +279,7 @@ class AsyncAsktable(AsyncAPIClient):
276279
business_glossary: business_glossary.AsyncBusinessGlossaryResource
277280
preferences: preferences.AsyncPreferencesResource
278281
trainings: trainings.AsyncTrainingsResource
282+
project: project.AsyncProjectResource
279283
scores: scores.AsyncScoresResource
280284
with_raw_response: AsyncAsktableWithRawResponse
281285
with_streaming_response: AsyncAsktableWithStreamedResponse
@@ -349,6 +353,7 @@ def __init__(
349353
self.business_glossary = business_glossary.AsyncBusinessGlossaryResource(self)
350354
self.preferences = preferences.AsyncPreferencesResource(self)
351355
self.trainings = trainings.AsyncTrainingsResource(self)
356+
self.project = project.AsyncProjectResource(self)
352357
self.scores = scores.AsyncScoresResource(self)
353358
self.with_raw_response = AsyncAsktableWithRawResponse(self)
354359
self.with_streaming_response = AsyncAsktableWithStreamedResponse(self)
@@ -475,6 +480,7 @@ def __init__(self, client: Asktable) -> None:
475480
self.business_glossary = business_glossary.BusinessGlossaryResourceWithRawResponse(client.business_glossary)
476481
self.preferences = preferences.PreferencesResourceWithRawResponse(client.preferences)
477482
self.trainings = trainings.TrainingsResourceWithRawResponse(client.trainings)
483+
self.project = project.ProjectResourceWithRawResponse(client.project)
478484
self.scores = scores.ScoresResourceWithRawResponse(client.scores)
479485

480486

@@ -497,6 +503,7 @@ def __init__(self, client: AsyncAsktable) -> None:
497503
)
498504
self.preferences = preferences.AsyncPreferencesResourceWithRawResponse(client.preferences)
499505
self.trainings = trainings.AsyncTrainingsResourceWithRawResponse(client.trainings)
506+
self.project = project.AsyncProjectResourceWithRawResponse(client.project)
500507
self.scores = scores.AsyncScoresResourceWithRawResponse(client.scores)
501508

502509

@@ -519,6 +526,7 @@ def __init__(self, client: Asktable) -> None:
519526
)
520527
self.preferences = preferences.PreferencesResourceWithStreamingResponse(client.preferences)
521528
self.trainings = trainings.TrainingsResourceWithStreamingResponse(client.trainings)
529+
self.project = project.ProjectResourceWithStreamingResponse(client.project)
522530
self.scores = scores.ScoresResourceWithStreamingResponse(client.scores)
523531

524532

@@ -541,6 +549,7 @@ def __init__(self, client: AsyncAsktable) -> None:
541549
)
542550
self.preferences = preferences.AsyncPreferencesResourceWithStreamingResponse(client.preferences)
543551
self.trainings = trainings.AsyncTrainingsResourceWithStreamingResponse(client.trainings)
552+
self.project = project.AsyncProjectResourceWithStreamingResponse(client.project)
544553
self.scores = scores.AsyncScoresResourceWithStreamingResponse(client.scores)
545554

546555

src/asktable/resources/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,14 @@
6464
ExtapisResourceWithStreamingResponse,
6565
AsyncExtapisResourceWithStreamingResponse,
6666
)
67+
from .project import (
68+
ProjectResource,
69+
AsyncProjectResource,
70+
ProjectResourceWithRawResponse,
71+
AsyncProjectResourceWithRawResponse,
72+
ProjectResourceWithStreamingResponse,
73+
AsyncProjectResourceWithStreamingResponse,
74+
)
6775
from .policies import (
6876
PoliciesResource,
6977
AsyncPoliciesResource,
@@ -220,6 +228,12 @@
220228
"AsyncTrainingsResourceWithRawResponse",
221229
"TrainingsResourceWithStreamingResponse",
222230
"AsyncTrainingsResourceWithStreamingResponse",
231+
"ProjectResource",
232+
"AsyncProjectResource",
233+
"ProjectResourceWithRawResponse",
234+
"AsyncProjectResourceWithRawResponse",
235+
"ProjectResourceWithStreamingResponse",
236+
"AsyncProjectResourceWithStreamingResponse",
223237
"ScoresResource",
224238
"AsyncScoresResource",
225239
"ScoresResourceWithRawResponse",

src/asktable/resources/project.py

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing import Optional
6+
7+
import httpx
8+
9+
from ..types import project_update_params
10+
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11+
from .._utils import (
12+
maybe_transform,
13+
async_maybe_transform,
14+
)
15+
from .._compat import cached_property
16+
from .._resource import SyncAPIResource, AsyncAPIResource
17+
from .._response import (
18+
to_raw_response_wrapper,
19+
to_streamed_response_wrapper,
20+
async_to_raw_response_wrapper,
21+
async_to_streamed_response_wrapper,
22+
)
23+
from .._base_client import make_request_options
24+
from ..types.sys.project import Project
25+
from ..types.project_list_model_groups_response import ProjectListModelGroupsResponse
26+
27+
__all__ = ["ProjectResource", "AsyncProjectResource"]
28+
29+
30+
class ProjectResource(SyncAPIResource):
31+
@cached_property
32+
def with_raw_response(self) -> ProjectResourceWithRawResponse:
33+
"""
34+
This property can be used as a prefix for any HTTP method call to return the
35+
the raw response object instead of the parsed content.
36+
37+
For more information, see https://www.github.com/DataMini/asktable-python#accessing-raw-response-data-eg-headers
38+
"""
39+
return ProjectResourceWithRawResponse(self)
40+
41+
@cached_property
42+
def with_streaming_response(self) -> ProjectResourceWithStreamingResponse:
43+
"""
44+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
45+
46+
For more information, see https://www.github.com/DataMini/asktable-python#with_streaming_response
47+
"""
48+
return ProjectResourceWithStreamingResponse(self)
49+
50+
def update(
51+
self,
52+
*,
53+
llm_model_group: Optional[str] | NotGiven = NOT_GIVEN,
54+
name: Optional[str] | NotGiven = NOT_GIVEN,
55+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
56+
# The extra values given here take precedence over values defined on the client or passed to this method.
57+
extra_headers: Headers | None = None,
58+
extra_query: Query | None = None,
59+
extra_body: Body | None = None,
60+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
61+
) -> Project:
62+
"""
63+
Update Project Name And Model Group
64+
65+
Args:
66+
llm_model_group: 模型组
67+
68+
name: 项目名称
69+
70+
extra_headers: Send extra headers
71+
72+
extra_query: Add additional query parameters to the request
73+
74+
extra_body: Add additional JSON properties to the request
75+
76+
timeout: Override the client-level default timeout for this request, in seconds
77+
"""
78+
return self._patch(
79+
"/project",
80+
body=maybe_transform(
81+
{
82+
"llm_model_group": llm_model_group,
83+
"name": name,
84+
},
85+
project_update_params.ProjectUpdateParams,
86+
),
87+
options=make_request_options(
88+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
89+
),
90+
cast_to=Project,
91+
)
92+
93+
def list_model_groups(
94+
self,
95+
*,
96+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
97+
# The extra values given here take precedence over values defined on the client or passed to this method.
98+
extra_headers: Headers | None = None,
99+
extra_query: Query | None = None,
100+
extra_body: Body | None = None,
101+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
102+
) -> ProjectListModelGroupsResponse:
103+
"""Get Llm Model Groups"""
104+
return self._get(
105+
"/project/model-groups",
106+
options=make_request_options(
107+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
108+
),
109+
cast_to=ProjectListModelGroupsResponse,
110+
)
111+
112+
113+
class AsyncProjectResource(AsyncAPIResource):
114+
@cached_property
115+
def with_raw_response(self) -> AsyncProjectResourceWithRawResponse:
116+
"""
117+
This property can be used as a prefix for any HTTP method call to return the
118+
the raw response object instead of the parsed content.
119+
120+
For more information, see https://www.github.com/DataMini/asktable-python#accessing-raw-response-data-eg-headers
121+
"""
122+
return AsyncProjectResourceWithRawResponse(self)
123+
124+
@cached_property
125+
def with_streaming_response(self) -> AsyncProjectResourceWithStreamingResponse:
126+
"""
127+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
128+
129+
For more information, see https://www.github.com/DataMini/asktable-python#with_streaming_response
130+
"""
131+
return AsyncProjectResourceWithStreamingResponse(self)
132+
133+
async def update(
134+
self,
135+
*,
136+
llm_model_group: Optional[str] | NotGiven = NOT_GIVEN,
137+
name: Optional[str] | NotGiven = NOT_GIVEN,
138+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
139+
# The extra values given here take precedence over values defined on the client or passed to this method.
140+
extra_headers: Headers | None = None,
141+
extra_query: Query | None = None,
142+
extra_body: Body | None = None,
143+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
144+
) -> Project:
145+
"""
146+
Update Project Name And Model Group
147+
148+
Args:
149+
llm_model_group: 模型组
150+
151+
name: 项目名称
152+
153+
extra_headers: Send extra headers
154+
155+
extra_query: Add additional query parameters to the request
156+
157+
extra_body: Add additional JSON properties to the request
158+
159+
timeout: Override the client-level default timeout for this request, in seconds
160+
"""
161+
return await self._patch(
162+
"/project",
163+
body=await async_maybe_transform(
164+
{
165+
"llm_model_group": llm_model_group,
166+
"name": name,
167+
},
168+
project_update_params.ProjectUpdateParams,
169+
),
170+
options=make_request_options(
171+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
172+
),
173+
cast_to=Project,
174+
)
175+
176+
async def list_model_groups(
177+
self,
178+
*,
179+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
180+
# The extra values given here take precedence over values defined on the client or passed to this method.
181+
extra_headers: Headers | None = None,
182+
extra_query: Query | None = None,
183+
extra_body: Body | None = None,
184+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
185+
) -> ProjectListModelGroupsResponse:
186+
"""Get Llm Model Groups"""
187+
return await self._get(
188+
"/project/model-groups",
189+
options=make_request_options(
190+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
191+
),
192+
cast_to=ProjectListModelGroupsResponse,
193+
)
194+
195+
196+
class ProjectResourceWithRawResponse:
197+
def __init__(self, project: ProjectResource) -> None:
198+
self._project = project
199+
200+
self.update = to_raw_response_wrapper(
201+
project.update,
202+
)
203+
self.list_model_groups = to_raw_response_wrapper(
204+
project.list_model_groups,
205+
)
206+
207+
208+
class AsyncProjectResourceWithRawResponse:
209+
def __init__(self, project: AsyncProjectResource) -> None:
210+
self._project = project
211+
212+
self.update = async_to_raw_response_wrapper(
213+
project.update,
214+
)
215+
self.list_model_groups = async_to_raw_response_wrapper(
216+
project.list_model_groups,
217+
)
218+
219+
220+
class ProjectResourceWithStreamingResponse:
221+
def __init__(self, project: ProjectResource) -> None:
222+
self._project = project
223+
224+
self.update = to_streamed_response_wrapper(
225+
project.update,
226+
)
227+
self.list_model_groups = to_streamed_response_wrapper(
228+
project.list_model_groups,
229+
)
230+
231+
232+
class AsyncProjectResourceWithStreamingResponse:
233+
def __init__(self, project: AsyncProjectResource) -> None:
234+
self._project = project
235+
236+
self.update = async_to_streamed_response_wrapper(
237+
project.update,
238+
)
239+
self.list_model_groups = async_to_streamed_response_wrapper(
240+
project.list_model_groups,
241+
)

src/asktable/types/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
from .policy_update_params import PolicyUpdateParams as PolicyUpdateParams
3535
from .training_list_params import TrainingListParams as TrainingListParams
3636
from .entry_with_definition import EntryWithDefinition as EntryWithDefinition
37+
from .project_update_params import ProjectUpdateParams as ProjectUpdateParams
3738
from .score_create_response import ScoreCreateResponse as ScoreCreateResponse
3839
from .chat_retrieve_response import ChatRetrieveResponse as ChatRetrieveResponse
3940
from .datasource_list_params import DatasourceListParams as DatasourceListParams
@@ -65,3 +66,4 @@
6566
from .business_glossary_create_response import BusinessGlossaryCreateResponse as BusinessGlossaryCreateResponse
6667
from .datasource_create_from_file_params import DatasourceCreateFromFileParams as DatasourceCreateFromFileParams
6768
from .integration_create_excel_ds_params import IntegrationCreateExcelDsParams as IntegrationCreateExcelDsParams
69+
from .project_list_model_groups_response import ProjectListModelGroupsResponse as ProjectListModelGroupsResponse
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import List
4+
from typing_extensions import TypeAlias
5+
6+
from .sys.model_group import ModelGroup
7+
8+
__all__ = ["ProjectListModelGroupsResponse"]
9+
10+
ProjectListModelGroupsResponse: TypeAlias = List[ModelGroup]

0 commit comments

Comments
 (0)