
    Lh?              	       b   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	 d-deeeef   ef   deeeef      deeef   fdZ	 d-deeeef   ef   deeeef      deeef   fdZ	 d-deeeef   ef   deeeef      deeef   fdZ	 d-deeeef   ef   deeeef      deeef   fdZ	 d-deeeef   ef   deeeef      deeef   fdZ	 d-deeeef   ef   deeeef      deeef   fdZ	 d-deeeef   ef   deeeef      deeef   fdZ 	 d-deeeef   ef   deeeef      deeef   fdZ!	 d-deeeef   ef   deeeef      deeef   fdZ"	 d-deeeef   ef   deeeef      deeef   fdZ#	 d-deeeef   ef   deeeef      deeef   fdZ$	 d-deeeef   ef   deeeef      deeef   fdZ%	 d-deeeef   ef   deeeef      deeef   fdZ&	 d-deeeef   ef   deeeef      deeef   fdZ'	 d-deeeef   ef   deeeef      deeef   fdZ(	 d-deeeef   ef   deeeef      deeef   fdZ)	 d-deeeef   ef   deeeef      deeef   fd Z*	 d-deeeef   ef   deeeef      deeef   fd!Z+	 d-deeeef   ef   deeeef      deeef   fd"Z,	 d-deeeef   ef   deeeef      deeef   fd#Z-	 d-deeeef   ef   deeeef      deeef   fd$Z.	 d-deeeef   ef   deeeef      deeef   fd%Z/	 d-deeeef   ef   deeeef      deeef   fd&Z0 G d' d(e	jb                        Z2 G d) d*e	jb                        Z3 G d+ d,      Z4y).    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returnc                 X    i }t        | dg      t        |ddgt        | dg             |S Nname_urlgetvsetvr   r   	to_objects      G/var/www/html/venv/lib/python3.12/site-packages/google/genai/tunings.py#_CancelTuningJobParameters_to_mldevr   #   8     !)	+x ,VV$d;&AB	    c                 X    i }t        | dg      t        |ddgt        | dg             |S r   r   r   s      r   $_CancelTuningJobParameters_to_vertexr!   .   r   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        |g dt        | dg             t        | dg      t        |g dt        | dg             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.
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.r   
ValueErrorr   r   s      r   _CreateTuningJobConfig_to_mldevr8   9   s    !)	+,-.:
F  
+234@	[567 
+'3
L
MM	+'37[=/* 
+234@C[567 
+567C
O  
+789E
	 
 
+'(4
M
NN	+~&26[<.) 
+()59[?+, 
++,-9
E  
+z".
G
HH	r   c           
      H   i }t        | dg      #t        |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        |g d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        |g dt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      $t        |ddgt	        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nr#   supervisedTuningSpecr$   tunedModelDisplayNamer&   r'   )r:   hyperParametersr*   r+   )r:   r<   r,   r-   exportLastCheckpointOnlyr/   )r:   r<   adapterSizer0   z3batch_size parameter is not supported in Vertex AI.r2   z6learning_rate parameter is not supported in Vertex AI.r4   evaluationConfigr5   )r   r   "_TuningValidationDataset_to_vertexr7   _EvaluationConfig_to_vertexr   s      r    _CreateTuningJobConfig_to_vertexrB      s    !)	+,-.:	 *345y	
 
+234@	 ![567 
+'3kM?)KL	+'3A[=/* 
+234@M[567 
+567C	!;<[89: 
+'(4B[>*+ 
+~&2
J
KK	+()5
M
NN	++,-9	!34#234i	
 
+z".
Dxj$AB	r   c           
      L   i }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t        t        | dg      |             t        | dg      t        t        | dg      |       |S )	N
base_model	baseModelpre_tuned_modelpreTunedModeltraining_datasetr(   trainingDataconfig)r   r   _TuningDataset_to_mldevr8   r   s      r   *_CreateTuningJobParametersPrivate_to_mldevrL      s     !)	+~&2[M4l^#DE	+)*+7_%tK:K9L'MN	+*+,8	~&123Y	
 
+z".#Dxj$A9M	r   c           
      L   i }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t        t        | dg      |             t        | dg      t        t        | dg      |       |S )	NrD   rE   rF   rG   rH   r:   trainingDatasetUrirJ   )r   r   _TuningDataset_to_vertexrB   r   s      r   +_CreateTuningJobParametersPrivate_to_vertexrP      s     !)	+~&2[M4l^#DE	+)*+7_%tK:K9L'MN	+*+,8	!56 123Y	
 
+z".$T+z%BIN	r   c           
         i }t        | dg      ,t        |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             |S )NmetricsoutputConfigoutput_configautoraterConfigautorater_configr   r   t	t_metricsr   s      r   _EvaluationConfig_from_vertexrZ     s     !)	+	{#/YKT+	{-K!LM	+'(4_%tK.9I'JK	+)*+7&'k<M;N)O 
r   c           
         i }t        | dg      ,t        |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             |S )NrR   rT   rS   rV   rU   rW   r   s      r   rA   rA     s     !)	+	{#/YKT+	{-K!LM	+()5^$d;8I&JK	+*+,8%&[;M:N(O 
r   c                 X    i }t        | dg      t        |ddgt        | dg             |S r   r   r   s      r    _GetTuningJobParameters_to_mldevr]   '  r   r   c                 X    i }t        | dg      t        |ddgt        | dg             |S r   r   r   s      r   !_GetTuningJobParameters_to_vertexr_   2  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_mldevrh   =       !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	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 ra   r   r   s      r   _ListTuningJobsConfig_to_vertexrk   U  ri   r   c                 R    i }t        | dg      t        t        | dg      |       |S NrJ   )r   rh   r   s      r   "_ListTuningJobsParameters_to_mldevrn   m  s1     !)	+z"."4hZ#@)L	r   c                 R    i }t        | dg      t        t        | dg      |       |S rm   )r   rk   r   s      r   #_ListTuningJobsParameters_to_vertexrp   x  s1     !)	+z".#Dxj$A9M	r   c                 (   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )NsdkHttpResponsesdk_http_responsenextPageTokennext_page_tokentunedModelstuning_jobs)r   r   _TuningJob_from_mldevr   r   r   items       r   "_ListTuningJobsResponse_from_mldevr{     s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+'3	 [=/:	
 "$	2	
 
	
   3Bc                 (   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nrr   rs   rt   ru   
tuningJobsrw   )r   r   _TuningJob_from_vertexry   s       r   #_ListTuningJobsResponse_from_vertexr     s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+~&2	 [<.9	
 #43	
 
	
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     s[     !)	+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t        | dg      D cg c]  }| c}       |S c c}w )Ngcs_uriz1gcs_uri parameter is not supported in Gemini API.vertex_dataset_resourcezAvertex_dataset_resource parameter is not supported in Gemini API.examplesr6   ry   s       r   rK   rK     s     !)	+	{#/
H
II	+123?
K  
+
|$0	Z {ZL9:$: 
 	;s   	A*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      |S )Nr   r:   rN   r   r   z1examples parameter is not supported in Vertex AI.)r   r   r7   r   s      r   rO   rO     s     !)	+	{#/	!56[9+& 
+123?	!56[456 
+
|$0
H
II	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        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      #t        |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gt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d gt        | dg             |S )!Nrr   rs   r   state
createTimecreate_timer(   	startTime
start_timecompleteTimeend_time
updateTimeupdate_timer&   rE   rD   _selftuned_modelcustomBaseModelcustom_base_model
experimentr5   	outputUri
output_uripipelineJobpipeline_jobserviceAccountservice_accountr;   r$   veoTuningSpecveo_tuning_spec)r   r   rX   t_tuning_job_statusr   r   s      r   rx   rx     s"    !)	+)*+7'(${=N<O*P 
+x ,VHd;9:	+y!-			d;	:; 
+~&2]OT+~%FG	+k23?	[<56 
+n56B	[<89 
+~&2]OT+~%FG	+'3]OT+%GH	+}%1\ND{m$DE	+y!-	tK';YG 
+)*+7'(${=N<O*P 
+~&2\ND|n$EF	+z".XJ[8* =>	+}%1\ND{m$DE	+'3^$d;&HI	+()*6&'k<L;M)NO	+/01=	#$[234 
+()5&'kO;L)MN	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        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	        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 )-Nrr   rs   r   r   r   r   r   r   endTimer   r   r   errorr&   rE   rD   
tunedModelr   rG   rF   r:   supervised_tuning_spectuningDataStatstuning_data_statsencryptionSpecencryption_specpartnerModelTuningSpecpartner_model_tuning_specr?   r4   r   r   r   r5   r   r   r   r   r   r   r;   r$   r   r   )r   r   rX   r   rZ   r   s      r   r   r   K  sG    !)	+)*+7'(${=N<O*P 
+x ,VHd;9:	+y!-			d;	:; 
+~&2]OT+~%FG	+}%1\ND{m$DE	+	{#/ZL${YK"@A	+~&2]OT+~%FG	+y!-WItK';<	+'3]OT+%GH	+}%1\ND{m$DE	+~&2]OT+~%FG	+()5&'kO;L)MN	+./0<	!"[123 
+)*+7'(${=N<O*P 
+()*6&'k<L;M)NO	+012>	$%[345 
+*+,8	%123Y	
 
+)*+7'(${=N<O*P 
+~&2\ND|n$EF	+z".XJ[8* =>	+}%1\ND{m$DE	+'3^$d;&HI	+()*6&'k<L;M)NO	+/01=	#$[234 
+()5&'kO;L)MN	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 )Nrr   rs   r   metadatadoner   r   r   s      r   _TuningOperation_from_mldevr     s     !)	+)*+7'(${=N<O*P 
+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	r   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             |S )Nr   validationDatasetUrir   r:   rN   r   r   s      r   r@   r@     sl     !)	+	{#/+,d;.LM	+123?	!56[456 
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d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ej                     deej                     fdZdddedeej                     dej                  fdZ ej0                  d      ddd
edej                  deej                      dej                  fd       Zy)TuningsNrJ   r   rJ   r   c                T   t        j                  ||      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
|j/                         	      }t        j0                  |	j2                  
      |_        | j                  j7                  |       |S zzGets a TuningJob.

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

    Returns:
      A TuningJob object.
    r   rJ   r   z{name}rc   ?rJ   Ngetresponsekwargsheaders)r   _GetTuningJobParameters_api_clientvertexair_   r   
format_mapr]   r   poprJ   http_optionsr	   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsr   rx   	TuningJob_from_response
model_dumpHttpResponser   rs   _verify_responseselfr   rJ   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr   r   response_dictreturn_values               r   _getzTunings._get  s    33O   6Gl%))&1	""#345oFl%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  ,];m$$+M:m??11'A'A'C 2 L &+%7%7  &L" 	%%l3r   c                R   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }|j                   si nt#        j$                  |j                         }	| j                  j                  rt'        |	      }	| j                  j                  st)        |	      }	t         j*                  j-                  |	|j/                         
      }
t        j0                  |j2                        |
_        | j                  j7                  |
       |
S zLists `TuningJob` objects.

    Args:
      config: The configuration for the list request.

    Returns:
      A list of `TuningJob` objects.
    r   r   r~   rv   rc   r   rJ   Nr   r   r   )r   _ListTuningJobsParametersr   r   rp   r   r   rn   r   r   rJ   r   r	   r   r   r   r   r   r   r   r{   ListTuningJobsResponser   r   r   r   rs   r   r   rJ   r   r   r   r   r   r   r   r   r   s              r   _listzTunings._list.  s    55O   8Il%))&1	&&'787Hl%))&1	''(89##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  9-Hm$$8Gm//>>'A'A'C ? L &+%7%7  &L" 	%%l3r   c                   t        j                  ||      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	y)	zPCancels a tuning job.

    Args:
      name (str): TuningJob resource name.
    r   r   {name}:cancelrc   r   rJ   Npost)r   _CancelTuningJobParametersr   r   r!   r   r   r   r   r   rJ   r   r	   r   r   r   
r   r   rJ   r   r   r   r   r   r   r   s
             r   cancelzTunings.cancelq  s?    66O   9/Jl%))&1	))*:;8Il%))&1	))*:;##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLHr   rD   rF   rJ   rD   rF   rH   c                   t        j                  ||||      }| j                  j                  st	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S a  Creates a supervised fine-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.
    rD   rF   rH   rJ   z6This method is only supported in the Vertex AI client.r   r~   rc   r   rJ   Nr   r   r   )r   !_CreateTuningJobParametersPrivater   r   r7   rP   r   r   r   r   rJ   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   rs   r   r   rD   rF   rH   rJ   r   r   r   r   r   r   r   r   r   s                 r   _tunezTunings._tune  s   & ==')	O $$OPP@
l &))&1	&&'78##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  ,];m??11'A'A'C 2 L &+%7%7  &L" 	%%l3r   c                   t        j                  ||||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   si nt#        j$                  |j                         }| j                  j                  st'        |      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S a"  Creates a supervised fine-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.
    r   z=This method is only supported in the Gemini Developer client.r   rv   rc   r   rJ   Nr   r   r   )r   r   r   r   r7   rL   r   r   r   r   rJ   r   r	   r   r   r   r   r   r   r   TuningOperationr   r   r   r   rs   r   r   s                 r   _tune_mldevzTunings._tune_mldev  s   & ==')	O   
I  @Pl%))&1	''(89##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM$$1-@m((77'A'A'C 8 L &+%7%7  &L" 	%%l3r   c                R    t        d| j                  | j                  |      |      S Nrw   r   )r   r   r   rJ   s     r   listzTunings.list8  s,     



&
!	 r   c                   | j                  ||      }|j                  ra| j                  j                  rK| j                  j                  5t
        j                  |j                  | j                  j                         |S Nr   )r   projectr   r   r   r   r   _IpythonUtilsdisplay_experiment_buttonr   r   rJ   jobs       r   r   zTunings.getB  sn     ))f)
-C%%$$0--^^""** .  Jr   SThe SDK's tuning implementation is experimental, and may change in future versions.c                   | j                   j                  rx|j                  d      r>d }|rt        |dd       }t	        j
                  ||      }| j                  |||      }nd }|t        |dd       t        |d      }t        |t              rt	        j                  di |}|j                  r|j                  st        d      t        t        |j                              D ]Y  }	t        |j                  |	   t              s!t        j                  j!                  |j                  |	         |j                  |	<   [ t        |t              r||d<   n||_        |}| j                  |||      }|t        |dd       ||_        n| j%                  |||      }
|
j&                  d|
j&                  v r|
j&                  d   }n5|
j(                  t        d	      |
j(                  j+                  d
      d   }t	        j,                  |t        j.                  j0                        }|j(                  r6| j                   j                  r t2        j5                  |j(                         |S Nz	projects/r.   )tuned_model_namecheckpoint_id)rF   rH   rJ   r4   zEEvaluation config must have at least one metric and an output config.)rD   rH   rJ   r   zOperation name is required.z/operations/r   )r   r   )tuning_job_resource r   r   
startswithgetattrr   PreTunedModelr   
isinstancedictEvaluationConfigrR   rT   r7   rangelenMetricmodel_validater4   r   r   r   	partitionr   JobStateJOB_STATE_QUEUEDr   display_model_tuning_button)r   rD   rH   rJ   r  rF   
tuning_jobvalidated_evaluation_configr4   i	operationr  s               r   tunezTunings.tuneT  su      			{	+!&*I4P---'}
 ZZ+-   

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

  3T:F)D*
&""+ # i
 
			'LI<N<N,N$--l;>>!89
9$>>33NCAF??//j 4++44//(oo 0  r   )__name__
__module____qualname__strr   r   GetTuningJobConfigOrDictr   r   ListTuningJobsConfigOrDictr   r   CancelTuningJobConfigOrDictr   PreTunedModelOrDictTuningDatasetOrDictCreateTuningJobConfigOrDictr   r   r   r   r   r   r	   experimental_warningr  r  r   r   r   r     sV    :>	E E u556	E
 EP EIA @ @AA##AN =A	3 3 u889	3
 3p #'=A<@G 3-G   9 9:	G
 11G u889G GX #'=A<@G 3-G   9 9:	G
 11G u889G GT EI @ @AU__ :>	  u556	
 $  7+ =AM M 11	M
 u889M M	M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d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ej                     deej                     fdZdddedeej                     dej                  fdZ ej0                  d      ddd
edej                  deej                      dej                  fd       Zy)AsyncTuningsNr   r   rJ   r   c                p  K   t        j                  ||      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d{   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
|j/                         	      }t        j0                  |	j2                  
      |_        | j                  j7                  |       |S 7 wr   )r   r   r   r   r_   r   r   r]   r   r   rJ   r   r	   r   r   async_requestr   r   r   r   rx   r   r   r   r   r   rs   r   r   s               r   r   zAsyncTunings._get  s     33O   6Gl%))&1	""#345oFl%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  ,];m$$+M:m??11'A'A'C 2 L &+%7%7  &L" 	%%l3's   EH6H4C%H6c                n  K   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }|j                   si nt#        j$                  |j                         }	| j                  j                  rt'        |	      }	| j                  j                  st)        |	      }	t         j*                  j-                  |	|j/                         
      }
t        j0                  |j2                        |
_        | j                  j7                  |
       |
S 7 wr   )r   r   r   r   rp   r   r   rn   r   r   rJ   r   r	   r   r   r'  r   r   r   r   r{   r   r   r   r   r   rs   r   r   s              r   r   zAsyncTunings._list  s     55O   8Il%))&1	&&'787Hl%))&1	''(89##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  9-Hm$$8Gm//>>'A'A'C ? L &+%7%7  &L" 	%%l3's   EH5H3C%H5c                  K   t        j                  ||      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d{   }	y7 w)	zaCancels a tuning job asynchronously.

    Args:
      name (str): A TuningJob resource name.
    r   r   r   rc   r   rJ   Nr   )r   r   r   r   r!   r   r   r   r   r   rJ   r   r	   r   r   r'  r   s
             r   r   zAsyncTunings.cancel8  sM     66O   9/Jl%))&1	))*:;8Il%))&1	))*:;##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H s   EEEEr   rD   rF   rH   c                  K   t        j                  ||||      }| j                  j                  st	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 íwr   )r   r   r   r   r7   rP   r   r   r   r   rJ   r   r	   r   r   r'  r   r   r   r   r   r   r   r   r   rs   r   r   s                 r   r   zAsyncTunings._tunem  s    & ==')	O $$OPP@
l &))&1	&&'78##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  ,];m??11'A'A'C 2 L &+%7%7  &L" 	%%l3!   D'G/)G-*CG/c                  K   t        j                  ||||      }| j                  j                  rt	        d      t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  st'        |      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 íwr   )r   r   r   r   r7   rL   r   r   r   r   rJ   r   r	   r   r   r'  r   r   r   r   r   r   r   r   r   rs   r   r   s                 r   r   zAsyncTunings._tune_mldev  s    & ==')	O   
I  @Pl%))&1	''(89##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM$$1-@m((77'A'A'C 8 L &+%7%7  &L" 	%%l3!r+  c                n   K   t        d| j                  | j                  |       d {   |      S 7 	wr   )r   r   r   s     r   r   zAsyncTunings.list  s8      

jjj''	  	(s   '53
5c                "  K   | j                  ||       d {   }|j                  ra| j                  j                  rK| j                  j                  5t
        j                  |j                  | j                  j                         |S 7 swr   r   r   s       r   r   zAsyncTunings.get	  sz      		tF	3
3C%%$$0--^^""** .  J 4s   BBA4Br   c                  K   | j                   j                  rn|j                  d      rFd }|rt        |dd       }t	        j
                  ||      }| j                  |||       d {   }n|t        |dd       t        |d      }t        |t              rt	        j                  di |}|j                  r|j                  st        d      t        t        |j                              D ]Y  }t        |j                  |   t              s!t        j                  j!                  |j                  |         |j                  |<   [ t        |t              r||d<   n||_        | j                  |||       d {   }n| j%                  |||       d {   }	|	j&                  d|	j&                  v r|	j&                  d   }
n5|	j(                  t        d	      |	j(                  j+                  d
      d   }
t	        j,                  |
t        j.                  j0                        }|j(                  r6| j                   j                  r t2        j5                  |j(                         |S 7 7 7 ۭwr   r  )r   rD   rH   rJ   r  rF   r  r4   r  r  r  s              r   r  zAsyncTunings.tune  sn       			{	+!&*I4P---'}
  ::+- & 
 

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

 ((+ )  i
 
			'LI<N<N,N$--l;>>!89
9$>>33NCAF??//j 4++44//(oo 0  o
<
s?   A(I=*I6+B'I=A/I=I9I=I; CI=9I=;I=)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%    sV    :>	G G u556	G
 GT EIC @ @AC##CR =A	3 3 u889	3
 3p #'=A<@G 3-G   9 9:	G
 11G u889G GX #'=A<@G 3-G   9 9:	G
 11G u889G GT EI @ @A%//" :>	  u556	
 $  7+ =AG G 11	G
 u889G G	Gr   r%  c            
          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y)r   z6Temporary class to hold the IPython related functions.displayed_experimentsr   c                  j    dd l } d| j                  v r!ddlm}  |       j                  j
                  S y)Nr   IPython)get_ipython )sysmodulesr3  r4  	__class__r  )r6  r4  s     r   _get_ipython_shell_namez%_IpythonUtils._get_ipython_shell_namen  s+    CKK%]$$---r   c                  <    t        t        j                               S N)boolr   r9  r  r   r   is_ipython_availablez"_IpythonUtils.is_ipython_availablex  s    55788r   c                       y)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_styles|  s    1r   markerresource_partsc                 ~    t        t        |            D ]&  }||   | k(  s|dz   t        |      k  s||dz      c S  y)z,Returns the part after the marker text part.r   r5  )r  r  )r@  rA  r  s      r   _parse_resource_namez"_IpythonUtils._parse_resource_name  sN     3~&' %		f	$Q^1D)Da!e$$% r   texturliconNc                 "   d}|j                  |      st        d| d      ddl}dt        |j	                                }dt
        j                          d| d	| d
| d|  d}|d| d| d| dz  }ddlm} ddlm	}  | ||             y)a&  Creates and displays the link to open the Vertex 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  r7   uuidr  uuid4r   r?  IPython.displayrH  rI  )	rD  rE  rF  CLOUD_UI_URLrJ  	button_idhtmlrH  rI  s	            r   _display_linkz_IpythonUtils._display_link  s     6L>>,'1,}MNN'DJJL(9':;I			"	"	$% &--6K~i[ Q99= ? 		D 	 3 4=+ >. /2U 3!U # D" ($DJr   r   r   c                    t         j                         r| t         j                  v ry| j                  d      }|d   }|d   }d| d| dz   d| z   }t         j	                  d|d	       t         j                  j                  |        y)
a  Function to generate a link bound to the Vertex experiment.

    Args:
      experiment: The Vertex 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)r   r=  r1  splitrP  add)r   r   rA  locationexperiment_nameuris         r   r   z'_IpythonUtils.display_experiment_button  s     ..0<<<  %%c*Na H$R(O 	LJmO#4A
6	7'
#	$ 
  13	B ''++J7r   r  c                     t         j                         sy| j                  d      }|d   }|d   }|d   }dd| d| z   d	| z   }t         j                  d
|d       y)zFunction to generate a link bound to the Vertex model tuning job.

    Args:
      tuning_job_resource: The Vertex tuning job name. Example format:
        projects/{project_id}/locations/{location}/tuningJobs/{tuning_job_id}
    NrR  r   rS  rT  z?https://console.cloud.google.com/vertex-ai/generative/language/z
locations/z/tuning/tuningJob/z	?project=zView Tuning Jobr  )r   r=  rV  rP  )r  rA  r   rX  tuning_job_idrZ  s         r   r  z)_IpythonUtils.display_model_tuning_button  s     --/(..s3NQGa H"2&M 	Jxj 2=/
B	CgY
	  
  13?r   )open_in_new)r  r  r  __doc__setr1  r  __annotations__staticmethodr   r   r9  r<  r=  r?  r   rC  r   rP  r   r  r  r   r   r   r   i  s&   >$'ES)5c?   9 9 9 3s 3 3j 3 S	 c   1>111!)#11 1f 8C 8# 8$ 8 8: @s @t @ @r   r   r;  )5r   loggingtypingr   r   r   urllib.parser   r5  r   r	   r
   rX   r   r   r   r   r   pagersr   r   	getLoggerloggerr
  r  objectr   r!   r8   rB   rL   rP   rZ   rA   r]   r_   rh   rk   rn   rp   r{   r   r   rK   rO   rx   r   r   r@   
BaseModuler   r%  r   r  r   r   <module>rj     sI  $   ' ' "      . . % 
		1	2
 /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3GtCH~v-.GDcN+G 
#s(^GX /3GtCH~v-.GDcN+G 
#s(^GX /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^* /3tCH~v-.DcN+ 
#s(^* /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-.DcN+ 
#s(^6 /3StCH~v-.SDcN+S 
#s(^Sp /3ltCH~v-.lDcN+l 
#s(^lb /3tCH~v-.DcN+ 
#s(^6 /3tCH~v-.DcN+ 
#s(^$@k$$ @F~;)) ~Bx@ x@r   