@@ -595,6 +595,36 @@ 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+ [
614+ item
615+ for item in t .t_inline_results (getv (from_object , ["inline_results" ]))
616+ ],
617+ )
618+
619+ if getv (from_object , ["configs" ]) is not None :
620+ setv (to_object , ["configs" ], [item for item in getv (from_object , ["configs" ])])
621+
622+ if getv (from_object , ["config" ]) is not None :
623+ setv (to_object , ["config" ], getv (from_object , ["config" ]))
624+
625+ return to_object
626+
627+
598628def _GenerateUserScenariosParameters_to_vertex (
599629 from_object : Union [dict [str , Any ], object ],
600630 parent_object : Optional [dict [str , Any ]] = None ,
@@ -1268,6 +1298,65 @@ def _generate_user_scenarios(
12681298 self ._api_client ._verify_response (return_value )
12691299 return return_value
12701300
1301+ def _generate_loss_clusters (
1302+ self ,
1303+ * ,
1304+ location : Optional [str ] = None ,
1305+ evaluation_set : Optional [str ] = None ,
1306+ inline_results : Optional [list [types .EvaluationResultOrDict ]] = None ,
1307+ configs : Optional [list [types .LossAnalysisConfigOrDict ]] = None ,
1308+ config : Optional [types .GenerateLossClustersConfigOrDict ] = None ,
1309+ ) -> types .GenerateLossClustersOperation :
1310+ """
1311+ Generates loss clusters from evaluation results.
1312+ """
1313+
1314+ parameter_model = types ._GenerateLossClustersParameters (
1315+ location = location ,
1316+ evaluation_set = evaluation_set ,
1317+ inline_results = inline_results ,
1318+ configs = configs ,
1319+ config = config ,
1320+ )
1321+
1322+ request_url_dict : Optional [dict [str , str ]]
1323+ if not self ._api_client .vertexai :
1324+ raise ValueError ("This method is only supported in the Vertex AI client." )
1325+ else :
1326+ request_dict = _GenerateLossClustersParameters_to_vertex (parameter_model )
1327+ request_url_dict = request_dict .get ("_url" )
1328+ if request_url_dict :
1329+ path = ":generateLossClusters" .format_map (request_url_dict )
1330+ else :
1331+ path = ":generateLossClusters"
1332+
1333+ query_params = request_dict .get ("_query" )
1334+ if query_params :
1335+ path = f"{ path } ?{ urlencode (query_params )} "
1336+ # TODO: remove the hack that pops config.
1337+ request_dict .pop ("config" , None )
1338+
1339+ http_options : Optional [types .HttpOptions ] = None
1340+ if (
1341+ parameter_model .config is not None
1342+ and parameter_model .config .http_options is not None
1343+ ):
1344+ http_options = parameter_model .config .http_options
1345+
1346+ request_dict = _common .convert_to_dict (request_dict )
1347+ request_dict = _common .encode_unserializable_types (request_dict )
1348+
1349+ response = self ._api_client .request ("post" , path , request_dict , http_options )
1350+
1351+ response_dict = {} if not response .body else json .loads (response .body )
1352+
1353+ return_value = types .GenerateLossClustersOperation ._from_response (
1354+ response = response_dict , kwargs = parameter_model .model_dump ()
1355+ )
1356+
1357+ self ._api_client ._verify_response (return_value )
1358+ return return_value
1359+
12711360 def _generate_rubrics (
12721361 self ,
12731362 * ,
@@ -2833,6 +2922,67 @@ async def _generate_user_scenarios(
28332922 self ._api_client ._verify_response (return_value )
28342923 return return_value
28352924
2925+ async def _generate_loss_clusters (
2926+ self ,
2927+ * ,
2928+ location : Optional [str ] = None ,
2929+ evaluation_set : Optional [str ] = None ,
2930+ inline_results : Optional [list [types .EvaluationResultOrDict ]] = None ,
2931+ configs : Optional [list [types .LossAnalysisConfigOrDict ]] = None ,
2932+ config : Optional [types .GenerateLossClustersConfigOrDict ] = None ,
2933+ ) -> types .GenerateLossClustersOperation :
2934+ """
2935+ Generates loss clusters from evaluation results.
2936+ """
2937+
2938+ parameter_model = types ._GenerateLossClustersParameters (
2939+ location = location ,
2940+ evaluation_set = evaluation_set ,
2941+ inline_results = inline_results ,
2942+ configs = configs ,
2943+ config = config ,
2944+ )
2945+
2946+ request_url_dict : Optional [dict [str , str ]]
2947+ if not self ._api_client .vertexai :
2948+ raise ValueError ("This method is only supported in the Vertex AI client." )
2949+ else :
2950+ request_dict = _GenerateLossClustersParameters_to_vertex (parameter_model )
2951+ request_url_dict = request_dict .get ("_url" )
2952+ if request_url_dict :
2953+ path = ":generateLossClusters" .format_map (request_url_dict )
2954+ else :
2955+ path = ":generateLossClusters"
2956+
2957+ query_params = request_dict .get ("_query" )
2958+ if query_params :
2959+ path = f"{ path } ?{ urlencode (query_params )} "
2960+ # TODO: remove the hack that pops config.
2961+ request_dict .pop ("config" , None )
2962+
2963+ http_options : Optional [types .HttpOptions ] = None
2964+ if (
2965+ parameter_model .config is not None
2966+ and parameter_model .config .http_options is not None
2967+ ):
2968+ http_options = parameter_model .config .http_options
2969+
2970+ request_dict = _common .convert_to_dict (request_dict )
2971+ request_dict = _common .encode_unserializable_types (request_dict )
2972+
2973+ response = await self ._api_client .async_request (
2974+ "post" , path , request_dict , http_options
2975+ )
2976+
2977+ response_dict = {} if not response .body else json .loads (response .body )
2978+
2979+ return_value = types .GenerateLossClustersOperation ._from_response (
2980+ response = response_dict , kwargs = parameter_model .model_dump ()
2981+ )
2982+
2983+ self ._api_client ._verify_response (return_value )
2984+ return return_value
2985+
28362986 async def _generate_rubrics (
28372987 self ,
28382988 * ,
0 commit comments