
    jb                    >   d dl Z d dlZd dlmZmZmZ d dlmZ ddlm	Z	 ddlm
Z
 ddlmZ ddlmZ dd	l
mZ dd
l
mZ ddlmZmZ  ej        d          Z	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ 	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ!	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ"	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ#	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ$	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ%	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ&	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ'	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fdZ(	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd Z)	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd!Z*	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd"Z+	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd#Z,	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd$Z-	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd%Z.	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd&Z/	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd'Z0	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd(Z1	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd)Z2	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd*Z3	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd+Z4	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd,Z5	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd-Z6	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd.Z7	 	 d6deeeef         ef         deeeef                  deeeeef         ef                  deeef         fd/Z8 G d0 d1e	j9                  Z: G d2 d3e	j9                  Z; G d4 d5          Z<dS )7    N)AnyOptionalUnion)	urlencode   )_api_module)_common)_transformers)types)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.tuningsfrom_objectparent_objectroot_objectreturnc           
         i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )	NsamplingCountsampling_countflipEnabledflip_enabledautoraterModelautorater_modelgenerationConfiggeneration_config)getvsetv_GenerationConfig_from_vertexr   r   r   	to_objects       _/DATA/AppData/hermes/projects/honcho/.venv/lib/python3.11/site-packages/google/genai/tunings.py_AutoraterConfig_from_vertexr#   "   s   
 !)	+())5%&[?:K(L(LMMM	+''3^$d;&H&HIII	+()**6&'k<L;M)N)NOOO	+*+,,8	%1233Y	
 	
   
    c           
         i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )	Nr   r   r   r   r   r   r   r   )r   r   _GenerationConfig_to_vertexr    s       r"   _AutoraterConfig_to_vertexr'   =   s   
 !)	+()**6_%tK:J9K'L'LMMM	+'((4]OT+7G%H%HIII	+)*++7%&[;L:M(N(NOOO	++,--9	#2344i	
 	
   
r$   c                 p    i }t          | dg          "t          |ddgt          | dg                     |S Nname_urlr   r   r    s       r"   #_CancelTuningJobParameters_to_mldevr-   X   D    
 !)	+x  ,VV$d;&A&ABBB	r$   c                 p    i }t          | dg          "t          |ddgt          | dg                     |S r)   r,   r    s       r"   $_CancelTuningJobParameters_to_vertexr0   d   r.   r$   c                 n    i }t          | dg          !t          |dgt          | dg                     |S NsdkHttpResponsesdk_http_responser,   r    s       r"   #_CancelTuningJobResponse_from_mldevr5   p   P    
 !)	+)*++7'(${=N<O*P*P   
r$   c                 n    i }t          | dg          !t          |dgt          | dg                     |S r2   r,   r    s       r"   $_CancelTuningJobResponse_from_vertexr8   ~   r6   r$   c                    i }t          | dg          t          d          t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          "t          |g dt          | dg                     t          | d	g          "t          |g d
t          | d	g                     t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          t          | dg          "t          |g dt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          t          | dg          t          d           t          | d!g          t          d"          t          | d#g          t          d$          t          | d%g          t          d&          t          | d'g          t          d(          |S ))Nvalidation_datasetz<validation_dataset parameter is not supported in Gemini API.tuned_model_display_namedisplayNamedescriptionz5description parameter is not supported in Gemini API.epoch_count)
tuningTaskhyperparameters
epochCountlearning_rate_multiplier)r?   r@   learningRateMultiplierexport_last_checkpoint_onlyzEexport_last_checkpoint_only parameter is not supported in Gemini API.pre_tuned_model_checkpoint_idzGpre_tuned_model_checkpoint_id parameter is not supported in Gemini API.adapter_sizez6adapter_size parameter is not supported in Gemini API.tuning_modez5tuning_mode parameter is not supported in Gemini API.custom_base_modelz;custom_base_model parameter is not supported in Gemini API.
batch_size)r?   r@   	batchSizelearning_rate)r?   r@   learningRateevaluation_configz;evaluation_config parameter is not supported in Gemini API.labelsz0labels parameter is not supported in Gemini API.betaz.beta parameter is not supported in Gemini API.base_teacher_modelz<base_teacher_model parameter is not supported in Gemini API.tuned_teacher_model_sourcezDtuned_teacher_model_source parameter is not supported in Gemini API.sft_loss_weight_multiplierzDsft_loss_weight_multiplier parameter is not supported in Gemini API.
output_uriz4output_uri parameter is not supported in Gemini API.encryption_specz9encryption_spec parameter is not supported in Gemini API.r   
ValueErrorr   r    s       r"   _CreateTuningJobConfig_to_mldevrW      s   
 !)	+,-..:
