adaptive-sdk 0.1.12__py3-none-any.whl → 0.1.14__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.
@@ -3,8 +3,8 @@ from graphql import DocumentNode, NamedTypeNode, NameNode, OperationDefinitionNo
3
3
  from .add_external_model import AddExternalModel
4
4
  from .add_hf_model import AddHFModel
5
5
  from .add_model import AddModel
6
+ from .add_model_to_use_case import AddModelToUseCase
6
7
  from .add_remote_env import AddRemoteEnv
7
- from .attach_model_to_use_case import AttachModelToUseCase
8
8
  from .base_client_open_telemetry import BaseClientOpenTelemetry
9
9
  from .base_model import UNSET, UnsetType, Upload
10
10
  from .base_operation import GraphQLField
@@ -42,7 +42,7 @@ from .enums import CompletionGroupBy
42
42
  from .get_custom_recipe import GetCustomRecipe
43
43
  from .get_grader import GetGrader
44
44
  from .get_judge import GetJudge
45
- from .input_types import AbcampaignCreate, AbCampaignFilter, AddExternalModelInput, AddHFModelInput, AddModelInput, AttachModel, CreateRecipeInput, CursorPageInput, CustomRecipeFilterInput, DatasetCreate, DatasetCreateFromMultipartUpload, DatasetUploadProcessingStatusInput, GraderCreateInput, GraderUpdateInput, JobInput, JudgeCreate, JudgeUpdate, ListCompletionsFilterInput, ListJobsFilterInput, MetricCreate, MetricLink, MetricUnlink, ModelComputeConfigInput, ModelFilter, ModelPlacementInput, OrderPair, PrebuiltJudgeCreate, RemoteEnvCreate, ResizePartitionInput, RoleCreate, TeamCreate, TeamMemberRemove, TeamMemberSet, UpdateModelService, UpdateRecipeInput, UseCaseCreate, UseCaseShares, UserCreate
45
+ from .input_types import AbcampaignCreate, AbCampaignFilter, AddExternalModelInput, AddHFModelInput, AddModelInput, AddModelToUseCaseInput, CreateRecipeInput, CursorPageInput, CustomRecipeFilterInput, DatasetCreate, DatasetCreateFromMultipartUpload, DatasetUploadProcessingStatusInput, DeployModelInput, GraderCreateInput, GraderUpdateInput, JobInput, JudgeCreate, JudgeUpdate, ListCompletionsFilterInput, ListJobsFilterInput, MetricCreate, MetricLink, MetricUnlink, ModelComputeConfigInput, ModelFilter, OrderPair, PrebuiltJudgeCreate, RemoteEnvCreate, RemoveModelFromUseCaseInput, ResizePartitionInput, RoleCreate, TeamCreate, TeamMemberRemove, TeamMemberSet, UpdateModelService, UpdateRecipeInput, UseCaseCreate, UseCaseShares, UserCreate
46
46
  from .link_metric import LinkMetric
47
47
  from .list_ab_campaigns import ListAbCampaigns
48
48
  from .list_compute_pools import ListComputePools
@@ -66,6 +66,7 @@ from .list_users import ListUsers
66
66
  from .load_dataset import LoadDataset
67
67
  from .lock_grader import LockGrader
68
68
  from .me import Me
69
+ from .remove_model_from_use_case import RemoveModelFromUseCase
69
70
  from .remove_remote_env import RemoveRemoteEnv
70
71
  from .remove_team_member import RemoveTeamMember
71
72
  from .resize_inference_partition import ResizeInferencePartition
@@ -107,13 +108,6 @@ class GQLClient(BaseClientOpenTelemetry):
107
108
  data = self.get_data(response)
108
109
  return UnlinkMetric.model_validate(data)
109
110
 
110
- def attach_model_to_use_case(self, input: AttachModel, **kwargs: Any) -> AttachModelToUseCase:
111
- query = gql('\n mutation AttachModelToUseCase($input: AttachModel!) {\n attachModel(input: $input) {\n ...ModelServiceData\n }\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n attached\n isDefault\n desiredOnline\n createdAt\n }\n ')
112
- variables: Dict[str, object] = {'input': input}
113
- response = self.execute(query=query, operation_name='AttachModelToUseCase', variables=variables, **kwargs)
114
- data = self.get_data(response)
115
- return AttachModelToUseCase.model_validate(data)
116
-
117
111
  def add_external_model(self, input: AddExternalModelInput, **kwargs: Any) -> AddExternalModel:
118
112
  query = gql('\n mutation AddExternalModel($input: AddExternalModelInput!) {\n addExternalModel(input: $input) {\n ...ModelData\n }\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n ')
119
113
  variables: Dict[str, object] = {'input': input}
@@ -129,19 +123,12 @@ class GQLClient(BaseClientOpenTelemetry):
129
123
  return AddModel.model_validate(data)
130
124
 
131
125
  def update_model(self, input: UpdateModelService, **kwargs: Any) -> UpdateModel:
