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.
- adaptive_sdk/client.py +2 -0
- adaptive_sdk/graphql_client/__init__.py +6 -5
- adaptive_sdk/graphql_client/add_model_to_use_case.py +6 -0
- adaptive_sdk/graphql_client/async_client.py +34 -26
- adaptive_sdk/graphql_client/client.py +34 -26
- adaptive_sdk/graphql_client/custom_fields.py +20 -4
- adaptive_sdk/graphql_client/custom_mutations.py +29 -14
- adaptive_sdk/graphql_client/deploy_model.py +7 -1
- adaptive_sdk/graphql_client/enums.py +3 -20
- adaptive_sdk/graphql_client/fragments.py +4 -4
- adaptive_sdk/graphql_client/input_types.py +157 -18
- adaptive_sdk/graphql_client/remove_model_from_use_case.py +6 -0
- adaptive_sdk/input_types/typed_dicts.py +14 -15
- adaptive_sdk/resources/__init__.py +3 -0
- adaptive_sdk/resources/artifacts.py +61 -0
- adaptive_sdk/resources/chat.py +11 -9
- adaptive_sdk/resources/interactions.py +57 -25
- adaptive_sdk/resources/models.py +86 -117
- adaptive_sdk/resources/recipes.py +4 -2
- adaptive_sdk/rest/rest_types.py +2 -1
- {adaptive_sdk-0.1.12.dist-info → adaptive_sdk-0.1.14.dist-info}/METADATA +4 -1
- {adaptive_sdk-0.1.12.dist-info → adaptive_sdk-0.1.14.dist-info}/RECORD +23 -21
- adaptive_sdk/graphql_client/attach_model_to_use_case.py +0 -12
- {adaptive_sdk-0.1.12.dist-info → adaptive_sdk-0.1.14.dist-info}/WHEEL +0 -0
|
@@ -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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
|
127
|
-
arguments: Dict[str, Dict[str, Any]] = {'input': {'type': '
|
|
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='
|
|
129
|
+
return ModelServiceFields(field_name='deployModel', arguments=cleared_arguments)
|
|
130
130
|
|
|
131
131
|
@classmethod
|
|
132
|
-
def
|
|
133
|
-
arguments: Dict[str, Dict[str, Any]] = {'input': {'type': '
|
|
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
|
|
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 `
|
|
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:
|
|
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
|
|
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[
|
|
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[
|
|
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')
|