F   
+2344@	[5677   
+''3
L
M
MM	+''3777[=/**   
+2344@CCC[5677   
+5677C
O   
+7899E
	  
 
+'((4
M
N
NN	+''3
L
M
MM	++,--9
E   
+~&&2666[<.))   
+())5999[?+,,   
++,--9
E   
+z"".
G
H
HH	+x  ,
E
F
FF	+,-..:
F   
+4566B
N   
+4566B
N   
+~&&2
K
L
LL	+)*++7
C   
r$   c           
         i }t          |ddg          }|d}|dk    rBt          | dg          0t          |dgt          t          | dg          ||                     n|dk    rBt          | dg          0t          |dgt          t          | dg          ||                     nG|dk    rAt          | dg          0t          |d	gt          t          | dg          ||                     t          | d
g          !t          |dgt          | d
g                     t          | dg          !t          |dgt          | dg                     t          |ddg          }|d}|dk    r4t          | dg          "t          |g dt          | dg                     ns|dk    r4t          | dg          "t          |g dt          | dg                     n9|dk    r3t          | dg          "t          |g dt          | dg                     t          |ddg          }|d}|dk    r4t          | dg          "t          |g dt          | dg                     ns|dk    r4t          | dg          "t          |g dt          | dg                     n9|dk    r3t          | dg          "t          |g dt          | dg                     t          |ddg          }|d}|dk    r4t          | dg          "t          |ddgt          | dg                     ns|dk    r4t          | dg          "t          |ddgt          | dg                     n9|dk    r3t          | dg          "t          |d	dgt          | dg                     t          |ddg          }|d}|dk    r4t          | dg          "t          |g dt          | dg                     ns|dk    r4t          | dg          "t          |g dt          | dg                     n9|dk    r3t          | dg          "t          |g dt          | dg                     t          |ddg          }|d}|dk    r4t          | dg          "t          |ddgt          | dg                     n9|dk    r3t          | dg          "t          |d	dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          |ddg          }|d}|dk    r4t          | dg          "t          |g d t          | dg                     n9|dk    r3t          | dg          "t          |g d!t          | dg                     t          |ddg          }|d}|dk    r4t          | d"g          "t          |g d#t          | d"g                     n9|dk    r3t          | d"g          "t          |g d$t          | d"g                     t          |ddg          }|d}|dk    rCt          | d%g          1t          |dd&gt          t          | d%g          ||                     n|dk    rCt          | d%g          1t          |dd&gt          t          | d%g          ||                     nH|dk    rBt          | d%g          1t          |d	d&gt          t          | d%g          ||                     t          | d'g          !t          |d'gt          | d'g                     t          | d(g          "t          |g d)t          | d(g                     t          | d*g          "t          |d	d+gt          | d*g                     t          | d,g          "t          |d	d-gt          | d,g                     t          | d.g          "t          |g d/t          | d.g                     t          | d0g          !t          |d1gt          | d0g                     t          | d2g          !t          |d3gt          | d2g                     |S )4NconfigmethodSUPERVISED_FINE_TUNINGr:   supervisedTuningSpecPREFERENCE_TUNINGpreferenceOptimizationSpecDISTILLATIONdistillationSpecr;   tunedModelDisplayNamer=   r>   )r\   hyperParametersrA   )r^   rb   rA   )r`   rb   rA   rB   )r\   rb   rC   )r^   rb   rC   )r`   rb   rC   rD   exportLastCheckpointOnlyrF   )r\   rb   adapterSize)r^   rb   rd   )r`   rb   rd   rG   
tuningModerH   customBaseModelrI   )r\   rb   rJ   )r`   rb   rJ   rK   )r\   rb   rL   )r`   rb   rL   rM   evaluationConfigrN   rO   )r^   rb   rO   rP   baseTeacherModelrQ   tunedTeacherModelSourcerR   )r`   rb   sftLossWeightMultiplierrS   	outputUrirT   encryptionSpec)r   r   "_TuningValidationDataset_to_vertex_EvaluationConfig_to_vertexr   r   r   r!   discriminators        r"    _CreateTuningJobConfig_to_vertexrq      sm   
 !){Xx$899-,M...K./00<

!
"
,;!5 677K    +++K./00<

'
(
,;!5 677K    &&K./00<



,;!5 677K    
+2344@	 ![5677   
+''3kM?)K)KLLL{Xx$899-,M...K-))5


C
C
C
{]O
,
,  
 +++K-))5


I
I
I
{]O
,
,  
 &&K-))5


?
?
?
{]O
,
,   {Xx$899-,M...K4566B


O
O
O
{78
9
9  
 +++K4566B

  
 {78
9
9   &&K4566B


K
K
K
{78
9
9   {Xx$899-,M...K7899E

!#=
>
{:;
<
<  
 +++K7899E

')C
D
{:;
<
<  
 &&K7899E

9
:
{:;
<
<   {Xx$899-,M...K.)**6


D
D
D
{^,
-
-  
 +++K.)**6


J
J
J
{^,
-
-  
 &&K.)**6


@
@
@
{^,
-
-   {Xx$899-,M...K-))5

!<
0
{]O
,
,  
 &&K-))5

|
,
{]O
,
,   
++,--9	[./00   {Xx$899-,M...K,((4


B
B
B
{\N
+
+  
 &&K,((4


>
>
>
{\N
+
+   {Xx$899-,M...K/*++7


E
E
E
{_-
.
.  
 &&K/*++7


A
A
A
{_-
.
.   {Xx$899-,M...K-.//;

!#5
6
%;!4 566	;    +++K-.//;

');
<
%;!4 566	;    &&K-.//;

1
2
%;!4 566	;    
+z"".
Dxj$A$ABBB	+x  ,AAA[6(##   
+,-..:	/0[/011   
+4566B	67[7899   
+4566BJJJ[7899   
+~&&2tK,'H'HIII	+)*++7	[,-..   
r$   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg           t          t          | dg          ||           t          | dg           t          t          | dg          ||           |S N
base_model	baseModelpre_tuned_modelpreTunedModeltraining_datasetrY   )r   r   _TuningDataset_to_mldevrW   r    s       r"   *_CreateTuningJobParametersPrivate_to_mldevrz     s    
 !)	+~&&2[M4l^#D#DEEE	+)*++7_%tK:K9L'M'MNNN	+*+,,8[-.//K   
+z"".#[8*%%y+   
r$   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg           t          t          | dg          ||           t          | dg           t          t          | dg          ||           |S rs   )r   r   _TuningDataset_to_vertexrq   r    s       r"   +_CreateTuningJobParametersPrivate_to_vertexr}   2  s    
 !)	+~&&2[M4l^#D#DEEE	+)*++7_%tK:K9L'M'MNNN	+*+,,8[-.//K   
+z"".$[8*%%y+   
r$   c           
         i }t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt	          t          | dg          ||                     t          | dg          0t          |dgt          t          | dg          ||                     |S )NmetricsoutputConfigoutput_configautoraterConfigautorater_configinferenceGenerationConfiginference_generation_config)r   r   t	t_metricsr#   r   r    s       r"   _EvaluationConfig_from_vertexr   K  s(   
 !)	+	{##/YKT+	{-K-K!L!LMMM	+'((4_%tK.9I'J'JKKK	+)*++7	$0122I{	
 	
   
+3455A	&'%:;<<	
 	
   
r$   c           
         i }t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt	          t          | dg          ||                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr   r   r   r   r   r   r   )r   r   r   r   r'   r&   r    s       r"   rn   rn   n  s(   
 !)	+	{##/YKT+	{-K-K!L!LMMM	+())5^$d;8I&J&JKKK	+*+,,8	"1233Y	
 	
   
+5677C	$%#<=>>	
 	
   
r$   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          !t          |d
gt          | d	g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |d gt          | dg                     t          | d!g          !t          |d"gt          | d!g                     t          | d#g          !t          |d#gt          | d#g                     t          | d$g          !t          |d%gt          | d$g                     t          | d&g          !t          |d'gt          | d&g                     t          | d(g          !t          |d)gt          | d(g                     |S )*NmodelConfigmodel_selection_configresponseJsonSchemaresponse_json_schemaaudioTimestampaudio_timestampcandidateCountcandidate_countenableAffectiveDialogenable_affective_dialogfrequencyPenaltyfrequency_penaltylogprobsmaxOutputTokensmax_output_tokensmediaResolutionmedia_resolutionpresencePenaltypresence_penaltyresponseLogprobsresponse_logprobsresponseMimeTyperesponse_mime_typeresponseModalitiesresponse_modalitiesresponseSchemaresponse_schemaroutingConfigrouting_configseedspeechConfigspeech_configstopSequencesstop_sequencestemperaturethinkingConfigthinking_configtopKtop_ktopPtop_pr,   r    s       r"   r   r     s   
 !)	+''3	!"[=/**   
+,-..:	 [/011   
+()**6&'k<L;M)N)NOOO	+()**6&'k<L;M)N)NOOO	+/011=	"#[2344   
+*+,,8	[-.//   
+
|$$0ZL${ZL"A"ABBB	+)*++7'(${=N<O*P*P   
+)*++7&'k<M;N)O)O   
+)*++7&'k<M;N)O)O   
+*+,,8	[-.//   
+*+,,8	[-.//   
+,-..:	[/011   
+()**6&'k<L;M)N)NOOO	+())5%&[?:K(L(LMMM	+x  ,VHd;99:::	+'((4_%tK.9I'J'JKKK	+())5%&[?:K(L(LMMM	+''3]OT+%G%GHHH	+()**6&'k<L;M)N)NOOO	+x  ,WItK&::;;;	+x  ,WItK&::;;;	r$   c           
       	   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          !t          |d
gt          | d	g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |d gt          t          | dg          ||                     t          | d!g          !t          |d"gt          | d!g                     t          | d#g          !t          |d#gt          | d#g                     t          | d$g          !t          |d%gt          | d$g                     t          | d&g          !t          |d'gt          | d&g                     t          | d(g          !t          |d)gt          | d(g                     t          | d*g          t          d+          |S ),Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   enable_enhanced_civic_answersz]enable_enhanced_civic_answers parameter is not supported in Gemini Enterprise Agent Platform.)r   r   _SpeechConfig_to_vertexrV   r    s       r"   r&   r&     se   
 !)	+0122>	[3455   
+./00<	[1233   
+)*++7%&[;L:M(N(NOOO	+)*++7%&[;L:M(N(NOOO	+1233?	 ![4566   
++,--9	[./00   
+
|$$0ZL${ZL"A"ABBB	++,--9%&[;N:O(P(P   
+*+,,8%&[;M:N(O(O   
+*+,,8%&[;M:N(O(O   
++,--9	[./00   
+,-..:	[/011   
+-.//;	[0122   
+)*++7%&[;L:M(N(NOOO	+()**6_%tK:J9K'L'LMMM	+x  ,VHd;99:::	+())5	/00)[	
 	
   
+()**6_%tK:J9K'L'LMMM	+''3]OT+%G%GHHH	+)*++7%&[;L:M(N(NOOO	+y!!-VHd;	::;;;	+y!!-VHd;	::;;;	+7899E
	&  
 
r$   c                 p    i }t          | dg          "t          |ddgt          | dg                     |S r)   r,   r    s       r"    _GetTuningJobParameters_to_mldevr   w  r.   r$   c                 p    i }t          | dg          "t          |ddgt          | dg                     |S r)   r,   r    s       r"   !_GetTuningJobParameters_to_vertexr     r.   r$   c                 <   i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     |S )N	page_size_querypageSize
page_token	pageTokenfilterr,   r    s       r"   _ListTuningJobsConfig_to_vertexr     s    
 !)	+}%%1*-tK+/O/O   
+~&&2	;[<.))   
+z"".8,d;
.K.KLLL	r$   c                 l    i }t          | dg           t          t          | dg          ||           |S )NrY   )r   r   r    s       r"   #_ListTuningJobsParameters_to_vertexr     sH    
 !)	+z"".#[8*%%y+   
r$   c           	      T   i t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfdt          | dg          D                        S )Nr3   r4   nextPageTokennext_page_token
tuningJobstuning_jobsc                 2    g | ]}t          |          S  )_TuningJob_from_vertex.0itemr   r!   s     r"   
<listcomp>z7_ListTuningJobsResponse_from_vertex.<locals>.<listcomp>  s5     	
 	
 	
 #4K@@	
 	
 	
r$   r,   r    s     `@r"   #_ListTuningJobsResponse_from_vertexr     s    
 !)	+)*++7'(${=N<O*P*P   
+())5&'kO;L)M)MNNN	+~&&2		
 	
 	
 	
 	
[<.99	
 	
 	
   
r$   c           	          i t          | dg          .t          dgfdt          | dg          D                        S )Nspeaker_voice_configsspeakerVoiceConfigsc                 2    g | ]}t          |          S r   )_SpeakerVoiceConfig_to_vertexr   s     r"   r   z6_MultiSpeakerVoiceConfig_to_vertex.<locals>.<listcomp>  s5     	
 	
 	
 *$	;GG	
 	
 	
r$   r,   r    s     `@r"   "_MultiSpeakerVoiceConfig_to_vertexr     s{    
 !)	+/011=		
 	
 	
 	
 	
[+B*CDD	
 	
 	
   
r$   c                 R   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          |S )	N	mime_typemimeTypevoice_sample_audiovoiceSampleAudioconsent_audiozMconsent_audio parameter is not supported in Gemini Enterprise Agent Platform.voice_consent_signaturezWvoice_consent_signature parameter is not supported in Gemini Enterprise Agent Platform.r   r   rV   r    s       r"    _ReplicatedVoiceConfig_to_vertexr     s    
 !)	+}%%1ZL${[M"B"BCCC	+,-..:	[/011   
+())5
	  
 
+1233?
	&  
 
r$   c           
          i }t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nspeakervoice_configvoiceConfig)r   r   _VoiceConfig_to_vertexr    s       r"   r   r     s    
 !)	+	{##/YKkI;!?!?@@@	+'((4	~.//K	
 	
   
r$   c           
      r   i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr   r   language_codelanguageCodemulti_speaker_voice_configmultiSpeakerVoiceConfig)r   r   r   r   r    s       r"   r   r     s    
 !)	+'((4	~.//K	
 	
   
+())5^$d;8I&J&JKKK	+4566B	"#*;<==	
 	
   
r$   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr*   modelendpointr,   r    s       r"   _TunedModel_from_mldevr   8  ss    
 !)	+x  ,WItK&::;;;	+x  ,ZL${VH"="=>>>	r$   c           	         i }t          | dg          t          d          t          | dg          t          d          t          | dg          ,t          |ddgd t          | dg          D                        |S )Ngcs_uriz1gcs_uri parameter is not supported in Gemini API.vertex_dataset_resourcezAvertex_dataset_resource parameter is not supported in Gemini API.examplesc                     g | ]}|S r   r   r   r   s     r"   r   z+_TuningDataset_to_mldev.<locals>.<listcomp>Y  s    :::$:::r$   rU   r    s       r"   ry   ry   G  s    
 !)	+	{##/
H
I
II	+1233?
K   
+
|$$0	Z ::${ZL99:::   
r$   c                 V   i }t          |ddg          }|d}|dk    r4t          | dg          "t          |ddgt          | dg                     ns|dk    r4t          | dg          "t          |ddgt          | dg                     n9|d	k    r3t          | dg          "t          |d
dgt          | dg                     t          |ddg          }|d}|dk    r4t          | dg          "t          |ddgt          | dg                     ns|dk    r4t          | dg          "t          |ddgt          | dg                     n9|d	k    r3t          | dg          "t          |d
dgt          | dg                     t          | dg          t          d          |S )NrY   rZ   r[   r   r\   trainingDatasetUrir]   r^   r_   r`   promptDatasetUrir   r   zHexamples parameter is not supported in Gemini Enterprise Agent Platform.r   ro   s        r"   r|   r|   _  sT   
 !){Xx$899-,M...K)%%1

!#7
8
{YK
(
(  
 +++K)%%1

')=
>
{YK
(
(  
 &&K)%%1

1
2
{YK
(
(   {Xx$899-,M...K3455A

!#7
8
{67
8
8  
 +++K3455A

')=
>
{67
8
8  
 &&K3455A

1
2
{67
8
8   
+
|$$0
	  
 
r$   c           
      <   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     t          | ddg          "t          |d	gt          | ddg                     t          | dd
g          "t          |dgt          | dd
g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt	          t          | dg          ||                     |S )Nr3   r4   r*   state
createTimecreate_timer?   	startTime
start_timecompleteTimeend_time
updateTimeupdate_timer=   ru   rt   _selftuned_model)r   r   r   t_tuning_job_statusr   r    s       r"   _TuningJob_from_mldevr    sf   
 !)	+)*++7'(${=N<O*P*P   
+x  ,VHd;99:::	+y!!-			d;	::;;   
+~&&2]OT+~%F%FGGG	+k233?	[<566   
+n566B	[<899   
+~&&2]OT+~%F%FGGG	+''3]OT+%G%GHHH	+}%%1\ND{m$D$DEEE	+y!!-	wi(()[	
 	
   
r$   c           
         i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          !t          |d
gt          | d	g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |d gt          | dg                     t          | d!g          0t          |d"gt	          t          | d!g          ||                     t          | d#g          !t          |d$gt          | d#g                     t          | d%g          +t          |d&gd' t          | d%g          D                        t          | d(g          !t          |d(gt          | d(g                     t          | d)g          !t          |d*gt          | d)g                     t          | d+g          !t          |d+gt          | d+g                     t          | d,g          !t          |d-gt          | d,g                     t          | d.g          !t          |d/gt          | d.g                     t          | d0g          !t          |d1gt          | d0g                     t          | d2g          !t          |d3gt          | d2g                     t          | d4g          !t          |d5gt          | d4g                     t          | d6g          !t          |d7gt          | d6g                     t          | d8g          !t          |d9gt          | d8g                     t          | d:g          !t          |d;gt          | d:g                     |S )<Nr3   r4   r*   r   r   r   r   r   endTimer   r   r  errorr=   ru   rt   
tunedModelr  rw   rv   r\   supervised_tuning_specr^   preference_optimization_specr`   distillation_spectuningDataStatstuning_data_statsrl   rT   partnerModelTuningSpecpartner_model_tuning_specrg   rM   rf   rH   evaluateDatasetRunsevaluate_dataset_runsc                     g | ]}|S r   r   r   s     r"   r   z*_TuningJob_from_vertex.<locals>.<listcomp>B  s    EEE$EEEr$   
experimentfullFineTuningSpecfull_fine_tuning_specrN   rk   rS   pipelineJobpipeline_jobserviceAccountservice_accountra   r;   tuningJobStatetuning_job_stateveoTuningSpecveo_tuning_specdistillationSamplingSpecdistillation_sampling_spectuningJobMetadatatuning_job_metadata)r   r   r   r  r   r    s       r"   r   r     sl   
 !)	+)*++7'(${=N<O*P*P   
+x  ,VHd;99:::	+y!!-			d;	::;;   
+~&&2]OT+~%F%FGGG	+}%%1\ND{m$D$DEEE	+	{##/ZL${YK"@"@AAA	+~&&2]OT+~%F%FGGG	+y!!-WItK';;<<<	+''3]OT+%G%GHHH	+}%%1\ND{m$D$DEEE	+~&&2]OT+~%F%FGGG	+())5&'kO;L)M)MNNN	+./00<	!"[1233   
+4566B	'([7899   
+*+,,8	[-.//   
+)*++7'(${=N<O*P*P   
+()**6&'k<L;M)N)NOOO	+0122>	$%[3455   
+*+,,8	%1233Y	
 	
   
+)*++7'(${=N<O*P*P   
+-.//;	 !EE${-B,CDDEEE   
+~&&2\ND|n$E$EFFF	+,-..:	 ![/011   
+z"".XJ[8* = =>>>	+}%%1\ND{m$D$DEEE	+''3^$d;&H&HIII	+()**6&'k<L;M)N)NOOO	+/011=	#$[2344   
+()**6'(${=M<N*O*OPPP	+())5&'kO;L)M)MNNN	+2344@	%&[5677   
++,--9	[./00   
r$   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr3   r4   r*   metadatadoner  r,   r    s       r"   _TuningOperation_from_mldevr&  y  s   
 !)	+)*++7'(${=N<O*P*P   
+x  ,VHd;99:::	+
|$$0ZL${ZL"A"ABBB	+x  ,VHd;99:::	+y!!-WItK';;<<<	r$   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr   validationDatasetUrir   r,   r    s       r"   rm   rm     s    
 !)	+	{##/+,d;.L.LMMM	+1233?	 [4566   
r$   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     |S )Nreplicated_voice_configreplicatedVoiceConfigprebuilt_voice_configprebuiltVoiceConfig)r   r   r   r    s       r"   r   r     s    
 !)	+1233?	 !(89::	
 	
   
+/011=	[2344   
r$   c                      e Zd Zdddedeej                 dej        fdZdddeej	                 dej
        fdZdddedeej                 dej        fdZdddd	d
ee         deej                 dej        deej                 dej        f
dZdddd	d
ee         deej                 dej        deej                 dej        f
dZdddedeej                 dej        fdZ ej        d          ddd
edej        deej                 dej        fd            Zdddeej	                 deej                 fdZdS )TuningsNrY   r*   rY   r   c                   t          j        ||          }| j        j        rAt	          |d|          }|                    d          }|rd                    |          }nCd}n@t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d|          }
| j        j        st)          |
d|          }
t           j                            |
t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |	j                  |_        | j                            |           |S zzGets a TuningJob.

    Args:
      name: The resource name of the tuning job.

    Returns:
      A TuningJob object.
    r*   rY   Nr+   z{name}r   ?rY   getr   r   include_all_fieldsr   r   r6  responsekwargsheaders)r   _GetTuningJobParameters_api_clientvertexair   r5  
format_mapr   r   poprY   http_optionsr	   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsr   r  	TuningJob_from_responsegetattrHttpResponser<  r4   _verify_responseselfr*   rY   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrB  r9  response_dictreturn_values               r"   _getzTunings._get  s    3  O   6
4 l &))&11	 ""#3445
4 l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM  ,
 m $ +
 m ?11 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 2  L$ &+%7 & & &L" 	%%l333r$   c                   t          j        |          }| j        j        st	          d          t          |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }|j        si nt#          j        |j                  }	| j        j        rt'          |	d |          }	t           j                            |	t-          |dd           rDdt-          |j
        d	d           t-          |j
        d
d           t-          |j
        dd           dini           }
t          j        |j                  |
_        | j                            |
           |
S Nr0  mThis method is only supported in the Gemini Enterprise Agent Platform (previously known as Vertex AI) client.r+   r   r   r4  rY   r5  r   r   r6  r7  r8  r;  )r   _ListTuningJobsParametersr>  r?  rV   r   r5  r@  r   rA  rY   rB  r	   rC  rD  rE  rF  rG  rH  r   ListTuningJobsResponserJ  rK  rL  r<  r4   rM  rO  rY   rP  rQ  rR  rS  rT  rB  r9  rU  rV  s              r"   _listzTunings._list!  sd    5  O
 $ >  
 9
4 l &))&11	 &&'788##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM  9
 m />> ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ?  L$ &+%7 & & &L" 	%%l333r$   c                   t          j        ||          }| j        j        rAt	          |d|          }|                    d          }|rd                    |          }nCd}n@t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d|          }
| j        j        st)          |
d|          }
t           j                            |
t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |	j                  |_        | j                            |           |S )zPCancels a tuning job.

    Args:
      name (str): TuningJob resource name.
    r3  Nr+   {name}:cancelr   r4  rY   postr   r   r6  r7  r8  r;  )r   _CancelTuningJobParametersr>  r?  r0   r5  r@  r-   r   rA  rY   rB  r	   rC  rD  rE  rF  rG  rH  r8   r5   CancelTuningJobResponserJ  rK  rL  r<  r4   rM  rN  s               r"   cancelzTunings.canceli  s    6  O   9
4 l &))&11	 ))*:;;8
4 l &))&11	 ))*:;;##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  :
 m $ 9
 m 0?? ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! @  L$ &+%7 & & &L" 	%%l333r$   rt   rv   rY   rt   rv   rx   c                   t          j        ||||          }| j        j        st	          d          t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
          }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S a  Creates a tuning job and returns the TuningJob object.

    Args:
      base_model: The name of the model to tune.
      training_dataset: The training dataset to use.
      config: The configuration to use for the tuning job.

    Returns:
      A TuningJob object.
    rt   rv   rx   rY   rZ  Nr+   r   r   r4  rY   ra  r   r   r6  r7  r8  r;  )r   !_CreateTuningJobParametersPrivater>  r?  rV   r}   r5  r@  r   rA  rY   rB  r	   rC  rD  rE  rF  rG  rH  r   rI  rJ  rK  rL  r<  r4   rM  rO  rt   rv   rx   rY   rP  rQ  rR  rS  rT  rB  r9  rU  rV  s                 r"   _tunezTunings._tune  st   & =')	  O $ >  
 A
4 l &))&11	 &&'788##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  ,
 m ?11 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 2  L$ &+%7 & & &L" 	%%l333r$   c                   t          j        ||||          }| j        j        rt	          d          t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
          }|j        si nt#          j        |j                  }| j        j        st'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S a  Creates a tuning job and returns the TuningJob object.

    Args:
      base_model: The name of the model to tune.
      training_dataset: The training dataset to use.
      config: The configuration to use for the tuning job.

    Returns:
      A TuningJob operation.
    rh  z=This method is only supported in the Gemini Developer client.Nr+   tunedModelsr   r4  rY   ra  r   r   r6  r7  r8  r;  )r   ri  r>  r?  rV   rz   r5  r@  r   rA  rY   rB  r	   rC  rD  rE  rF  rG  rH  r&  TuningOperationrJ  rK  rL  r<  r4   rM  rj  s                 r"   _tune_mldevzTunings._tune_mldev#  ss   & =')	  O   
I   @
4 l &))&11	 ''(899##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM$ 1
 m (77 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 8  L$ &+%7 & & &L" 	%%l333r$   c                    |                      ||          }|j        rC| j        j        r7| j        j        +t
                              |j        | j        j                   |S Nr3  )r  projectrW  r  r>  r?  rs  _IpythonUtilsdisplay_experiment_buttonrO  r*   rY   jobs       r"   r5  zTunings.get  sq     ))f)
-
-C% $0--^"* .    Jr$   SThe SDK's tuning implementation is experimental, and may change in future versions.c                   | j         j        r|                    d          rEd }|rt          |dd           }t	          j        ||          }|                     |||          }nd }|t          |dd           t          |d          }t          |t                    rt	          j	        di |}|j
        r|j        st          d          t          t          |j
                            D ]T}	t          |j
        |	         t                    r2t          j                            |j
        |	                   |j
        |	<   Ut          |t                    r||d<   n||_        |}|                     |||          }|t          |dd           ||_        n|                     |||          }
|
j        d|
j        v r|
j        d         }n6|
j        t          d	          |
j                            d
          d         }t	          j        |t          j        j                  }|j        r,| j         j        r t2                              |j                   |S Nz	projects/rE   )tuned_model_namecheckpoint_id)rv   rx   rY   rM   zEEvaluation config must have at least one metric and an output config.)rt   rx   rY   r	  zOperation name is required.z/operations/r   )r*   r   )tuning_job_resourcer   r>  r?  
startswithrK  r   PreTunedModelrk  
isinstancedictEvaluationConfigr   r   rV   rangelenMetricmodel_validaterM   rp  r$  r*   	partitionrI  JobStateJOB_STATE_QUEUEDru  display_model_tuning_button)rO  rt   rx   rY   r}  rv   
tuning_jobvalidated_evaluation_configrM   i	operationr|  s               r"   tunezTunings.tune  s      A			{	+	+ 0E 	Q!&*I4PP--'}
 
 
 ZZ+-   
 


 IM# 3T::F%f.ABB
)400 L % 6 K K9J K K#+&4    .67788  a+3A6== -2\-H-H#+A.. .'* %% 9*;F&'''8F$(9
%ZZ!-   
 

  3T::F)D*
&""+ #  i
 
		'LI<N,N,N$-l;>!899
9$>33NCCAF?/  j  4+4 //(o 0    r$   c                \    | j         }t          d||                      |          |          S )a  Lists `TuningJob` objects.

    Args:
      config: The configuration for the list request.

    Returns:
      A Pager object that contains one page of tuning jobs. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python
        for tuning_job in client.tunings.list():
            print(tuning_job.name)
    r   r0  )r^  r   rO  rY   list_requests      r"   listzTunings.list  s7    & :L

&
!!	  r$   )__name__
__module____qualname__strr   r   GetTuningJobConfigOrDictrI  rW  ListTuningJobsConfigOrDictr\  r^  CancelTuningJobConfigOrDictrc  rd  PreTunedModelOrDictTuningDatasetOrDictCreateTuningJobConfigOrDictrk  ro  rp  r5  r	   experimental_warningr  r   r  r   r$   r"   r/  r/    s         :>	\ \ \ \ u56	\
 \ \ \ \~ EIF F F @AF#F F F FX =A	[ [ [ [ u89	[
 $[ [ [ [@ #'=A<@[ [ [ 3-[   9:	[
 1[ u89[ [ [ [ [@ #'=A<@Z Z Z 3-Z   9:	Z
 1Z u89Z Z Z Z Z@ :>	    u56	
    $  7+  =AM M M M 1	M
 u89M M M M	 M` EI   @AU_     r$   r/  c                      e Zd Zdddedeej                 dej        fdZdddeej	                 dej
        fdZdddedeej                 dej        fdZdddd	d
ee         deej                 dej        deej                 dej        f
dZdddd	d
ee         deej                 dej        deej                 dej        f
dZdddedeej                 dej        fdZ ej        d          ddd
edej        deej                 dej        fd            Zdddeej	                 deej                 fdZdS )AsyncTuningsNr0  r*   rY   r   c                  K   t          j        ||          }| j        j        rAt	          |d|          }|                    d          }|rd                    |          }nCd}n@t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d{V }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d|          }
| j        j        st)          |
d|          }
t           j                            |
t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |	j                  |_        | j                            |           |S r2  )r   r=  r>  r?  r   r5  r@  r   r   rA  rY   rB  r	   rC  rD  async_requestrF  rG  rH  r   r  rI  rJ  rK  rL  r<  r4   rM  rN  s               r"   rW  zAsyncTunings._get  s      3  O   6
4 l &))&11	 ""#3445
4 l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM  ,
 m $ +
 m ?11 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 2  L$ &+%7 & & &L" 	%%l333r$   c                   K   t          j        |          }| j        j        st	          d          t          |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d {V }|j        si nt#          j        |j                  }	| j        j        rt'          |	d |          }	t           j                            |	t-          |dd           rDdt-          |j
        d	d           t-          |j
        d
d           t-          |j
        dd           dini           }
t          j        |j                  |
_        | j                            |
           |
S rY  )r   r[  r>  r?  rV   r   r5  r@  r   rA  rY   rB  r	   rC  rD  r  rF  rG  rH  r   r\  rJ  rK  rL  r<  r4   rM  r]  s              r"   r^  zAsyncTunings._listb  s      5  O
 $ >  
 9
4 l &))&11	 &&'788##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM  9
 m />> ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ?  L$ &+%7 & & &L" 	%%l333r$   c                  K   t          j        ||          }| j        j        rAt	          |d|          }|                    d          }|rd                    |          }nCd}n@t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d{V }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d|          }
| j        j        st)          |
d|          }
t           j                            |
t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |	j                  |_        | j                            |           |S )zaCancels a tuning job asynchronously.

    Args:
      name (str): A TuningJob resource name.
    r3  Nr+   r`  r   r4  rY   ra  r   r   r6  r7  r8  r;  )r   rb  r>  r?  r0   r5  r@  r-   r   rA  rY   rB  r	   rC  rD  r  rF  rG  rH  r8   r5   rc  rJ  rK  rL  r<  r4   rM  rN  s               r"   rd  zAsyncTunings.cancel  s      6  O   9
4 l &))&11	 ))*:;;8
4 l &))&11	 ))*:;;##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  :
 m $ 9
 m 0?? ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! @  L$ &+%7 & & &L" 	%%l333r$   re  rt   rv   rx   c                &  K   t          j        ||||          }| j        j        st	          d          t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
           d{V }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S rg  )r   ri  r>  r?  rV   r}   r5  r@  r   rA  rY   rB  r	   rC  rD  r  rF  rG  rH  r   rI  rJ  rK  rL  r<  r4   rM  rj  s                 r"   rk  zAsyncTunings._tune		  s     & =')	  O $ >  
 A
4 l &))&11	 &&'788##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  ,
 m ?11 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 2  L$ &+%7 & & &L" 	%%l333r$   c                &  K   t          j        ||||          }| j        j        rt	          d          t          |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
           d{V }|j        si nt#          j        |j                  }| j        j        st'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S rm  )r   ri  r>  r?  rV   rz   r5  r@  r   rA  rY   rB  r	   rC  rD  r  rF  rG  rH  r&  ro  rJ  rK  rL  r<  r4   rM  rj  s                 r"   rp  zAsyncTunings._tune_mldevf	  s     & =')	  O   
I   @
4 l &))&11	 ''(899##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM$ 1
 m (77 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 8  L$ &+%7 & & &L" 	%%l333r$   c                   K   |                      ||           d {V }|j        rC| j        j        r7| j        j        +t
                              |j        | j        j                   |S rr  rt  rw  s       r"   r5  zAsyncTunings.get	  s       		tF	33
3
3
3
3
3
3C% $0--^"* .    Jr$   ry  c                  K   | j         j        r}|                    d          rKd }|rt          |dd           }t	          j        ||          }|                     |||           d {V }n|t          |dd           t          |d          }t          |t                    rt	          j	        di |}|j
        r|j        st          d          t          t          |j
                            D ]T}t          |j
        |         t                    r2t          j                            |j
        |                   |j
        |<   Ut          |t                    r||d<   n||_        |                     |||           d {V }n|                     |||           d {V }	|	j        d|	j        v r|	j        d         }
n6|	j        t          d	          |	j                            d
          d         }
t	          j        |
t          j        j                  }|j        r,| j         j        r t2                              |j                   |S r{  r  )rO  rt   rx   rY   r}  rv   r  rM   r  r  r|  s              r"   r  zAsyncTunings.tune	  s        ;			{	+	+ *
 	Q!&*I4PP--'}
 
 
  ::+- & 
 
 
 
 
 
 
 


  3T::F%f.ABB
)400 L % 6 K K9J K K#+&4    .67788  a+3A6== -2\-H-H#+A.. .'* %% 9*;F&'''8F$::!- & 
 
 
 
 
 
 
 


 ((+ )        i
 
		'LI<N,N,N$-l;>!899
9$>33NCCAF?/  j  4+4 //(o 0    r$   c                l   K   | j         }t          d||                      |           d{V |          S )a  Lists `TuningJob` objects asynchronously.

    Args:
      config: The configuration for the list request.

    Returns:
      A Pager object that contains one page of tuning jobs. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python
        async for tuning_job in await client.aio.tunings.list():
            print(tuning_job.name)
    r   r0  N)r^  r   r  s      r"   r  zAsyncTunings.list!
  sM      & :Ljjj''''''''	  r$   )r  r  r  r  r   r   r  rI  rW  r  r\  r^  r  rc  rd  r  r  r  rk  ro  rp  r5  r	   r  r  r   r  r   r$   r"   r  r     s         :>	^ ^ ^ ^ u56	^
 ^ ^ ^ ^B EIH H H @AH#H H H H\ =A	[ [ [ [ u89	[
 $[ [ [ [@ #'=A<@[ [ [ 3-[   9:	[
 1[ u89[ [ [ [ [@ #'=A<@Z Z Z 3-Z   9:	Z
 1Z u89Z Z Z Z Z@ :>	    u56	
    $  7+  =AG G G G 1	G
 u89G G G G	 GT EI   @A%/"     r$   r  c            
       N   e Zd ZU dZ e            Zee         ed<   ede	ee
f         fd            Zedefd            Zedefd            Zededee         defd	            Ze	 ddededee         ddfd            Zedededdfd            Zededdfd            ZdS )ru  z6Temporary class to hold the IPython related functions.displayed_experimentsr   c                  T    dd l } d| j        v rddlm}  |            j        j        S dS )Nr   IPython)get_ipython )sysmodulesr  r  	__class__r  )r  r  s     r"   _get_ipython_shell_namez%_IpythonUtils._get_ipython_shell_nameB
  sA    JJJCK%%%%%%[]]$--2r$   c                  N    t          t                                                    S )N)boolru  r  r   r$   r"   is_ipython_availablez"_IpythonUtils.is_ipython_availableL
  s    5577888r$   c                      dS )z8Returns the HTML style markup to support custom buttons.a  
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <style>
      .view-vertex-resource,
      .view-vertex-resource:hover,
      .view-vertex-resource:visited {
        position: relative;
        display: inline-flex;
        flex-direction: row;
        height: 32px;
        padding: 0 12px;
          margin: 4px 18px;
        gap: 4px;
        border-radius: 4px;

        align-items: center;
        justify-content: center;
        background-color: rgb(255, 255, 255);
        color: rgb(51, 103, 214);

        font-family: Roboto,"Helvetica Neue",sans-serif;
        font-size: 13px;
        font-weight: 500;
        text-transform: uppercase;
        text-decoration: none !important;

        transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1) 0s;
        box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12);
      }
      .view-vertex-resource:active {
        box-shadow: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);
      }
      .view-vertex-resource:active .view-vertex-ripple::before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        border-radius: 4px;
        pointer-events: none;

        content: '';
        background-color: rgb(51, 103, 214);
        opacity: 0.12;
      }
      .view-vertex-icon {
        font-size: 18px;
      }
    </style>
  r   r   r$   r"   _get_stylesz_IpythonUtils._get_stylesP
  s    1 1r$   markerresource_partsc                     t          t          |                    D ]1}||         | k    r#|dz   t          |          k     r||dz            c S 2dS )z,Returns the part after the marker text part.r   r  )r  r  )r  r  r  s      r"   _parse_resource_namez"_IpythonUtils._parse_resource_name
  sd     3~&&'' % %		f	$	$Q^1D1D)D)Da!e$$$$2r$   open_in_newtexturliconNc                 Z   d}|                     |          st          d| d          ddl}dt          |                                           }dt
                                           d| d	| d
| d|  d}|d| d| d| dz  }ddlm} ddlm	}  | ||                     dS )a@  Creates and displays the link to open the Gemini Enterprise Agent Platform resource.

    Args:
      text: The text displayed on the clickable button.
      url: The url that the button will lead to. Only cloud console URIs are
        allowed.
      icon: The icon name on the button (from material-icons library)
    z https://console.cloud.google.comzOnly urls starting with z are allowed.r   Nzview-vertex-resource-z	
        z-
        <a class="view-vertex-resource" id="z" href="#view-z;">
          <span class="material-icons view-vertex-icon">z</span>
          <span>z</span>
        </a>
        z]
        <script>
          (function () {
            const link = document.getElementById('z');
            link.addEventListener('click', (e) => {
              if (window.google?.colab?.openUrl) {
                window.google.colab.openUrl('z8');
              } else {
                window.open('z', '_blank');
              }
              e.stopPropagation();
              e.preventDefault();
            });
          })();
        </script>
    )display)HTML)
r  rV   uuidr  uuid4ru  r  IPython.displayr  r  )	r  r  r  CLOUD_UI_URLr  	button_idhtmlr  r  s	            r"   _display_linkz_IpythonUtils._display_link
  sB    6L>>,'' OM,MMMNNNKKK;DJJLL(9(9;;I		"	"	$	$ -6 FO  :>  	  D 	  4=  /2  "   D" ('''''$$$$$$GDDJJr$   r  rs  c                 :   t                                           r| t           j        v rdS |                     d          }|d         }|d         }d| d| dz   d| z   }t                               d|d	           t           j                            |            dS )
a\  Function to generate a link bound to the Gemini Enterprise Agent Platform experiment.

    Args:
      experiment: The Gemini Enterprise Agent Platform experiment name. Example
        format:
          projects/{project_id}/locations/{location}/metadataStores/default/contexts/{experiment_name}
      project: The project (alphanumeric) name.
    N/   zAhttps://console.cloud.google.com/vertex-ai/experiments/locations/z/experiments/zruns?project=zView Experimentscience)ru  r  r  splitr  add)r  rs  r  locationexperiment_nameuris         r"   rv  z'_IpythonUtils.display_experiment_button
  s     ..00<<<f  %%c**Na H$R(O 	L
6
6O
6
6
6	7
#'
#
#	$ 
  13	BBB '++J77777r$   r~  c                     t                                           sdS |                     d          }|d         }|d         }|d         }dd| d| z   d	| z   }t                               d
|d           dS )a"  Function to generate a link bound to the Gemini Enterprise Agent Platform model tuning job.

    Args:
      tuning_job_resource: The Gemini Enterprise Agent Platform tuning job name.
        Example format:
        projects/{project_id}/locations/{location}/tuningJobs/{tuning_job_id}
    Nr  r   r  r  z?https://console.cloud.google.com/vertex-ai/generative/language/z
locations/z/tuning/tuningJob/z	?project=zView Tuning Jobr  )ru  r  r  r  )r~  r  rs  r  tuning_job_idr  s         r"   r  z)_IpythonUtils.display_model_tuning_button
  s     --// f(..s33NQGa H"2&M 	J
Bx
B
B=
B
B	C
g

	  
  13?????r$   )r  )r  r  r  __doc__setr  r  __annotations__staticmethodr   r   r  r  r  r  r  r  r   r  rv  r  r   r$   r"   ru  ru  =
  s        >>$'CEES)))5c?    < 9 9 9 9 <9 3s 3 3 3 <3j 3 S	 c    < 1>1 111!)#11 1 1 <1f 8C 8# 8$ 8 8 8 <8< @s @t @ @ @ <@ @ @r$   ru  )NN)=rG  loggingtypingr   r   r   urllib.parser   r  r   r	   r
   r   r   r   r   r   r   pagersr   r   	getLoggerloggerr  r  objectr#   r'   r-   r0   r5   r8   rW   rq   rz   r}   r   rn   r   r&   r   r   r   r   r   r   r   r   r   r   ry   r|   r  r   r&  rm   r   
BaseModuler/  r  ru  r   r$   r"   <module>r     s  $   ' ' ' ' ' ' ' ' ' ' " " " " " "                               . . . . . . . . . . . . % % % % % % % %		1	2	2
 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   : /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   : /3;?	 	tCH~v-.	DcN+	 %S#X 678	 
#s(^		 	 	 	 /3;?	 	tCH~v-.	DcN+	 %S#X 678	 
#s(^		 	 	 	 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	     /3;? tCH~v-.DcN+ %S#X 678 
#s(^	     /3;?j jtCH~v-.jDcN+j %S#X 678j 
#s(^	j j j j^ /3;?] ]tCH~v-.]DcN+] %S#X 678] 
#s(^	] ] ] ]D	 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   6 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   6 /3;?   tCH~v-. DcN+  %S#X 678  
#s(^	       J /3;?   tCH~v-. DcN+  %S#X 678  
#s(^	       J /3;?j jtCH~v-.jDcN+j %S#X 678j 
#s(^	j j j j^ /3;?v vtCH~v-.vDcN+v %S#X 678v 
#s(^	v v v vv /3;?	 	tCH~v-.	DcN+	 %S#X 678	 
#s(^		 	 	 	 /3;?	 	tCH~v-.	DcN+	 %S#X 678	 
#s(^		 	 	 	 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   6 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	     /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   : /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   B /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   . /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   D /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   " /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;?? ?tCH~v-.?DcN+? %S#X 678? 
#s(^	? ? ? ?H /3;?8 8tCH~v-.8DcN+8 %S#X 6788 
#s(^	8 8 8 8z /3;?Z ZtCH~v-.ZDcN+Z %S#X 678Z 
#s(^	Z Z Z Z~ /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   8 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   6| | | | |k$ | | |~z z z z z;) z z zzz@ z@ z@ z@ z@ z@ z@ z@ z@ z@r$   