132
- query = gql('\n mutation UpdateModel($input: UpdateModelService!) {\n updateModelService(input: $input) {\n ...ModelServiceData\n }\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n attached\n isDefault\n desiredOnline\n createdAt\n }\n ')
126
+ query = gql('\n mutation UpdateModel($input: UpdateModelService!) {\n updateModelService(input: $input) {\n ...ModelServiceData\n }\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n isDefault\n desiredOnline\n createdAt\n }\n ')
133
127
  variables: Dict[str, object] = {'input': input}
134
128
  response = self.execute(query=query, operation_name='UpdateModel', variables=variables, **kwargs)
135
129
  data = self.get_data(response)
136
130
  return UpdateModel.model_validate(data)
137
131
 
138
- def deploy_model(self, id_or_key: str, wait: bool, placement: Union[Optional[ModelPlacementInput], UnsetType]=UNSET, **kwargs: Any) -> DeployModel:
139
- query = gql('\n mutation DeployModel($idOrKey: IdOrKey!, $wait: Boolean!, $placement: ModelPlacementInput) {\n deployModel(idOrKey: $idOrKey, wait: $wait, placement: $placement)\n }\n ')
140
- variables: Dict[str, object] = {'idOrKey': id_or_key, 'wait': wait, 'placement': placement}
141
- response = self.execute(query=query, operation_name='DeployModel', variables=variables, **kwargs)
142
- data = self.get_data(response)
143
- return DeployModel.model_validate(data)
144
-
145
132
  def terminate_model(self, id_or_key: str, force: bool, **kwargs: Any) -> TerminateModel:
146
133
  query = gql('\n mutation TerminateModel($idOrKey: IdOrKey!, $force: Boolean!) {\n terminateModel(idOrKey: $idOrKey, force: $force)\n }\n ')
147
134
  variables: Dict[str, object] = {'idOrKey': id_or_key, 'force': force}
@@ -150,14 +137,14 @@ class GQLClient(BaseClientOpenTelemetry):
150
137
  return TerminateModel.model_validate(data)
151
138
 
152
139
  def create_use_case(self, input: UseCaseCreate, **kwargs: Any) -> CreateUseCase:
153
- query = gql('\n mutation CreateUseCase($input: UseCaseCreate!) {\n createUseCase(input: $input) {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n attached\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
140
+ query = gql('\n mutation CreateUseCase($input: UseCaseCreate!) {\n createUseCase(input: $input) {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
154
141
  variables: Dict[str, object] = {'input': input}
155
142
  response = self.execute(query=query, operation_name='CreateUseCase', variables=variables, **kwargs)
156
143
  data = self.get_data(response)
157
144
  return CreateUseCase.model_validate(data)
158
145
 
159
146
  def share_use_case(self, id_or_key: str, input: UseCaseShares, **kwargs: Any) -> ShareUseCase:
160
- query = gql('\n mutation ShareUseCase($idOrKey: IdOrKey!, $input: UseCaseShares!) {\n shareUseCase(idOrKey: $idOrKey, input: $input) {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n attached\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
147
+ query = gql('\n mutation ShareUseCase($idOrKey: IdOrKey!, $input: UseCaseShares!) {\n shareUseCase(idOrKey: $idOrKey, input: $input) {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
161
148
  variables: Dict[str, object] = {'idOrKey': id_or_key, 'input': input}
162
149
  response = self.execute(query=query, operation_name='ShareUseCase', variables=variables, **kwargs)
163
150
  data = self.get_data(response)
@@ -192,7 +179,7 @@ class GQLClient(BaseClientOpenTelemetry):
192
179
  return DeleteDataset.model_validate(data)
193
180
 
194
181
  def add_hf_model(self, input: AddHFModelInput, **kwargs: Any) -> AddHFModel:
195
- query = gql('\n mutation AddHFModel($input: AddHFModelInput!) {\n importHfModel(input: $input) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
182
+ query = gql('\n mutation AddHFModel($input: AddHFModelInput!) {\n importHfModel(input: $input) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n status\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
196
183
  variables: Dict[str, object] = {'input': input}
197
184
  response = self.execute(query=query, operation_name='AddHFModel', variables=variables, **kwargs)
198
185
  data = self.get_data(response)
@@ -346,14 +333,14 @@ class GQLClient(BaseClientOpenTelemetry):
346
333
  return RemoveTeamMember.model_validate(data)
347
334
 
348
335
  def create_job(self, input: JobInput, **kwargs: Any) -> CreateJob:
349
- query = gql('\n mutation CreateJob($input: JobInput!) {\n createJob(input: $input) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
336
+ query = gql('\n mutation CreateJob($input: JobInput!) {\n createJob(input: $input) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n status\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
350
337
  variables: Dict[str, object] = {'input': input}
351
338
  response = self.execute(query=query, operation_name='CreateJob', variables=variables, **kwargs)
352
339
  data = self.get_data(response)
353
340
  return CreateJob.model_validate(data)
354
341
 
355
342
  def cancel_job(self, job_id: Any, **kwargs: Any) -> CancelJob:
356
- query = gql('\n mutation CancelJob($jobId: UUID!) {\n cancelJob(id: $jobId) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
343
+ query = gql('\n mutation CancelJob($jobId: UUID!) {\n cancelJob(id: $jobId) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n status\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
357
344
  variables: Dict[str, object] = {'jobId': job_id}
358
345
  response = self.execute(query=query, operation_name='CancelJob', variables=variables, **kwargs)
359
346
  data = self.get_data(response)
@@ -373,6 +360,27 @@ class GQLClient(BaseClientOpenTelemetry):
373
360
  data = self.get_data(response)
374
361
  return ResizeInferencePartition.model_validate(data)
375
362
 
363
+ def add_model_to_use_case(self, input: AddModelToUseCaseInput, **kwargs: Any) -> AddModelToUseCase:
364
+ query = gql('\n mutation AddModelToUseCase($input: AddModelToUseCaseInput!) {\n addModelToUseCase(input: $input)\n }\n ')
365
+ variables: Dict[str, object] = {'input': input}
366
+ response = self.execute(query=query, operation_name='AddModelToUseCase', variables=variables, **kwargs)
367
+ data = self.get_data(response)
368
+ return AddModelToUseCase.model_validate(data)
369
+
370
+ def remove_model_from_use_case(self, input: RemoveModelFromUseCaseInput, **kwargs: Any) -> RemoveModelFromUseCase:
371
+ query = gql('\n mutation RemoveModelFromUseCase($input: RemoveModelFromUseCaseInput!) {\n removeModelFromUseCase(input: $input)\n }\n ')
372
+ variables: Dict[str, object] = {'input': input}
373
+ response = self.execute(query=query, operation_name='RemoveModelFromUseCase', variables=variables, **kwargs)
374
+ data = self.get_data(response)
375
+ return RemoveModelFromUseCase.model_validate(data)
376
+
377
+ def deploy_model(self, input: DeployModelInput, **kwargs: Any) -> DeployModel:
378
+ query = gql('\n mutation DeployModel($input: DeployModelInput!) {\n deployModel(input: $input) {\n ...ModelServiceData\n }\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n isDefault\n desiredOnline\n createdAt\n }\n ')
379
+ variables: Dict[str, object] = {'input': input}
380
+ response = self.execute(query=query, operation_name='DeployModel', variables=variables, **kwargs)
381
+ data = self.get_data(response)
382
+ return DeployModel.model_validate(data)
383
+
376
384
  def list_datasets(self, input: str, **kwargs: Any) -> ListDatasets:
377
385
  query = gql('\n query ListDatasets($input: IdOrKey!) {\n datasets(useCase: $input) {\n ...DatasetData\n }\n }\n\n fragment DatasetData on Dataset {\n id\n key\n name\n createdAt\n kind\n records\n metricsUsage {\n feedbackCount\n comparisonCount\n metric {\n ...MetricData\n }\n }\n }\n\n fragment MetricData on Metric {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n hasDirectFeedbacks\n hasComparisonFeedbacks\n }\n ')
378
386
  variables: Dict[str, object] = {'input': input}
@@ -388,14 +396,14 @@ class GQLClient(BaseClientOpenTelemetry):
388
396
  return DescribeDataset.model_validate(data)
389
397
 
390
398
  def describe_use_case(self, input: str, **kwargs: Any) -> DescribeUseCase:
391
- query = gql('\n query DescribeUseCase($input: IdOrKey!) {\n useCase(idOrKey: $input) {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n attached\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
399
+ query = gql('\n query DescribeUseCase($input: IdOrKey!) {\n useCase(idOrKey: $input) {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
392
400
  variables: Dict[str, object] = {'input': input}
393
401
  response = self.execute(query=query, operation_name='DescribeUseCase', variables=variables, **kwargs)
394
402
  data = self.get_data(response)
395
403
  return DescribeUseCase.model_validate(data)
396
404
 
397
405
  def list_use_cases(self, **kwargs: Any) -> ListUseCases:
398
- query = gql('\n query ListUseCases {\n useCases {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n attached\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
406
+ query = gql('\n query ListUseCases {\n useCases {\n ...UseCaseData\n }\n }\n\n fragment MetricWithContextData on MetricWithContext {\n id\n key\n name\n kind\n description\n scoringType\n createdAt\n }\n\n fragment ModelData on Model {\n id\n key\n name\n online\n error\n isExternal\n providerName\n isAdapter\n isTraining\n createdAt\n size\n computeConfig {\n tp\n kvCacheLen\n maxSeqLen\n }\n }\n\n fragment ModelServiceData on ModelService {\n id\n key\n name\n model {\n ...ModelData\n backbone {\n ...ModelData\n }\n }\n isDefault\n desiredOnline\n createdAt\n }\n\n fragment UseCaseData on UseCase {\n id\n key\n name\n description\n createdAt\n metrics {\n ...MetricWithContextData\n }\n modelServices {\n ...ModelServiceData\n }\n permissions\n shares {\n team {\n id\n key\n name\n createdAt\n }\n role {\n id\n key\n name\n createdAt\n permissions\n }\n isOwner\n }\n }\n ')
399
407
  variables: Dict[str, object] = {}
400
408
  response = self.execute(query=query, operation_name='ListUseCases', variables=variables, **kwargs)
401
409
  data = self.get_data(response)
@@ -584,14 +592,14 @@ class GQLClient(BaseClientOpenTelemetry):
584
592
  return ListGraders.model_validate(data)
585
593
 
586
594
  def list_jobs(self, page: CursorPageInput, filter: Union[Optional[ListJobsFilterInput], UnsetType]=UNSET, order: Union[Optional[List[OrderPair]], UnsetType]=UNSET, **kwargs: Any) -> ListJobs:
587
- query = gql('\n query ListJobs($page: CursorPageInput!, $filter: ListJobsFilterInput, $order: [OrderPair!]) {\n jobs(page: $page, filter: $filter, order: $order) {\n totalCount\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n nodes {\n ...JobData\n }\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
595
+ query = gql('\n query ListJobs($page: CursorPageInput!, $filter: ListJobsFilterInput, $order: [OrderPair!]) {\n jobs(page: $page, filter: $filter, order: $order) {\n totalCount\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n nodes {\n ...JobData\n }\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n status\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
588
596
  variables: Dict[str, object] = {'page': page, 'filter': filter, 'order': order}
589
597
  response = self.execute(query=query, operation_name='ListJobs', variables=variables, **kwargs)
590
598
  data = self.get_data(response)
591
599
  return ListJobs.model_validate(data)
592
600
 
593
601
  def describe_job(self, id: Any, **kwargs: Any) -> DescribeJob:
594
- query = gql('\n query DescribeJob($id: UUID!) {\n job(id: $id) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
602
+ query = gql('\n query DescribeJob($id: UUID!) {\n job(id: $id) {\n ...JobData\n }\n }\n\n fragment CustomRecipeData on CustomRecipe {\n id\n key\n name\n content\n contentHash\n editable\n global\n builtin\n inputSchema\n jsonSchema\n description\n labels {\n key\n value\n }\n createdAt\n updatedAt\n createdBy {\n id\n name\n email\n }\n }\n\n fragment JobData on Job {\n id\n name\n status\n createdAt\n createdBy {\n id\n name\n }\n startedAt\n endedAt\n durationMs\n progress\n error\n kind\n stages {\n name\n status\n info {\n __typename\n ... on TrainingJobStageOutput {\n monitoringLink\n totalNumSamples\n processedNumSamples\n checkpoints\n }\n ... on EvalJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n ... on BatchInferenceJobStageOutput {\n totalNumSamples\n processedNumSamples\n }\n }\n }\n useCase {\n id\n key\n name\n }\n recipe {\n ...CustomRecipeData\n }\n details {\n args\n recipeHash\n artifacts {\n id\n name\n kind\n status\n uri\n metadata\n createdAt\n byproducts {\n __typename\n ... on EvaluationByproducts {\n evalResults {\n mean\n min\n max\n stddev\n count\n sum\n feedbackCount\n jobId\n artifactId\n modelService {\n key\n name\n }\n metric {\n key\n name\n }\n }\n }\n }\n }\n }\n }\n ')
595
603
  variables: Dict[str, object] = {'id': id}
596
604
  response = self.execute(query=query, operation_name='DescribeJob', variables=variables, **kwargs)
597
605
  data = self.get_data(response)
@@ -1,7 +1,7 @@
1
1
  from typing import Any, Dict, List, Optional, Union
2
2
  from .base_operation import GraphQLField
3
3
  from .custom_typing_fields import AbcampaignGraphQLField, AbReportGraphQLField, AbVariantReportComparisonGraphQLField, AbVariantReportGraphQLField, ActivityGraphQLField, ActivityOutputGraphQLField, ApiKeyGraphQLField, ArtifactByproductsUnion, AuthProviderGraphQLField, BatchInferenceJobStageOutputGraphQLField, BillingUsageGraphQLField, ChatMessageGraphQLField, ComparisonFeedbackGraphQLField, CompletionConnectionGraphQLField, CompletionEdgeGraphQLField, CompletionGraphQLField, CompletionGroupDataConnectionGraphQLField, CompletionGroupDataEdgeGraphQLField, CompletionGroupDataGraphQLField, CompletionGroupFeedbackStatsGraphQLField, CompletionHistoryEntryOuputGraphQLField, CompletionLabelGraphQLField, CompletionMetadataGraphQLField, ComputePoolGraphQLField, ContractGraphQLField, CustomConfigOutputGraphQLField, CustomRecipeGraphQLField, CustomRecipeJobDetailsGraphQLField, DatasetByproductsGraphQLField, DatasetGraphQLField, DatasetMetricUsageGraphQLField, DatasetProgressGraphQLField, DatasetUploadProcessingStatusGraphQLField, DatasetValidationOutputGraphQLField, DeleteConfirmGraphQLField, DirectFeedbackGraphQLField, EmojiGraphQLField, EvalJobStageOutputGraphQLField, EvaluationByproductsGraphQLField, EvaluationResultGraphQLField, GlobalUsageGraphQLField, GpuAllocationGraphQLField, GraderConfigUnion, GraderGraphQLField, HarmonyGroupGraphQLField, InteractionOutputGraphQLField, IntervalGraphQLField, JobArtifactGraphQLField, JobConnectionGraphQLField, JobEdgeGraphQLField, JobGraphQLField, JobStageInfoOutputUnion, JobStageOutputGraphQLField, JudgeConfigOutputGraphQLField, JudgeExampleGraphQLField, JudgeGraphQLField, LabelGraphQLField, LabelKeyUsageGraphQLField, LabelUsageGraphQLField, LabelValueUsageGraphQLField, MetaObjectGraphQLField, MetricActivityGraphQLField, MetricGraphQLField, MetricWithContextGraphQLField, ModelByproductsGraphQLField, ModelComputeConfigOutputGraphQLField, ModelGraphQLField, ModelPlacementOutputGraphQLField, ModelServiceGraphQLField, PageInfoGraphQLField, PrebuiltConfigDefinitionGraphQLField, PrebuiltConfigOutputGraphQLField, PrebuiltCriteriaGraphQLField, ProviderListGraphQLField, RemoteConfigOutputGraphQLField, RemoteEnvGraphQLField, RemoteEnvTestOfflineGraphQLField, RemoteEnvTestOnlineGraphQLField, RoleGraphQLField, SearchResultGraphQLField, SessionGraphQLField, SettingsGraphQLField, ShareGraphQLField, SystemPromptTemplateGraphQLField, TeamGraphQLField, TeamMemberGraphQLField, TeamWithroleGraphQLField, TimeseriesGraphQLField, ToolProviderGraphQLField, TrainingJobStageOutputGraphQLField, TrendResultGraphQLField, UnitConfigGraphQLField, UsageAggregateItemGraphQLField, UsageAggregatePerUseCaseItemGraphQLField, UsageGraphQLField, UsageStatsByModelGraphQLField, UsageStatsGraphQLField, UseCaseGraphQLField, UseCaseItemGraphQLField, UseCaseMetadataGraphQLField, UserGraphQLField, WidgetGraphQLField
4
- from .input_types import AbCampaignFilter, ArtifactFilter, CursorPageInput, FeedbackFilterInput, ListCompletionsFilterInput, MetricTrendInput, ModelServiceFilter, OrderPair, TimeRange, TimeseriesInput, UseCaseFilter
4
+ from .input_types import AbCampaignFilter, ArtifactFilter, CursorPageInput, FeedbackFilterInput, ListCompletionsFilterInput, MetricTrendInput, ModelFilter, ModelServiceFilter, OrderPair, TimeRange, TimeseriesInput, UseCaseFilter
5
5
 
6
6
  class AbReportFields(GraphQLField):
7
7
  """@private"""
@@ -629,6 +629,7 @@ class CustomRecipeJobDetailsFields(GraphQLField):
629
629
  return JobArtifactFields('artifacts')
630
630
  num_gpus: 'CustomRecipeJobDetailsGraphQLField' = CustomRecipeJobDetailsGraphQLField('numGpus')
631
631
  gpu_duration_ms: 'CustomRecipeJobDetailsGraphQLField' = CustomRecipeJobDetailsGraphQLField('gpuDurationMs')
632
+ compute_pool_id: 'CustomRecipeJobDetailsGraphQLField' = CustomRecipeJobDetailsGraphQLField('computePoolId')
632
633
 
633
634
  def fields(self, *subfields: Union[CustomRecipeJobDetailsGraphQLField, 'JobArtifactFields']) -> 'CustomRecipeJobDetailsFields':
634
635
  """Subfields should come from the CustomRecipeJobDetailsFields class"""
@@ -658,8 +659,13 @@ class DatasetFields(GraphQLField):
658
659
  @classmethod
659
660
  def progress(cls) -> 'DatasetProgressFields':
660
661
  return DatasetProgressFields('progress')
662
+ download_url: 'DatasetGraphQLField' = DatasetGraphQLField('downloadUrl')
661
663
 
662
- def fields(self, *subfields: Union[DatasetGraphQLField, 'DatasetMetricUsageFields', 'DatasetProgressFields']) -> 'DatasetFields':
664
+ @classmethod
665
+ def use_case(cls) -> 'UseCaseFields':
666
+ return UseCaseFields('useCase')
667
+
668
+ def fields(self, *subfields: Union[DatasetGraphQLField, 'DatasetMetricUsageFields', 'DatasetProgressFields', 'UseCaseFields']) -> 'DatasetFields':
663
669
  """Subfields should come from the DatasetFields class"""
664
670
  self._subfields.extend(subfields)
665
671
  return self
@@ -1447,6 +1453,8 @@ class ModelFields(GraphQLField):
1447
1453
  return ModelFields('parent')
1448
1454
  is_training: 'ModelGraphQLField' = ModelGraphQLField('isTraining')
1449
1455
  'indicates if a training is pending or running for this model'
1456
+ is_published: 'ModelGraphQLField' = ModelGraphQLField('isPublished')
1457
+ is_stable: 'ModelGraphQLField' = ModelGraphQLField('isStable')
1450
1458
  capabilities: 'ModelGraphQLField' = ModelGraphQLField('capabilities')
1451
1459
  supported_tp: 'ModelGraphQLField' = ModelGraphQLField('supportedTp')
1452
1460
  family: 'ModelGraphQLField' = ModelGraphQLField('family')
@@ -1524,9 +1532,10 @@ class ModelServiceFields(GraphQLField):
1524
1532
  @classmethod
1525
1533
  def model(cls) -> 'ModelFields':
1526
1534
  return ModelFields('model')
1527
- attached: 'ModelServiceGraphQLField' = ModelServiceGraphQLField('attached')
1528
1535
  is_default: 'ModelServiceGraphQLField' = ModelServiceGraphQLField('isDefault')
1529
1536
  desired_online: 'ModelServiceGraphQLField' = ModelServiceGraphQLField('desiredOnline')
1537
+ deleted: 'ModelServiceGraphQLField' = ModelServiceGraphQLField('deleted')
1538
+ 'Whether or not this model service has been deleted.'
1530
1539
 
1531
1540
  @classmethod
1532
1541
  def activity(cls, *, timerange: Optional[TimeRange]=None) -> 'ActivityFields':
@@ -2092,6 +2101,13 @@ class UseCaseFields(GraphQLField):
2092
2101
  cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
2093
2102
  return ModelServiceFields('modelService', arguments=cleared_arguments)
2094
2103
 
2104
+ @classmethod
2105
+ def models(cls, *, filter: Optional[ModelFilter]=None) -> 'ModelFields':
2106
+ """Returns models associated with this use case."""
2107
+ arguments: Dict[str, Dict[str, Any]] = {'filter': {'type': 'ModelFilter', 'value': filter}}
2108
+ cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
2109
+ return ModelFields('models', arguments=cleared_arguments)
2110
+
2095
2111
  @classmethod
2096
2112
  def default_model_service(cls) -> 'ModelServiceFields':
2097
2113
  return ModelServiceFields('defaultModelService')
@@ -2143,7 +2159,7 @@ class UseCaseFields(GraphQLField):
2143
2159
  def tool_providers(cls) -> 'ToolProviderFields':
2144
2160
  return ToolProviderFields('toolProviders')
2145
2161
 
2146
- def fields(self, *subfields: Union[UseCaseGraphQLField, 'AbcampaignFields', 'ActivityFields', 'LabelUsageFields', 'MetricWithContextFields', 'ModelServiceFields', 'SettingsFields', 'ShareFields', 'ToolProviderFields', 'UseCaseMetadataFields', 'WidgetFields']) -> 'UseCaseFields':
2162
+ def fields(self, *subfields: Union[UseCaseGraphQLField, 'AbcampaignFields', 'ActivityFields', 'LabelUsageFields', 'MetricWithContextFields', 'ModelFields', 'ModelServiceFields', 'SettingsFields', 'ShareFields', 'ToolProviderFields', 'UseCaseMetadataFields', 'WidgetFields']) -> 'UseCaseFields':
2147
2163
  """Subfields should come from the UseCaseFields class"""
2148
2164
  self._subfields.extend(subfields)
2149
2165
  return self
@@ -2,7 +2,7 @@ from typing import Any, Dict, Optional
2
2
  from .base_model import Upload
3
3
  from .custom_fields import AbcampaignFields, ApiKeyFields, CompletionFields, CustomRecipeFields, DatasetFields, DatasetUploadProcessingStatusFields, DatasetValidationOutputFields, DeleteConfirmFields, DirectFeedbackFields, GraderFields, JobFields, JudgeFields, MetricFields, MetricWithContextFields, ModelFields, ModelServiceFields, RemoteEnvFields, RoleFields, SystemPromptTemplateFields, TeamFields, TeamMemberFields, ToolProviderFields, UseCaseFields, UserFields
4
4
  from .custom_typing_fields import GraphQLField, RemoteEnvTestUnion
5
- from .input_types import AbcampaignCreate, AddExternalModelInput, AddHFModelInput, AddModelInput, ApiKeyCreate, AttachModel, CancelAllocationInput, CreateRecipeInput, CreateToolProviderInput, DatasetCreate, DatasetCreateFromFilters, DatasetCreateFromMultipartUpload, FeedbackAddInput, FeedbackUpdateInput, GraderCreateInput, GraderUpdateInput, JobInput, JudgeCreate, JudgeUpdate, MetricCreate, MetricLink, MetricUnlink, ModelComputeConfigInput, ModelPlacementInput, ModelServiceDisconnect, PrebuiltJudgeCreate, RemoteEnvCreate, ResizePartitionInput, RoleCreate, SystemPromptTemplateCreate, SystemPromptTemplateUpdate, TeamCreate, TeamMemberRemove, TeamMemberSet, UpdateCompletion, UpdateModelService, UpdateRecipeInput, UpdateToolProviderInput, UseCaseCreate, UseCaseShares, UseCaseUpdate, UserCreate
5
+ from .input_types import AbcampaignCreate, AddExternalModelInput, AddHFModelInput, AddModelInput, AddModelToUseCaseInput, ApiKeyCreate, CancelAllocationInput, CreateRecipeInput, CreateToolProviderInput, DatasetCreate, DatasetCreateFromFilters, DatasetCreateFromMultipartUpload, DeleteModelInput, DeployModelInput, FeedbackAddInput, FeedbackUpdateInput, GraderCreateInput, GraderUpdateInput, JobInput, JudgeCreate, JudgeUpdate, MetricCreate, MetricLink, MetricUnlink, ModelComputeConfigInput, PrebuiltJudgeCreate, RemoteEnvCreate, RemoveModelFromUseCaseInput, ResizePartitionInput, RoleCreate, SystemPromptTemplateCreate, SystemPromptTemplateUpdate, TeamCreate, TeamMemberRemove, TeamMemberSet, UpdateCompletion, UpdateModelInput, UpdateModelService, UpdateRecipeInput, UpdateToolProviderInput, UseCaseCreate, UseCaseShares, UseCaseUpdate, UserCreate
6
6
 
7
7
  class Mutation:
8
8
  """@private"""
@@ -123,16 +123,16 @@ class Mutation:
123
123
  return GraphQLField(field_name='unlinkMetric', arguments=cleared_arguments)
124
124
 
125
125
  @classmethod
126
- def attach_model(cls, input: AttachModel) -> ModelServiceFields:
127
- arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'AttachModel!', 'value': input}}
126
+ def deploy_model(cls, input: DeployModelInput) -> ModelServiceFields:
127
+ arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'DeployModelInput!', 'value': input}}
128
128
  cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
129
- return ModelServiceFields(field_name='attachModel', arguments=cleared_arguments)
129
+ return ModelServiceFields(field_name='deployModel', arguments=cleared_arguments)
130
130
 
131
131
  @classmethod
132
- def disconnect_model(cls, input: ModelServiceDisconnect) -> GraphQLField:
133
- arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'ModelServiceDisconnect!', 'value': input}}
132
+ def update_model(cls, input: UpdateModelInput) -> ModelFields:
133
+ arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'UpdateModelInput!', 'value': input}}
134
134
  cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
135
- return GraphQLField(field_name='disconnectModel', arguments=cleared_arguments)
135
+ return ModelFields(field_name='updateModel', arguments=cleared_arguments)
136
136
 
137
137
  @classmethod
138
138
  def update_model_service(cls, input: UpdateModelService) -> ModelServiceFields:
@@ -140,15 +140,9 @@ class Mutation:
140
140
  cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
141
141
  return ModelServiceFields(field_name='updateModelService', arguments=cleared_arguments)
142
142
 
143
- @classmethod
144
- def deploy_model(cls, id_or_key: str, wait: bool, *, placement: Optional[ModelPlacementInput]=None) -> GraphQLField:
145
- arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}, 'wait': {'type': 'Boolean!', 'value': wait}, 'placement': {'type': 'ModelPlacementInput', 'value': placement}}
146
- cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
147
- return GraphQLField(field_name='deployModel', arguments=cleared_arguments)
148
-
149
143
  @classmethod
150
144
  def terminate_model(cls, id_or_key: str, force: bool) -> GraphQLField:
151
- """If a model is used by several use cases with `attached = true`, you need to specify 'force = true' to be able to deactivate the model"""
145
+ """If a model is used by several use cases with `desiredOnline = true`, you need to specify 'force = true' to be able to deactivate the model"""
152
146
  arguments: Dict[str, Dict[str, Any]] = {'idOrKey': {'type': 'IdOrKey!', 'value': id_or_key}, 'force': {'type': 'Boolean!', 'value': force}}
153
147
  cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
154
148
  return GraphQLField(field_name='terminateModel', arguments=cleared_arguments)
@@ -177,6 +171,27 @@ class Mutation:
177
171
  cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
178
172
  return ModelFields(field_name='updateModelComputeConfig', arguments=cleared_arguments)
179
173
 
174
+ @classmethod
175
+ def add_model_to_use_case(cls, input: AddModelToUseCaseInput) -> GraphQLField:
176
+ arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'AddModelToUseCaseInput!', 'value': input}}
177
+ cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
178
+ return GraphQLField(field_name='addModelToUseCase', arguments=cleared_arguments)
179
+
180
+ @classmethod
181
+ def remove_model_from_use_case(cls, input: RemoveModelFromUseCaseInput) -> GraphQLField:
182
+ """Removes a model from a use case. If the model is not bound to any other use case or published organisation wide, it is deleted from storage."""
183
+ arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'RemoveModelFromUseCaseInput!', 'value': input}}
184
+ cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
185
+ return GraphQLField(field_name='removeModelFromUseCase', arguments=cleared_arguments)
186
+
187
+ @classmethod
188
+ def delete_model(cls, input: DeleteModelInput) -> GraphQLField:
189
+ """Deletes a model: removes from all use cases, unpublishes from org registry,
190
+ and deletes from storage."""
191
+ arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'DeleteModelInput!', 'value': input}}
192
+ cleared_arguments = {key: value for key, value in arguments.items() if value['value'] is not None}
193
+ return GraphQLField(field_name='deleteModel', arguments=cleared_arguments)
194
+
180
195
  @classmethod
