@@ -653,8 +653,7 @@ def delete_model_config(self, id: str) -> bool:
653
653
params = {"id" : id }
654
654
result = self .execute (query , params )
655
655
if not result :
656
- raise labelbox .exceptions .ResourceNotFoundError (
657
- Entity .ModelConfig , params )
656
+ raise labelbox .exceptions .ResourceNotFoundError (Entity .ModelConfig , params )
658
657
return result ['deleteModelConfig' ]['success' ]
659
658
660
659
def create_dataset (self ,
@@ -742,17 +741,85 @@ def create_project(self, **kwargs) -> Project:
742
741
Raises:
743
742
InvalidAttributeError: If the Project type does not contain
744
743
any of the attribute names given in kwargs.
745
-
746
- NOTE: the following attributes are used only in chat model evaluation projects:
747
- dataset_name_or_id, append_to_existing_dataset, data_row_count, editor_task_type
748
- They are not used for general projects and not supported in this method
749
744
"""
750
- # The following arguments are not supported for general projects, only for chat model evaluation projects
751
- kwargs .pop ("dataset_name_or_id" , None )
752
- kwargs .pop ("append_to_existing_dataset" , None )
753
- kwargs .pop ("data_row_count" , None )
754
- kwargs .pop ("editor_task_type" , None )
755
- return self ._create_project (** kwargs )
745
+
746
+ auto_audit_percentage = kwargs .get ("auto_audit_percentage" )
747
+ auto_audit_number_of_labels = kwargs .get ("auto_audit_number_of_labels" )
748
+ if auto_audit_percentage is not None or auto_audit_number_of_labels is not None :
749
+ raise ValueError (
750
+ "quality_mode must be set instead of auto_audit_percentage or auto_audit_number_of_labels."
751
+ )
752
+
753
+ name = kwargs .get ("name" )
754
+ if name is None or not name .strip ():
755
+ raise ValueError ("project name must be a valid string." )
756
+
757
+ queue_mode = kwargs .get ("queue_mode" )
758
+ if queue_mode is QueueMode .Dataset :
759
+ raise ValueError (
760
+ "Dataset queue mode is deprecated. Please prefer Batch queue mode."
761
+ )
762
+ elif queue_mode is QueueMode .Batch :
763
+ logger .warning (
764
+ "Passing a queue mode of batch is redundant and will soon no longer be supported."
765
+ )
766
+
767
+ media_type = kwargs .get ("media_type" )
768
+ if media_type and MediaType .is_supported (media_type ):
769
+ media_type_value = media_type .value
770
+ elif media_type :
771
+ raise TypeError (f"{ media_type } is not a valid media type. Use"
772
+ f" any of { MediaType .get_supported_members ()} "
773
+ " from MediaType. Example: MediaType.Image." )
774
+ else :
775
+ logger .warning (
776
+ "Creating a project without specifying media_type"
777
+ " through this method will soon no longer be supported." )
778
+ media_type_value = None
779
+
780
+ ontology_kind = kwargs .pop ("ontology_kind" , None )
781
+ if ontology_kind and OntologyKind .is_supported (ontology_kind ):
782
+ editor_task_type_value = EditorTaskTypeMapper .to_editor_task_type (
783
+ ontology_kind , media_type ).value
784
+ elif ontology_kind :
785
+ raise OntologyKind .get_ontology_kind_validation_error (ontology_kind )
786
+ else :
787
+ editor_task_type_value = None
788
+
789
+ quality_mode = kwargs .get ("quality_mode" )
790
+ if not quality_mode :
791
+ logger .info ("Defaulting quality mode to Benchmark." )
792
+
793
+ data = kwargs
794
+ data .pop ("quality_mode" , None )
795
+ if quality_mode is None or quality_mode is QualityMode .Benchmark :
796
+ data [
797
+ "auto_audit_number_of_labels" ] = BENCHMARK_AUTO_AUDIT_NUMBER_OF_LABELS
798
+ data ["auto_audit_percentage" ] = BENCHMARK_AUTO_AUDIT_PERCENTAGE
799
+ elif quality_mode is QualityMode .Consensus :
800
+ data [
801
+ "auto_audit_number_of_labels" ] = CONSENSUS_AUTO_AUDIT_NUMBER_OF_LABELS
802
+ data ["auto_audit_percentage" ] = CONSENSUS_AUTO_AUDIT_PERCENTAGE
803
+ else :
804
+ raise ValueError (f"{ quality_mode } is not a valid quality mode." )
805
+
806
+ params = {** data }
807
+ if media_type_value :
808
+ params ["media_type" ] = media_type_value
809
+ if editor_task_type_value :
810
+ params ["editor_task_type" ] = editor_task_type_value
811
+
812
+ extra_params = {
813
+ Field .String ("dataset_name_or_id" ):
814
+ params .pop ("dataset_name_or_id" , None ),
815
+ Field .Boolean ("append_to_existing_dataset" ):
816
+ params .pop ("append_to_existing_dataset" , None ),
817
+ Field .Int ("data_row_count" ):
818
+ params .pop ("data_row_count" , None ),
819
+ }
820
+ extra_params = {k : v for k , v in extra_params .items () if v is not None }
821
+
822
+ return self ._create (Entity .Project , params , extra_params )
756
823
757
824
@overload
758
825
def create_model_evaluation_project (self ,
@@ -815,99 +882,13 @@ def create_model_evaluation_project(self,
815
882
dataset_name_or_id = dataset_name
816
883
817
884
kwargs ["media_type" ] = MediaType .Conversational
885
+ kwargs ["ontology_kind" ] = OntologyKind .ModelEvaluation
818
886
kwargs ["dataset_name_or_id" ] = dataset_name_or_id
819
887
kwargs ["append_to_existing_dataset" ] = append_to_existing_dataset
820
888
kwargs ["data_row_count" ] = data_row_count
821
- kwargs ["editor_task_type" ] = EditorTaskType .ModelChatEvaluation .value
822
-
823
- return self ._create_project (** kwargs )
824
-
825
- def create_offline_model_evaluation_project (self , ** kwargs ) -> Project :
826
- """
827
- Creates a project for offline model evaluation.
828
- Args:
829
- **kwargs: Additional parameters to pass see the create_project method
830
- Returns:
831
- Project: The created project
832
- """
833
- kwargs [
834
- "media_type" ] = MediaType .Conversational # Only Conversational is supported
835
- kwargs [
836
- "editor_task_type" ] = EditorTaskType .OfflineModelChatEvaluation .value # Special editor task type for offline model evaluation
837
-
838
- # The following arguments are not supported for offline model evaluation
839
- kwargs .pop ("dataset_name_or_id" , None )
840
- kwargs .pop ("append_to_existing_dataset" , None )
841
- kwargs .pop ("data_row_count" , None )
842
889
843
890
return self .create_project (** kwargs )
844
891
845
- def _create_project (self , ** kwargs ) -> Project :
846
- auto_audit_percentage = kwargs .get ("auto_audit_percentage" )
847
- auto_audit_number_of_labels = kwargs .get ("auto_audit_number_of_labels" )
848
- if auto_audit_percentage is not None or auto_audit_number_of_labels is not None :
849
- raise ValueError (
850
- "quality_mode must be set instead of auto_audit_percentage or auto_audit_number_of_labels."
851
- )
852
-
853
- name = kwargs .get ("name" )
854
- if name is None or not name .strip ():
855
- raise ValueError ("project name must be a valid string." )
856
-
857
- queue_mode = kwargs .get ("queue_mode" )
858
- if queue_mode is QueueMode .Dataset :
859
- raise ValueError (
860
- "Dataset queue mode is deprecated. Please prefer Batch queue mode."
861
- )
862
- elif queue_mode is QueueMode .Batch :
863
- logger .warning (
864
- "Passing a queue mode of batch is redundant and will soon no longer be supported."
865
- )
866
-
867
- media_type = kwargs .get ("media_type" )
868
- if media_type and MediaType .is_supported (media_type ):
869
- media_type_value = media_type .value
870
- elif media_type :
871
- raise TypeError (f"{ media_type } is not a valid media type. Use"
872
- f" any of { MediaType .get_supported_members ()} "
873
- " from MediaType. Example: MediaType.Image." )
874
- else :
875
- logger .warning (
876
- "Creating a project without specifying media_type"
877
- " through this method will soon no longer be supported." )
878
- media_type_value = None
879
-
880
- quality_mode = kwargs .get ("quality_mode" )
881
- if not quality_mode :
882
- logger .info ("Defaulting quality mode to Benchmark." )
883
-
884
- data = kwargs
885
- data .pop ("quality_mode" , None )
886
- if quality_mode is None or quality_mode is QualityMode .Benchmark :
887
- data [
888
- "auto_audit_number_of_labels" ] = BENCHMARK_AUTO_AUDIT_NUMBER_OF_LABELS
889
- data ["auto_audit_percentage" ] = BENCHMARK_AUTO_AUDIT_PERCENTAGE
890
- elif quality_mode is QualityMode .Consensus :
891
- data [
892
- "auto_audit_number_of_labels" ] = CONSENSUS_AUTO_AUDIT_NUMBER_OF_LABELS
893
- data ["auto_audit_percentage" ] = CONSENSUS_AUTO_AUDIT_PERCENTAGE
894
- else :
895
- raise ValueError (f"{ quality_mode } is not a valid quality mode." )
896
-
897
- params = {** data }
898
- if media_type_value :
899
- params ["media_type" ] = media_type_value
900
-
901
- extra_params = {
902
- Field .String ("dataset_name_or_id" ):
903
- params .pop ("dataset_name_or_id" , None ),
904
- Field .Boolean ("append_to_existing_dataset" ):
905
- params .pop ("append_to_existing_dataset" , None ),
906
- }
907
- extra_params = {k : v for k , v in extra_params .items () if v is not None }
908
-
909
- return self ._create (Entity .Project , params , extra_params )
910
-
911
892
def get_roles (self ) -> List [Role ]:
912
893
"""
913
894
Returns:
0 commit comments