@@ -595,6 +595,33 @@ def _GenerateInstanceRubricsRequest_to_vertex(
595595 return to_object
596596
597597
598+ def _GenerateLossClustersParameters_to_vertex (
599+ from_object : Union [dict [str , Any ], object ],
600+ parent_object : Optional [dict [str , Any ]] = None ,
601+ ) -> dict [str , Any ]:
602+ to_object : dict [str , Any ] = {}
603+ if getv (from_object , ["location" ]) is not None :
604+ setv (to_object , ["location" ], getv (from_object , ["location" ]))
605+
606+ if getv (from_object , ["evaluation_set" ]) is not None :
607+ setv (to_object , ["evaluationSet" ], getv (from_object , ["evaluation_set" ]))
608+
609+ if getv (from_object , ["inline_results" ]) is not None :
610+ setv (
611+ to_object ,
612+ ["inlineResults" , "evaluationResults" ],
613+ t .t_inline_results (getv (from_object , ["inline_results" ])),
614+ )
615+
616+ if getv (from_object , ["configs" ]) is not None :
617+ setv (to_object , ["configs" ], [item for item in getv (from_object , ["configs" ])])
618+
619+ if getv (from_object , ["config" ]) is not None :
620+ setv (to_object , ["config" ], getv (from_object , ["config" ]))
621+
622+ return to_object
623+
624+
598625def _GenerateUserScenariosParameters_to_vertex (
599626 from_object : Union [dict [str , Any ], object ],
600627 parent_object : Optional [dict [str , Any ]] = None ,
@@ -1268,6 +1295,65 @@ def _generate_user_scenarios(
12681295 self ._api_client ._verify_response (return_value )
12691296 return return_value
12701297
1298+ def _generate_loss_clusters (
1299+ self ,
1300+ * ,
1301+ location : Optional [str ] = None ,
1302+ evaluation_set : Optional [str ] = None ,
1303+ inline_results : Optional [list [types .EvaluationResultOrDict ]] = None ,
1304+ configs : Optional [list [types .LossAnalysisConfigOrDict ]] = None ,
1305+ config : Optional [types .GenerateLossClustersConfigOrDict ] = None ,
1306+ ) -> types .GenerateLossClustersOperation :
1307+ """
1308+ Generates loss clusters from evaluation results.
1309+ """
1310+
1311+ parameter_model = types ._GenerateLossClustersParameters (
1312+ location = location ,
1313+ evaluation_set = evaluation_set ,
1314+ inline_results = inline_results ,
1315+ configs = configs ,
1316+ config = config ,
1317+ )
1318+
1319+ request_url_dict : Optional [dict [str , str ]]
1320+ if not self ._api_client .vertexai :
1321+ raise ValueError ("This method is only supported in the Vertex AI client." )
1322+ else :
1323+ request_dict = _GenerateLossClustersParameters_to_vertex (parameter_model )
1324+ request_url_dict = request_dict .get ("_url" )
1325+ if request_url_dict :
1326+ path = ":generateLossClusters" .format_map (request_url_dict )
1327+ else :
1328+ path = ":generateLossClusters"
1329+
1330+ query_params = request_dict .get ("_query" )
1331+ if query_params :
1332+ path = f"{ path } ?{ urlencode (query_params )} "
1333+ # TODO: remove the hack that pops config.
1334+ request_dict .pop ("config" , None )
1335+
1336+ http_options : Optional [types .HttpOptions ] = None
1337+ if (
1338+ parameter_model .config is not None
1339+ and parameter_model .config .http_options is not None
1340+ ):
1341+ http_options = parameter_model .config .http_options
1342+
1343+ request_dict = _common .convert_to_dict (request_dict )
1344+ request_dict = _common .encode_unserializable_types (request_dict )
1345+
1346+ response = self ._api_client .request ("post" , path , request_dict , http_options )
1347+
1348+ response_dict = {} if not response .body else json .loads (response .body )
1349+
1350+ return_value = types .GenerateLossClustersOperation ._from_response (
1351+ response = response_dict , kwargs = parameter_model .model_dump ()
1352+ )
1353+
1354+ self ._api_client ._verify_response (return_value )
1355+ return return_value
1356+
12711357 def _generate_rubrics (
12721358 self ,
12731359 * ,
@@ -2833,6 +2919,67 @@ async def _generate_user_scenarios(
28332919 self ._api_client ._verify_response (return_value )
28342920 return return_value
28352921
2922+ async def _generate_loss_clusters (
2923+ self ,
2924+ * ,
2925+ location : Optional [str ] = None ,
2926+ evaluation_set : Optional [str ] = None ,
2927+ inline_results : Optional [list [types .EvaluationResultOrDict ]] = None ,
2928+ configs : Optional [list [types .LossAnalysisConfigOrDict ]] = None ,
2929+ config : Optional [types .GenerateLossClustersConfigOrDict ] = None ,
2930+ ) -> types .GenerateLossClustersOperation :
2931+ """
2932+ Generates loss clusters from evaluation results.
2933+ """
2934+
2935+ parameter_model = types ._GenerateLossClustersParameters (
2936+ location = location ,
2937+ evaluation_set = evaluation_set ,
2938+ inline_results = inline_results ,
2939+ configs = configs ,
2940+ config = config ,
2941+ )
2942+
2943+ request_url_dict : Optional [dict [str , str ]]
2944+ if not self ._api_client .vertexai :
2945+ raise ValueError ("This method is only supported in the Vertex AI client." )
2946+ else :
2947+ request_dict = _GenerateLossClustersParameters_to_vertex (parameter_model )
2948+ request_url_dict = request_dict .get ("_url" )
2949+ if request_url_dict :
2950+ path = ":generateLossClusters" .format_map (request_url_dict )
2951+ else :
2952+ path = ":generateLossClusters"
2953+
2954+ query_params = request_dict .get ("_query" )
2955+ if query_params :
2956+ path = f"{ path } ?{ urlencode (query_params )} "
2957+ # TODO: remove the hack that pops config.
2958+ request_dict .pop ("config" , None )
2959+
2960+ http_options : Optional [types .HttpOptions ] = None
2961+ if (
2962+ parameter_model .config is not None
2963+ and parameter_model .config .http_options is not None
2964+ ):
2965+ http_options = parameter_model .config .http_options
2966+
2967+ request_dict = _common .convert_to_dict (request_dict )
2968+ request_dict = _common .encode_unserializable_types (request_dict )
2969+
2970+ response = await self ._api_client .async_request (
2971+ "post" , path , request_dict , http_options
2972+ )
2973+
2974+ response_dict = {} if not response .body else json .loads (response .body )
2975+
2976+ return_value = types .GenerateLossClustersOperation ._from_response (
2977+ response = response_dict , kwargs = parameter_model .model_dump ()
2978+ )
2979+
2980+ self ._api_client ._verify_response (return_value )
2981+ return return_value
2982+
28362983 async def _generate_rubrics (
28372984 self ,
28382985 * ,
0 commit comments