181
196
  def add_remote_env(cls, input: RemoteEnvCreate) -> RemoteEnvFields:
182
197
  arguments: Dict[str, Dict[str, Any]] = {'input': {'type': 'RemoteEnvCreate!', 'value': input}}
@@ -1,6 +1,12 @@
1
1
  from pydantic import Field
2
2
  from .base_model import BaseModel
3
+ from .fragments import ModelServiceData
3
4
 
4
5
  class DeployModel(BaseModel):
5
6
  """@public"""
6
- deploy_model: str = Field(alias='deployModel')
7
+ deploy_model: 'DeployModelDeployModel' = Field(alias='deployModel')
8
+
9
+ class DeployModelDeployModel(ModelServiceData):
10
+ """@public"""
11
+ pass
12
+ DeployModel.model_rebuild()
@@ -67,6 +67,7 @@ class DateBucketUnit(str, Enum):
67
67
  class ExternalModelProviderName(str, Enum):
68
68
  """@public"""
69
69
  OPEN_AI = 'OPEN_AI'
70
+ LEGACY_OPEN_AI = 'LEGACY_OPEN_AI'
70
71
  GOOGLE = 'GOOGLE'
71
72
  ANTHROPIC = 'ANTHROPIC'
72
73
 
@@ -161,33 +162,14 @@ class ModelOnline(str, Enum):
161
162
  OFFLINE = 'OFFLINE'
