
    ci#                     d    d 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
  G d d	      Zy
)z;Example metric prompt templates for model-based evaluation.    )List)_ipython_utils)	constants)_default_templates)pairwise_metric)pointwise_metricc                      e Zd ZdZi ej
                  j                  ej                  ej
                  j                  ej                  ej
                  j                  ej                  ej
                  j                  ej                  ej
                  j                  ej                   ej
                  j"                  ej$                  ej
                  j&                  ej(                  ej
                  j*                  ej,                  ej
                  j.                  ej0                  ej
                  j2                  ej4                  ej
                  j6                  ej8                  ej
                  j:                  ej<                  ej
                  j>                  ej@                  ej
                  jB                  ejD                  ej
                  jF                  ejH                  ej
                  jJ                  ejL                  ej
                  jN                  ejP                  ej
                  jR                  ejT                  ej
                  jV                  ejX                  ej
                  jZ                  ej\                  ej
                  j^                  ej`                  ej
                  jb                  ejd                  iZ3e4de5de5fd       Z6e4de7e5   fd       Z8 G d d      Z9 G d d	      Z:y
)MetricPromptTemplateExamplesz?Examples of metric prompt templates for model-based evaluation.metric_namereturnc                      | j                   |   S )z6Returns the prompt template for the given metric name.)_PROMPT_TEMPLATE_MAP)clsr   s     b/tmp/pip-target-z3e9_cxr/lib/python/vertexai/evaluation/metrics/metric_prompt_template_examples.pyget_prompt_templatez0MetricPromptTemplateExamples.get_prompt_template^   s     ''44    c                 p    t        j                          t        | j                  j	                               S )z.Returns a list of all metric prompt templates.)r   &display_browse_prebuilt_metrics_buttonlistr   keys)r   s    r   list_example_metric_namesz6MetricPromptTemplateExamples.list_example_metric_namesc   s*     	==?C,,11344r   c                   \   e Zd ZdZ ej
                  ej                  j                  e	j                        Z ej
                  ej                  j                  e	j                        Z ej
                  ej                  j                  e	j                        Z ej
                  ej                  j                  e	j                         Z ej
                  ej                  j"                  e	j$                        Z ej
                  ej                  j&                  e	j(                        Z ej
                  ej                  j*                  e	j,                        Z ej
                  ej                  j.                  e	j0                        Z ej
                  ej                  j2                  e	j4                        Z ej
                  ej                  j6                  e	j8                        Z ej
                  ej                  j:                  e	j<                        Zy)&MetricPromptTemplateExamples.Pointwisez"Example PointwiseMetric instances.metricmetric_prompt_templateN)__name__
__module____qualname____doc__r   PointwiseMetricr   MetricFLUENCYr   FLUENCY_PROMPT_TEMPLATE	COHERENCECOHERENCE_PROMPT_TEMPLATESAFETYSAFETY_PROMPT_TEMPLATEGROUNDEDNESSGROUNDEDNESS_PROMPT_TEMPLATEINSTRUCTION_FOLLOWING%INSTRUCTION_FOLLOWING_PROMPT_TEMPLATE	VERBOSITYVERBOSITY_PROMPT_TEMPLATETEXT_QUALITYTEXT_QUALITY_PROMPT_TEMPLATESUMMARIZATION_QUALITY%SUMMARIZATION_QUALITY_PROMPT_TEMPLATEQUESTION_ANSWERING_QUALITY*QUESTION_ANSWERING_QUALITY_PROMPT_TEMPLATEMULTI_TURN_CHAT_QUALITY'MULTI_TURN_CHAT_QUALITY_PROMPT_TEMPLATEMULTI_TURN_SAFETY!MULTI_TURN_SAFETY_PROMPT_TEMPLATE r   r   	Pointwiser   i   s   02"22##++#5#M#M
 5$44##--#5#O#O
	 2!11##**#5#L#L
 8'77##00#5#R#R
 !A 0 @ @##99#5#[#[!
 5$44##--#5#O#O
	 8'77##00#5#R#R
 !A 0 @ @##99#5#[#[!
 &F%5%E%E##>>#5#`#`&
" #C"2"B"B##;;#5#]#]#
 =,<<##55#5#W#W
r   r:   c                   \   e Zd ZdZ ej
                  ej                  j                  e	j                        Z ej
                  ej                  j                  e	j                        Z ej
                  ej                  j                  e	j                         Z ej
                  ej                  j$                  e	j&                        Z ej
                  ej                  j*                  e	j,                        Z ej
                  ej                  j0                  e	j2                        Z ej
                  ej                  j6                  e	j8                        Z ej
                  ej                  j<                  e	j>                        Z  ej
                  ej                  jB                  e	jD                        Z# ej
                  ej                  jH                  e	jJ                        Z& ej
                  ej                  jN                  e	jP                        Z)y)%MetricPromptTemplateExamples.Pairwisez!Example PairwiseMetric instances.r   N)*r   r   r   r    r   PairwiseMetricr   r"   PAIRWISE_FLUENCYr    PAIRWISE_FLUENCY_PROMPT_TEMPLATEr#   PAIRWISE_COHERENCE"PAIRWISE_COHERENCE_PROMPT_TEMPLATEr%   PAIRWISE_SAFETYPAIRWISE_SAFETY_PROMPT_TEMPLATEr'   PAIRWISE_GROUNDEDNESS%PAIRWISE_GROUNDEDNESS_PROMPT_TEMPLATEr)   PAIRWISE_INSTRUCTION_FOLLOWING.PAIRWISE_INSTRUCTION_FOLLOWING_PROMPT_TEMPLATEr+   PAIRWISE_VERBOSITY"PAIRWISE_VERBOSITY_PROMPT_TEMPLATEr-   PAIRWISE_TEXT_QUALITY%PAIRWISE_TEXT_QUALITY_PROMPT_TEMPLATEr/   PAIRWISE_SUMMARIZATION_QUALITY.PAIRWISE_SUMMARIZATION_QUALITY_PROMPT_TEMPLATEr1   #PAIRWISE_QUESTION_ANSWERING_QUALITY3PAIRWISE_QUESTION_ANSWERING_QUALITY_PROMPT_TEMPLATEr3    PAIRWISE_MULTI_TURN_CHAT_QUALITY0PAIRWISE_MULTI_TURN_CHAT_QUALITY_PROMPT_TEMPLATEr5   PAIRWISE_MULTI_TURN_SAFETY*PAIRWISE_MULTI_TURN_SAFETY_PROMPT_TEMPLATEr7   r9   r   r   Pairwiser<      s   /0/00##44#5#V#V
 3O22##66#5#X#X
	 0//##33#5#U#U
 655##99#5#[#[
 !? > >##BB#5#d#d!
 3O22##66#5#X#X
	 655##99#5#[#[
 !? > >##BB#5#d#d!
 &D_%C%C##GG#5#i#i&
" #A/"@"@##DD#5#f#f#
 ;O::##>>#5#`#`
r   rT   N);r   r   r   r    r   r"   r%   r   r&   r#   r$   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r@   rA   r>   r?   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   r   classmethodstrr   r   r   r:   rT   r9   r   r   r
   r
      s   I;""$6$P$P;  "4"L"L; 	!3!J!J; 	%%;;; 	..DD; 	""$6$P$P; 	%%;;; 	..DD;" 	33II%;( 	00FF+;. 	**@@1;4 	++AA7;: 	))??=;@ 	((>>C;F 	..DDI;L 	77MMO;R 	++AAU;X 	..DD77MM<<RR99OO33IIs;z 5c 5c 5 5 5$s) 5 5
.
 .
`.
 .
r   r
   N)r    typingr   google.cloud.aiplatform.utilsr   vertexai.evaluationr   vertexai.evaluation.metricsr   r   r   r
   r9   r   r   <module>r[      s-   " B  8 ) 8 8i
 i
r   