adaptive-sdk 0.1.6__py3-none-any.whl → 0.1.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- adaptive_sdk/base_client.py +16 -4
- adaptive_sdk/client.py +8 -2
- adaptive_sdk/external/reward_client.py +22 -2
- adaptive_sdk/graphql_client/__init__.py +3 -3
- adaptive_sdk/graphql_client/async_base_client_open_telemetry.py +6 -6
- adaptive_sdk/graphql_client/async_client.py +29 -29
- adaptive_sdk/graphql_client/base_client_open_telemetry.py +6 -6
- adaptive_sdk/graphql_client/base_operation.py +3 -3
- adaptive_sdk/graphql_client/client.py +29 -29
- adaptive_sdk/graphql_client/custom_fields.py +73 -26
- adaptive_sdk/graphql_client/custom_mutations.py +64 -58
- adaptive_sdk/graphql_client/custom_queries.py +40 -34
- adaptive_sdk/graphql_client/custom_typing_fields.py +53 -0
- adaptive_sdk/graphql_client/enums.py +17 -2
- adaptive_sdk/graphql_client/fragments.py +1 -3
- adaptive_sdk/graphql_client/input_types.py +21 -4
- adaptive_sdk/resources/datasets.py +16 -13
- {adaptive_sdk-0.1.6.dist-info → adaptive_sdk-0.1.7.dist-info}/METADATA +1 -1
- {adaptive_sdk-0.1.6.dist-info → adaptive_sdk-0.1.7.dist-info}/RECORD +20 -20
- {adaptive_sdk-0.1.6.dist-info → adaptive_sdk-0.1.7.dist-info}/WHEEL +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from typing import Any, Dict, List, Optional
|
|
2
2
|
from . import CompletionGroupBy
|
|
3
|
-
from .custom_fields import AbcampaignFields, CompletionConnectionFields, CompletionFields, CompletionGroupDataConnectionFields, ComputePoolFields, ContractFields, CustomRecipeFields, DatasetFields, GlobalUsageFields, GraderFields, HarmonyGroupFields, JobArtifactFields, JobConnectionFields, JobFields, JudgeFields, MetaObjectFields, MetricFields, ModelFields, PrebuiltConfigDefinitionFields, PrebuiltCriteriaFields, RemoteConfigOutputFields, RemoteEnvFields, RoleFields, SystemPromptTemplateFields, TeamFields, ToolProviderFields, UsageAggregateItemFields, UsageAggregatePerUseCaseItemFields, UseCaseFields, UserFields
|
|
3
|
+
from .custom_fields import AbcampaignFields, CompletionConnectionFields, CompletionFields, CompletionGroupDataConnectionFields, ComputePoolFields, ContractFields, CustomRecipeFields, DatasetFields, DatasetUploadProcessingStatusFields, GlobalUsageFields, GraderFields, HarmonyGroupFields, JobArtifactFields, JobConnectionFields, JobFields, JudgeFields, MetaObjectFields, MetricFields, ModelFields, PrebuiltConfigDefinitionFields, PrebuiltCriteriaFields, RemoteConfigOutputFields, RemoteEnvFields, RoleFields, SystemPromptTemplateFields, TeamFields, ToolProviderFields, UsageAggregateItemFields, UsageAggregatePerUseCaseItemFields, UseCaseFields, UserFields
|
|
4
4
|
from .custom_typing_fields import GraphQLField
|
|
5
|
-
from .input_types import AbCampaignFilter, ArtifactFilter, CursorPageInput, CustomRecipeFilterInput, DatasetCreateFromFilters, FeedbackFilterInput, GlobalUsageFilterInput, ListCompletionsFilterInput, ListJobsFilterInput, ModelFilter, OrderPair, UsageFilterInput, UsagePerUseCaseFilterInput, UseCaseFilter
|
|
5
|
+
from .input_types import AbCampaignFilter, ArtifactFilter, CursorPageInput, CustomRecipeFilterInput, DatasetCreateFromFilters, DatasetUploadProcessingStatusInput, FeedbackFilterInput, GlobalUsageFilterInput, ListCompletionsFilterInput, ListJobsFilterInput, ModelFilter, OrderPair, UsageFilterInput, UsagePerUseCaseFilterInput, UseCaseFilter
|
|
6
6
|
|
|
7
7
|
class Query:
|
|
8
8
|
"""@private"""
|
|
@@ -10,13 +10,13 @@ class Query:
|
|
|
10
10
|
@classmethod
|
|
11
11
|
def ab_campaigns(cls, filter: AbCampaignFilter) -> AbcampaignFields:
|
|
12
12
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'AbCampaignFilter!', 'value': filter}}
|
|
13
|
-
cleared_arguments = {key: value for
|
|
13
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
14
14
|
return AbcampaignFields(field_name='abCampaigns', arguments=cleared_arguments)
|
|
15
15
|
|
|
16
16
|
@classmethod
|
|
17
17
|
def ab_campaign(cls, id_or_key: str) -> AbcampaignFields:
|
|
18
18
|
arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}}
|
|
19
|
-
cleared_arguments = {key: value for
|
|
19
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
20
20
|
return AbcampaignFields(field_name='abCampaign', arguments=cleared_arguments)
|
|
21
21
|
|
|
22
22
|
@classmethod
|
|
@@ -26,79 +26,85 @@ class Query:
|
|
|
26
26
|
@classmethod
|
|
27
27
|
def custom_recipes(cls, use_case: str, filter: CustomRecipeFilterInput) -> CustomRecipeFields:
|
|
28
28
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}, 'filter': {'type': 'CustomRecipeFilterInput!', 'value': filter}}
|
|
29
|
-
cleared_arguments = {key: value for
|
|
29
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
30
30
|
return CustomRecipeFields(field_name='customRecipes', arguments=cleared_arguments)
|
|
31
31
|
|
|
32
32
|
@classmethod
|
|
33
33
|
def custom_recipe(cls, id_or_key: str, use_case: str) -> CustomRecipeFields:
|
|
34
34
|
arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}, 'useCase': {'type': 'IdOrKey!', 'value': use_case}}
|
|
35
|
-
cleared_arguments = {key: value for
|
|
35
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
36
36
|
return CustomRecipeFields(field_name='customRecipe', arguments=cleared_arguments)
|
|
37
37
|
|
|
38
38
|
@classmethod
|
|
39
39
|
def datasets(cls, use_case: str) -> DatasetFields:
|
|
40
40
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}}
|
|
41
|
-
cleared_arguments = {key: value for
|
|
41
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
42
42
|
return DatasetFields(field_name='datasets', arguments=cleared_arguments)
|
|
43
43
|
|
|
44
44
|
@classmethod
|
|
45
45
|
def dataset(cls, id_or_key: str, use_case: str) -> DatasetFields:
|
|
46
46
|
arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}, 'useCase': {'type': 'IdOrKey!', 'value': use_case}}
|
|
47
|
-
cleared_arguments = {key: value for
|
|
47
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
48
48
|
return DatasetFields(field_name='dataset', arguments=cleared_arguments)
|
|
49
49
|
|
|
50
50
|
@classmethod
|
|
51
51
|
def preview_dataset_from_filters(cls, input: DatasetCreateFromFilters) -> GraphQLField:
|
|
52
52
|
arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'DatasetCreateFromFilters!', 'value': input}}
|
|
53
|
-
cleared_arguments = {key: value for
|
|
53
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
54
54
|
return GraphQLField(field_name='previewDatasetFromFilters', arguments=cleared_arguments)
|
|
55
55
|
|
|
56
|
+
@classmethod
|
|
57
|
+
def dataset_upload_processing_status(cls, input: DatasetUploadProcessingStatusInput) -> DatasetUploadProcessingStatusFields:
|
|
58
|
+
arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'DatasetUploadProcessingStatusInput!', 'value': input}}
|
|
59
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
60
|
+
return DatasetUploadProcessingStatusFields(field_name='datasetUploadProcessingStatus', arguments=cleared_arguments)
|
|
61
|
+
|
|
56
62
|
@classmethod
|
|
57
63
|
def completions(cls, filter: ListCompletionsFilterInput, page: CursorPageInput, order: List[OrderPair]) -> CompletionConnectionFields:
|
|
58
64
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'ListCompletionsFilterInput!', 'value': filter}, 'page': {'type': 'CursorPageInput!', 'value': page}, 'order': {'type': '[OrderPair!]!', 'value': order}}
|
|
59
|
-
cleared_arguments = {key: value for
|
|
65
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
60
66
|
return CompletionConnectionFields(field_name='completions', arguments=cleared_arguments)
|
|
61
67
|
|
|
62
68
|
@classmethod
|
|
63
69
|
def completions_grouped(cls, filter: ListCompletionsFilterInput, feedback_filter: FeedbackFilterInput, group_by: CompletionGroupBy, page: CursorPageInput, order: List[OrderPair]) -> CompletionGroupDataConnectionFields:
|
|
64
70
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'ListCompletionsFilterInput!', 'value': filter}, 'feedbackFilter': {'type': 'FeedbackFilterInput!', 'value': feedback_filter}, 'groupBy': {'type': 'CompletionGroupBy!', 'value': group_by}, 'page': {'type': 'CursorPageInput!', 'value': page}, 'order': {'type': '[OrderPair!]!', 'value': order}}
|
|
65
|
-
cleared_arguments = {key: value for
|
|
71
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
66
72
|
return CompletionGroupDataConnectionFields(field_name='completionsGrouped', arguments=cleared_arguments)
|
|
67
73
|
|
|
68
74
|
@classmethod
|
|
69
75
|
def completion(cls, use_case: str, id: Any) -> CompletionFields:
|
|
70
76
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}, 'id': {'type': 'UUID!', 'value': id}}
|
|
71
|
-
cleared_arguments = {key: value for
|
|
77
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
72
78
|
return CompletionFields(field_name='completion', arguments=cleared_arguments)
|
|
73
79
|
|
|
74
80
|
@classmethod
|
|
75
81
|
def completion_download_url(cls, filter: ListCompletionsFilterInput) -> GraphQLField:
|
|
76
82
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'ListCompletionsFilterInput!', 'value': filter}}
|
|
77
|
-
cleared_arguments = {key: value for
|
|
83
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
78
84
|
return GraphQLField(field_name='completionDownloadUrl', arguments=cleared_arguments)
|
|
79
85
|
|
|
80
86
|
@classmethod
|
|
81
87
|
def completion_as_dataset_download_url(cls, filter: ListCompletionsFilterInput) -> GraphQLField:
|
|
82
88
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'ListCompletionsFilterInput!', 'value': filter}}
|
|
83
|
-
cleared_arguments = {key: value for
|
|
89
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
84
90
|
return GraphQLField(field_name='completionAsDatasetDownloadUrl', arguments=cleared_arguments)
|
|
85
91
|
|
|
86
92
|
@classmethod
|
|
87
93
|
def model_usage(cls, filter: UsageFilterInput) -> UsageAggregateItemFields:
|
|
88
94
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'UsageFilterInput!', 'value': filter}}
|
|
89
|
-
cleared_arguments = {key: value for
|
|
95
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
90
96
|
return UsageAggregateItemFields(field_name='modelUsage', arguments=cleared_arguments)
|
|
91
97
|
|
|
92
98
|
@classmethod
|
|
93
99
|
def model_usage_by_use_case(cls, filter: UsagePerUseCaseFilterInput) -> UsageAggregatePerUseCaseItemFields:
|
|
94
100
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'UsagePerUseCaseFilterInput!', 'value': filter}}
|
|
95
|
-
cleared_arguments = {key: value for
|
|
101
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
96
102
|
return UsageAggregatePerUseCaseItemFields(field_name='modelUsageByUseCase', arguments=cleared_arguments)
|
|
97
103
|
|
|
98
104
|
@classmethod
|
|
99
105
|
def global_usage(cls, filter: GlobalUsageFilterInput) -> GlobalUsageFields:
|
|
100
106
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'GlobalUsageFilterInput!', 'value': filter}}
|
|
101
|
-
cleared_arguments = {key: value for
|
|
107
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
102
108
|
return GlobalUsageFields(field_name='globalUsage', arguments=cleared_arguments)
|
|
103
109
|
|
|
104
110
|
@classmethod
|
|
@@ -108,13 +114,13 @@ class Query:
|
|
|
108
114
|
@classmethod
|
|
109
115
|
def jobs(cls, page: CursorPageInput, filter: ListJobsFilterInput, order: List[OrderPair]) -> JobConnectionFields:
|
|
110
116
|
arguments: Dict[str, Dict[str, Any]] = {'page': {'type': 'CursorPageInput!', 'value': page}, 'filter': {'type': 'ListJobsFilterInput!', 'value': filter}, 'order': {'type': '[OrderPair!]!', 'value': order}}
|
|
111
|
-
cleared_arguments = {key: value for
|
|
117
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
112
118
|
return JobConnectionFields(field_name='jobs', arguments=cleared_arguments)
|
|
113
119
|
|
|
114
120
|
@classmethod
|
|
115
121
|
def job(cls, id: Any) -> JobFields:
|
|
116
122
|
arguments: Dict[str, Dict[str, Any]] = {'id': {'type': 'UUID!', 'value': id}}
|
|
117
|
-
cleared_arguments = {key: value for
|
|
123
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
118
124
|
return JobFields(field_name='job', arguments=cleared_arguments)
|
|
119
125
|
|
|
120
126
|
@classmethod
|
|
@@ -124,20 +130,20 @@ class Query:
|
|
|
124
130
|
@classmethod
|
|
125
131
|
def metric(cls, id_or_key: str) -> MetricFields:
|
|
126
132
|
arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}}
|
|
127
|
-
cleared_arguments = {key: value for
|
|
133
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
128
134
|
return MetricFields(field_name='metric', arguments=cleared_arguments)
|
|
129
135
|
|
|
130
136
|
@classmethod
|
|
131
137
|
def models(cls, filter: ModelFilter) -> ModelFields:
|
|
132
138
|
"""List all models that were created in the app"""
|
|
133
139
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'ModelFilter!', 'value': filter}}
|
|
134
|
-
cleared_arguments = {key: value for
|
|
140
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
135
141
|
return ModelFields(field_name='models', arguments=cleared_arguments)
|
|
136
142
|
|
|
137
143
|
@classmethod
|
|
138
144
|
def model(cls, id_or_key: str) -> ModelFields:
|
|
139
145
|
arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}}
|
|
140
|
-
cleared_arguments = {key: value for
|
|
146
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
141
147
|
return ModelFields(field_name='model', arguments=cleared_arguments)
|
|
142
148
|
|
|
143
149
|
@classmethod
|
|
@@ -159,13 +165,13 @@ class Query:
|
|
|
159
165
|
@classmethod
|
|
160
166
|
def use_cases(cls, filter: UseCaseFilter) -> UseCaseFields:
|
|
161
167
|
arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'UseCaseFilter!', 'value': filter}}
|
|
162
|
-
cleared_arguments = {key: value for
|
|
168
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
163
169
|
return UseCaseFields(field_name='useCases', arguments=cleared_arguments)
|
|
164
170
|
|
|
165
171
|
@classmethod
|
|
166
172
|
def use_case(cls, id_or_key: str) -> UseCaseFields:
|
|
167
173
|
arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}}
|
|
168
|
-
cleared_arguments = {key: value for
|
|
174
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
169
175
|
return UseCaseFields(field_name='useCase', arguments=cleared_arguments)
|
|
170
176
|
|
|
171
177
|
@classmethod
|
|
@@ -192,19 +198,19 @@ class Query:
|
|
|
192
198
|
@classmethod
|
|
193
199
|
def judge(cls, id: str, use_case: str, *, version: Optional[int]=None) -> JudgeFields:
|
|
194
200
|
arguments: Dict[str, Dict[str, Any]] = {'id': {'type': 'IdOrKey!', 'value': id}, 'useCase': {'type': 'IdOrKey!', 'value': use_case}, 'version': {'type': 'Int', 'value': version}}
|
|
195
|
-
cleared_arguments = {key: value for
|
|
201
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
196
202
|
return JudgeFields(field_name='judge', arguments=cleared_arguments)
|
|
197
203
|
|
|
198
204
|
@classmethod
|
|
199
205
|
def judges(cls, use_case: str) -> JudgeFields:
|
|
200
206
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}}
|
|
201
|
-
cleared_arguments = {key: value for
|
|
207
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
202
208
|
return JudgeFields(field_name='judges', arguments=cleared_arguments)
|
|
203
209
|
|
|
204
210
|
@classmethod
|
|
205
211
|
def judge_versions(cls, use_case: str, key: str) -> JudgeFields:
|
|
206
212
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}, 'key': {'type': 'String!', 'value': key}}
|
|
207
|
-
cleared_arguments = {key: value for
|
|
213
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
208
214
|
return JudgeFields(field_name='judgeVersions', arguments=cleared_arguments)
|
|
209
215
|
|
|
210
216
|
@classmethod
|
|
@@ -214,13 +220,13 @@ class Query:
|
|
|
214
220
|
@classmethod
|
|
215
221
|
def grader(cls, id: str, use_case: str) -> GraderFields:
|
|
216
222
|
arguments: Dict[str, Dict[str, Any]] = {'id': {'type': 'IdOrKey!', 'value': id}, 'useCase': {'type': 'IdOrKey!', 'value': use_case}}
|
|
217
|
-
cleared_arguments = {key: value for
|
|
223
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
218
224
|
return GraderFields(field_name='grader', arguments=cleared_arguments)
|
|
219
225
|
|
|
220
226
|
@classmethod
|
|
221
227
|
def graders(cls, use_case: str) -> GraderFields:
|
|
222
228
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}}
|
|
223
|
-
cleared_arguments = {key: value for
|
|
229
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
224
230
|
return GraderFields(field_name='graders', arguments=cleared_arguments)
|
|
225
231
|
|
|
226
232
|
@classmethod
|
|
@@ -230,31 +236,31 @@ class Query:
|
|
|
230
236
|
@classmethod
|
|
231
237
|
def test_remote_env_2(cls, url: str) -> RemoteConfigOutputFields:
|
|
232
238
|
arguments: Dict[str, Dict[str, Any]] = {'url': {'type': 'String!', 'value': url}}
|
|
233
|
-
cleared_arguments = {key: value for
|
|
239
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
234
240
|
return RemoteConfigOutputFields(field_name='testRemoteEnv2', arguments=cleared_arguments)
|
|
235
241
|
|
|
236
242
|
@classmethod
|
|
237
243
|
def validate_data_schema_for_grader(cls, grader: str, dataset: str, usecase: str) -> GraphQLField:
|
|
238
244
|
arguments: Dict[str, Dict[str, Any]] = {'grader': {'type': 'IdOrKey!', 'value': grader}, 'dataset': {'type': 'IdOrKey!', 'value': dataset}, 'usecase': {'type': 'IdOrKey!', 'value': usecase}}
|
|
239
|
-
cleared_arguments = {key: value for
|
|
245
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
240
246
|
return GraphQLField(field_name='validateDataSchemaForGrader', arguments=cleared_arguments)
|
|
241
247
|
|
|
242
248
|
@classmethod
|
|
243
249
|
def tool_provider(cls, id_or_key: str, use_case: str) -> ToolProviderFields:
|
|
244
250
|
arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}, 'useCase': {'type': 'IdOrKey!', 'value': use_case}}
|
|
245
|
-
cleared_arguments = {key: value for
|
|
251
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
246
252
|
return ToolProviderFields(field_name='toolProvider', arguments=cleared_arguments)
|
|
247
253
|
|
|
248
254
|
@classmethod
|
|
249
255
|
def artifacts(cls, use_case: str, *, filter: Optional[ArtifactFilter]=None) -> JobArtifactFields:
|
|
250
256
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}, 'filter': {'type': 'ArtifactFilter', 'value': filter}}
|
|
251
|
-
cleared_arguments = {key: value for
|
|
257
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
252
258
|
return JobArtifactFields(field_name='artifacts', arguments=cleared_arguments)
|
|
253
259
|
|
|
254
260
|
@classmethod
|
|
255
261
|
def artifact(cls, use_case: str, id: Any) -> JobArtifactFields:
|
|
256
262
|
arguments: Dict[str, Dict[str, Any]] = {'useCase': {'type': 'IdOrKey!', 'value': use_case}, 'id': {'type': 'UUID!', 'value': id}}
|
|
257
|
-
cleared_arguments = {key: value for
|
|
263
|
+
cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
|
|
258
264
|
return JobArtifactFields(field_name='artifact', arguments=cleared_arguments)
|
|
259
265
|
|
|
260
266
|
@classmethod
|
|
@@ -81,6 +81,13 @@ class BillingUsageGraphQLField(GraphQLField):
|
|
|
81
81
|
self._alias = alias
|
|
82
82
|
return self
|
|
83
83
|
|
|
84
|
+
class BufferInfoGraphQLField(GraphQLField):
|
|
85
|
+
"""@private"""
|
|
86
|
+
|
|
87
|
+
def alias(self, alias: str) -> 'BufferInfoGraphQLField':
|
|
88
|
+
self._alias = alias
|
|
89
|
+
return self
|
|
90
|
+
|
|
84
91
|
class ChatMessageGraphQLField(GraphQLField):
|
|
85
92
|
"""@private"""
|
|
86
93
|
|
|
@@ -221,6 +228,20 @@ class DatasetMetricUsageGraphQLField(GraphQLField):
|
|
|
221
228
|
self._alias = alias
|
|
222
229
|
return self
|
|
223
230
|
|
|
231
|
+
class DatasetProgressGraphQLField(GraphQLField):
|
|
232
|
+
"""@private"""
|
|
233
|
+
|
|
234
|
+
def alias(self, alias: str) -> 'DatasetProgressGraphQLField':
|
|
235
|
+
self._alias = alias
|
|
236
|
+
return self
|
|
237
|
+
|
|
238
|
+
class DatasetUploadProcessingStatusGraphQLField(GraphQLField):
|
|
239
|
+
"""@private"""
|
|
240
|
+
|
|
241
|
+
def alias(self, alias: str) -> 'DatasetUploadProcessingStatusGraphQLField':
|
|
242
|
+
self._alias = alias
|
|
243
|
+
return self
|
|
244
|
+
|
|
224
245
|
class DatasetValidationOutputGraphQLField(GraphQLField):
|
|
225
246
|
"""@private"""
|
|
226
247
|
|
|
@@ -309,6 +330,31 @@ class HarmonyGroupGraphQLField(GraphQLField):
|
|
|
309
330
|
self._alias = alias
|
|
310
331
|
return self
|
|
311
332
|
|
|
333
|
+
class HarmonyGroupMetricEventUnion(GraphQLField):
|
|
334
|
+
"""@private"""
|
|
335
|
+
|
|
336
|
+
def on(self, type_name: str, *subfields: GraphQLField) -> 'HarmonyGroupMetricEventUnion':
|
|
337
|
+
self._inline_fragments[type_name] = subfields
|
|
338
|
+
return self
|
|
339
|
+
|
|
340
|
+
def alias(self, alias: str) -> 'HarmonyGroupMetricEventUnion':
|
|
341
|
+
self._alias = alias
|
|
342
|
+
return self
|
|
343
|
+
|
|
344
|
+
class HarmonyMemoryUsageGraphQLField(GraphQLField):
|
|
345
|
+
"""@private"""
|
|
346
|
+
|
|
347
|
+
def alias(self, alias: str) -> 'HarmonyMemoryUsageGraphQLField':
|
|
348
|
+
self._alias = alias
|
|
349
|
+
return self
|
|
350
|
+
|
|
351
|
+
class HarmonyMidMetricsGraphQLField(GraphQLField):
|
|
352
|
+
"""@private"""
|
|
353
|
+
|
|
354
|
+
def alias(self, alias: str) -> 'HarmonyMidMetricsGraphQLField':
|
|
355
|
+
self._alias = alias
|
|
356
|
+
return self
|
|
357
|
+
|
|
312
358
|
class InteractionOutputGraphQLField(GraphQLField):
|
|
313
359
|
"""@private"""
|
|
314
360
|
|
|
@@ -590,6 +636,13 @@ class ShareGraphQLField(GraphQLField):
|
|
|
590
636
|
self._alias = alias
|
|
591
637
|
return self
|
|
592
638
|
|
|
639
|
+
class SubscriptionRootGraphQLField(GraphQLField):
|
|
640
|
+
"""@private"""
|
|
641
|
+
|
|
642
|
+
def alias(self, alias: str) -> 'SubscriptionRootGraphQLField':
|
|
643
|
+
self._alias = alias
|
|
644
|
+
return self
|
|
645
|
+
|
|
593
646
|
class SystemPromptTemplateGraphQLField(GraphQLField):
|
|
594
647
|
"""@private"""
|
|
595
648
|
|
|
@@ -47,6 +47,12 @@ class DatasetSource(str, Enum):
|
|
|
47
47
|
GENERATING = 'GENERATING'
|
|
48
48
|
FILTERED = 'FILTERED'
|
|
49
49
|
|
|
50
|
+
class DatasetStatus(str, Enum):
|
|
51
|
+
"""@public"""
|
|
52
|
+
PROCESSING = 'PROCESSING'
|
|
53
|
+
READY = 'READY'
|
|
54
|
+
FAILED = 'FAILED'
|
|
55
|
+
|
|
50
56
|
class DateBucketUnit(str, Enum):
|
|
51
57
|
"""@public"""
|
|
52
58
|
HOUR = 'HOUR'
|
|
@@ -133,10 +139,13 @@ class MetricScoringType(str, Enum):
|
|
|
133
139
|
HIGHER_IS_BETTER = 'HIGHER_IS_BETTER'
|
|
134
140
|
LOWER_IS_BETTER = 'LOWER_IS_BETTER'
|
|
135
141
|
|
|
136
|
-
class
|
|
142
|
+
class ModelCapabilityFilter(str, Enum):
|
|
137
143
|
"""@public"""
|
|
138
144
|
Embedding = 'Embedding'
|
|
139
|
-
|
|
145
|
+
TextGeneration = 'TextGeneration'
|
|
146
|
+
ImageUnderstanding = 'ImageUnderstanding'
|
|
147
|
+
Reasoning = 'Reasoning'
|
|
148
|
+
Regression = 'Regression'
|
|
140
149
|
|
|
141
150
|
class ModelOnline(str, Enum):
|
|
142
151
|
"""@public"""
|
|
@@ -202,6 +211,12 @@ class SelectionTypeInput(str, Enum):
|
|
|
202
211
|
RANDOM = 'RANDOM'
|
|
203
212
|
LAST = 'LAST'
|
|
204
213
|
|
|
214
|
+
class SessionStatus(str, Enum):
|
|
215
|
+
"""@public"""
|
|
216
|
+
PENDING = 'PENDING'
|
|
217
|
+
DONE = 'DONE'
|
|
218
|
+
ERROR = 'ERROR'
|
|
219
|
+
|
|
205
220
|
class SortDirection(str, Enum):
|
|
206
221
|
"""@public"""
|
|
207
222
|
ASC = 'ASC'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import Annotated, Any, List, Literal, Optional, Union
|
|
2
2
|
from pydantic import Field
|
|
3
3
|
from .base_model import BaseModel
|
|
4
|
-
from .enums import AbcampaignStatus, CompletionSource, DatasetKind, FeedbackType, GraderTypeEnum, HarmonyStatus, JobArtifactKind, JobKind, JobStatus, JobStatusOutput, JudgeCapability, MetricKind, MetricScoringType,
|
|
4
|
+
from .enums import AbcampaignStatus, CompletionSource, DatasetKind, FeedbackType, GraderTypeEnum, HarmonyStatus, JobArtifactKind, JobKind, JobStatus, JobStatusOutput, JudgeCapability, MetricKind, MetricScoringType, ModelOnline, PrebuiltCriteriaKey, ProviderName, RemoteEnvStatus
|
|
5
5
|
|
|
6
6
|
class AbCampaignCreateData(BaseModel):
|
|
7
7
|
"""@public"""
|
|
@@ -245,7 +245,6 @@ class ModelData(BaseModel):
|
|
|
245
245
|
is_adapter: bool = Field(alias='isAdapter')
|
|
246
246
|
is_training: bool = Field(alias='isTraining')
|
|
247
247
|
created_at: int = Field(alias='createdAt')
|
|
248
|
-
kind: ModelKindFilter
|
|
249
248
|
size: Optional[str]
|
|
250
249
|
compute_config: Optional['ModelDataComputeConfig'] = Field(alias='computeConfig')
|
|
251
250
|
|
|
@@ -535,7 +534,6 @@ class ModelDataAdmin(BaseModel):
|
|
|
535
534
|
is_adapter: bool = Field(alias='isAdapter')
|
|
536
535
|
is_training: bool = Field(alias='isTraining')
|
|
537
536
|
created_at: int = Field(alias='createdAt')
|
|
538
|
-
kind: ModelKindFilter
|
|
539
537
|
size: Optional[str]
|
|
540
538
|
|
|
541
539
|
class ModelDataAdminUseCases(BaseModel):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import Any, List, Optional
|
|
2
2
|
from pydantic import Field
|
|
3
3
|
from .base_model import BaseModel
|
|
4
|
-
from .enums import AbcampaignStatus, CompletionGroupBy, CompletionSource, DatasetKind, DatasetSource, DateBucketUnit, ExternalModelProviderName, FeedbackType, GraderTypeEnum, JobArtifactKind, JobKind, JobStatus, MetricAggregation, MetricKind, MetricScoringType,
|
|
4
|
+
from .enums import AbcampaignStatus, CompletionGroupBy, CompletionSource, DatasetKind, DatasetSource, DateBucketUnit, ExternalModelProviderName, FeedbackType, GraderTypeEnum, JobArtifactKind, JobKind, JobStatus, MetricAggregation, MetricKind, MetricScoringType, ModelCapabilityFilter, ModelOnline, OpenAIModel, PrebuiltCriteriaKey, Protocol, SelectionTypeInput, SortDirection, TimeseriesInterval, UnitPosition
|
|
5
5
|
|
|
6
6
|
class AbCampaignFilter(BaseModel):
|
|
7
7
|
"""@private"""
|
|
@@ -71,6 +71,16 @@ class AzureProviderDataInput(BaseModel):
|
|
|
71
71
|
external_model_id: str = Field(alias='externalModelId')
|
|
72
72
|
endpoint: str
|
|
73
73
|
|
|
74
|
+
class CancelAllocationInput(BaseModel):
|
|
75
|
+
"""@private"""
|
|
76
|
+
harmony_group: str = Field(alias='harmonyGroup')
|
|
77
|
+
job_id: str = Field(alias='jobId')
|
|
78
|
+
|
|
79
|
+
class CapabilityFilter(BaseModel):
|
|
80
|
+
"""@private"""
|
|
81
|
+
any: Optional[List[ModelCapabilityFilter]] = None
|
|
82
|
+
all: Optional[List[ModelCapabilityFilter]] = None
|
|
83
|
+
|
|
74
84
|
class CompletionComparisonFilterInput(BaseModel):
|
|
75
85
|
"""@private"""
|
|
76
86
|
metric: str
|
|
@@ -162,6 +172,11 @@ class DatasetCreateFromMultipartUpload(BaseModel):
|
|
|
162
172
|
source: Optional[DatasetSource] = None
|
|
163
173
|
upload_session_id: str = Field(alias='uploadSessionId')
|
|
164
174
|
|
|
175
|
+
class DatasetUploadProcessingStatusInput(BaseModel):
|
|
176
|
+
"""@private"""
|
|
177
|
+
use_case: str = Field(alias='useCase')
|
|
178
|
+
dataset_id: Any = Field(alias='datasetId')
|
|
179
|
+
|
|
165
180
|
class EmojiInput(BaseModel):
|
|
166
181
|
"""@private"""
|
|
167
182
|
native: str
|
|
@@ -257,7 +272,7 @@ class JudgeCreate(BaseModel):
|
|
|
257
272
|
key: Optional[str] = None
|
|
258
273
|
name: str
|
|
259
274
|
criteria: str
|
|
260
|
-
examples: List['JudgeExampleInput'] = Field(default_factory=lambda
|
|
275
|
+
examples: List['JudgeExampleInput'] = Field(default_factory=lambda: [])
|
|
261
276
|
model: str
|
|
262
277
|
metric: Optional[str] = None
|
|
263
278
|
|
|
@@ -354,7 +369,7 @@ class ModelFilter(BaseModel):
|
|
|
354
369
|
in_storage: Optional[bool] = Field(alias='inStorage', default=None)
|
|
355
370
|
available: Optional[bool] = None
|
|
356
371
|
trainable: Optional[bool] = None
|
|
357
|
-
|
|
372
|
+
capabilities: Optional['CapabilityFilter'] = None
|
|
358
373
|
view_all: Optional[bool] = Field(alias='viewAll', default=None)
|
|
359
374
|
online: Optional[List[ModelOnline]] = None
|
|
360
375
|
|
|
@@ -379,7 +394,7 @@ class ModelServiceDisconnect(BaseModel):
|
|
|
379
394
|
class ModelServiceFilter(BaseModel):
|
|
380
395
|
"""@private"""
|
|
381
396
|
model: Optional[str] = None
|
|
382
|
-
|
|
397
|
+
capabilities: Optional['CapabilityFilter'] = None
|
|
383
398
|
|
|
384
399
|
class NvidiaProviderDataInput(BaseModel):
|
|
385
400
|
"""@private"""
|
|
@@ -609,7 +624,9 @@ ListCompletionsFilterInput.model_rebuild()
|
|
|
609
624
|
ListJobsFilterInput.model_rebuild()
|
|
610
625
|
MetricGetOrCreate.model_rebuild()
|
|
611
626
|
MetricTrendInput.model_rebuild()
|
|
627
|
+
ModelFilter.model_rebuild()
|
|
612
628
|
ModelProviderDataInput.model_rebuild()
|
|
629
|
+
ModelServiceFilter.model_rebuild()
|
|
613
630
|
TimeseriesInput.model_rebuild()
|
|
614
631
|
UpdateCompletion.model_rebuild()
|
|
615
632
|
UpdateModelService.model_rebuild()
|
|
@@ -14,7 +14,10 @@ from adaptive_sdk.graphql_client import (
|
|
|
14
14
|
DatasetCreateFromMultipartUpload,
|
|
15
15
|
)
|
|
16
16
|
from adaptive_sdk.graphql_client.custom_mutations import Mutation
|
|
17
|
-
from adaptive_sdk.graphql_client.custom_fields import
|
|
17
|
+
from adaptive_sdk.graphql_client.custom_fields import (
|
|
18
|
+
DatasetFields,
|
|
19
|
+
DatasetUploadProcessingStatusFields,
|
|
20
|
+
)
|
|
18
21
|
from adaptive_sdk.rest import rest_types
|
|
19
22
|
from adaptive_sdk.error_handling import rest_error_handler
|
|
20
23
|
|
|
@@ -178,12 +181,12 @@ class Datasets(SyncAPIResource, UseCaseResource): # type: ignore[misc]
|
|
|
178
181
|
|
|
179
182
|
mutation_field = Mutation.create_dataset_from_multipart_upload(input=input)
|
|
180
183
|
mutation_field.fields(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
184
|
+
DatasetUploadProcessingStatusFields.dataset_id,
|
|
185
|
+
DatasetUploadProcessingStatusFields.total_parts,
|
|
186
|
+
DatasetUploadProcessingStatusFields.processed_parts,
|
|
187
|
+
DatasetUploadProcessingStatusFields.progress,
|
|
188
|
+
DatasetUploadProcessingStatusFields.error,
|
|
189
|
+
DatasetUploadProcessingStatusFields.status,
|
|
187
190
|
)
|
|
188
191
|
result = self._gql_client.mutation(
|
|
189
192
|
mutation_field, operation_name="CreateDatasetFromMultipartUpload"
|
|
@@ -331,12 +334,12 @@ class AsyncDatasets(AsyncAPIResource, UseCaseResource): # type: ignore[misc]
|
|
|
331
334
|
|
|
332
335
|
mutation_field = Mutation.create_dataset_from_multipart_upload(input=input)
|
|
333
336
|
mutation_field.fields(
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
337
|
+
DatasetUploadProcessingStatusFields.dataset_id,
|
|
338
|
+
DatasetUploadProcessingStatusFields.total_parts,
|
|
339
|
+
DatasetUploadProcessingStatusFields.processed_parts,
|
|
340
|
+
DatasetUploadProcessingStatusFields.progress,
|
|
341
|
+
DatasetUploadProcessingStatusFields.error,
|
|
342
|
+
DatasetUploadProcessingStatusFields.status,
|
|
340
343
|
)
|
|
341
344
|
result = await self._gql_client.mutation(
|
|
342
345
|
mutation_field, operation_name="CreateDatasetFromMultipartUpload"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: adaptive-sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: Python SDK for Adaptive Engine
|
|
5
5
|
Author-email: Vincent Debergue <vincent@adaptive-ml.com>, Joao Moura <joao@adaptive-ml.com>, Yacine Bouraoui <yacine@adaptive-ml.com>
|
|
6
6
|
Requires-Python: >=3.10
|