162
163
  ERROR = 'ERROR'
163
164
 
164
- class ModelserviceStatus(str, Enum):
165
+ class ModelServiceStatus(str, Enum):
165
166
  """@public"""
166
167
  PENDING = 'PENDING'
167
168
  ONLINE = 'ONLINE'
168
169
  OFFLINE = 'OFFLINE'
169
- DETACHED = 'DETACHED'
170
170
  TURNED_OFF = 'TURNED_OFF'
171
171
  ERROR = 'ERROR'
172
172
 
173
- class OpenAIModel(str, Enum):
174
- """@public"""
175
- GPT41 = 'GPT41'
176
- GPT4O = 'GPT4O'
177
- GPT4O_MINI = 'GPT4O_MINI'
178
- O1 = 'O1'
179
- O1_MINI = 'O1_MINI'
180
- O3_MINI = 'O3_MINI'
181
- O4_MINI = 'O4_MINI'
182
- O3 = 'O3'
183
- GPT4 = 'GPT4'
184
- GPT4_TURBO = 'GPT4_TURBO'
185
- GPT3_5_TURBO = 'GPT3_5_TURBO'
186
- GPT5 = 'GPT5'
187
- GPT5_MINI = 'GPT5_MINI'
188
- GPT5_NANO = 'GPT5_NANO'
189
- GPT41_MINI = 'GPT41_MINI'
190
-
191
173
  class PrebuiltCriteriaKey(str, Enum):
192
174
  """@public"""
193
175
  FAITHFULNESS = 'FAITHFULNESS'
@@ -201,6 +183,7 @@ class Protocol(str, Enum):
201
183
  class ProviderName(str, Enum):
202
184
  """@public"""
203
185
  OPEN_AI = 'OPEN_AI'
186
+ LEGACY_OPEN_AI = 'LEGACY_OPEN_AI'
204
187
  HARMONY = 'HARMONY'
205
188
  GOOGLE = 'GOOGLE'
206
189
  ANTHROPIC = 'ANTHROPIC'
@@ -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, ModelOnline, PrebuiltCriteriaKey, ProviderName, RemoteEnvStatus
4
+ from .enums import AbcampaignStatus, CompletionSource, DatasetKind, FeedbackType, GraderTypeEnum, HarmonyStatus, JobArtifactKind, JobArtifactStatus, JobKind, JobStatus, JobStatusOutput, JudgeCapability, MetricKind, MetricScoringType, ModelOnline, PrebuiltCriteriaKey, ProviderName, RemoteEnvStatus
5
5
 
6
6
  class AbCampaignCreateData(BaseModel):
7
7
  """@public"""
@@ -246,7 +246,7 @@ class ModelData(BaseModel):
246
246
  is_adapter: bool = Field(alias='isAdapter')
247
247
  is_training: bool = Field(alias='isTraining')
248
248
  created_at: int = Field(alias='createdAt')
249
- size: Optional[str]
249
+ size: Optional[int]
250
250
  compute_config: Optional['ModelDataComputeConfig'] = Field(alias='computeConfig')
251
251
 
252
252
  class ModelDataComputeConfig(BaseModel):
@@ -431,6 +431,7 @@ class JobDataDetailsArtifacts(BaseModel):
431
431
  id: Any
432
432
  name: str
433
433
  kind: JobArtifactKind
434
+ status: JobArtifactStatus
434
435
  uri: Optional[str]
435
436
  metadata: Any
436
437
  created_at: int = Field(alias='createdAt')
@@ -584,7 +585,7 @@ class ModelDataAdmin(BaseModel):
584
585
  is_adapter: bool = Field(alias='isAdapter')
585
586
  is_training: bool = Field(alias='isTraining')
586
587
  created_at: int = Field(alias='createdAt')
587
- size: Optional[str]
588
+ size: Optional[int]
588
589
 
589
590
  class ModelDataAdminUseCases(BaseModel):
590
591
  """@public"""
@@ -598,7 +599,6 @@ class ModelServiceData(BaseModel):
598
599
  key: str
599
600
  name: str
600
601
  model: 'ModelServiceDataModel'
601
- attached: bool
602
602
  is_default: bool = Field(alias='isDefault')
603
603
  desired_online: bool = Field(alias='desiredOnline')
604
604
  created_at: int = Field(alias='createdAt')