Ë
    ´Œj¦4  ã                   óz  — d Z ddlmZ ddlmZ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mZ dd	lmZm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 m!Z! ddl"m#Z$ eeee   geeee%f   f   Z&eee   eee      geeee%f   f   Z' G d„ de«      Z( G d„ de(«      Z)ee&ee!f   Z*ee e+e(f   Z, G d„ de«      Z-y)z!Configuration for run evaluators.é    )ÚSequence)ÚAnyÚCallableÚOptionalÚUnion)Ú
Embeddings)ÚBaseLanguageModel)ÚBasePromptTemplate)ÚRunEvaluator)ÚEvaluationResultÚEvaluationResults)ÚExampleÚRun)Ú	BaseModelÚ
ConfigDictÚField)ÚCRITERIA_TYPE)ÚEmbeddingDistance)ÚEvaluatorTypeÚStringEvaluator)ÚStringDistancec                   ó2   — e Zd ZU dZeed<   deeef   fd„Z	y)Ú
EvalConfiga  Configuration for a given run evaluator.

    Parameters
    ----------
    evaluator_type : EvaluatorType
        The type of evaluator to use.

    Methods
    -------
    get_kwargs()
        Get the keyword arguments for the evaluator configuration.

    Úevaluator_typeÚreturnc                 ó8   — i }| D ]  \  }}|dk(  s|€Œ|||<   Œ |S )z·Get the keyword arguments for the load_evaluator call.

        Returns
        -------
        Dict[str, Any]
            The keyword arguments for the load_evaluator call.

        r   © )ÚselfÚkwargsÚfieldÚvals       úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/smith/evaluation/config.pyÚ
get_kwargszEvalConfig.get_kwargs2   s7   € ð ˆÛ‰JˆE�3ØÐ(Ò(¨C¨KØØˆF�5ŠMð ð ˆó    N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__ÚdictÚstrr   r#   r   r$   r"   r   r   !   s#   … ñð "Ó!ð˜D  c ™Nô r$   r   c                   óv   ‡ — e Zd ZU dZdZee   ed<   	 dZee   ed<   	 dZ	ee   ed<   	 de
eef   fˆ fd„Zˆ xZS )ÚSingleKeyEvalConfigzBConfiguration for a run evaluator that only requires a single key.NÚreference_keyÚprediction_keyÚ	input_keyr   c                 óV   •— t         ‰| �  «       }dD ]  }|j                  |d «       Œ |S )N)r.   r/   r0   )Úsuperr#   Úpop)r   r   ÚkeyÚ	__class__s      €r"   r#   zSingleKeyEvalConfig.get_kwargsQ   s.   ø€ Ü‘Ñ#Ó%ˆãCˆCØ�J‰J�s˜DÕ!ð Dàˆr$   )r%   r&   r'   r(   r.   r   r+   r)   r/   r0   r*   r   r#   Ú__classcell__©r5   s   @r"   r-   r-   C   s\   ø… ÙLà#'€M�8˜C‘=Ó'ð@à$(€N�H˜S‘MÓ(ðð  $€Iˆx˜‰}Ó#ðBð˜D  c ™N÷ ñ r$   r-   c                   ó   — e Zd ZU dZ ee¬«      Zeeee	f      e
d<   	 dZeee	      e
d<   	 dZeee      e
d<   	 dZee   e
d<   	 dZee   e
d<   	 dZee   e
d	<   	 dZee   e
d
<   	  ed¬«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de «      Z! G d„ d e«      Z" G d!„ d"e«      Z# G d#„ d$e«      Z$ G d%„ d&e$«      Z%y)'ÚRunEvalConfiga0  Configuration for a run evaluation.

    Parameters
    ----------
    evaluators : List[Union[EvaluatorType, EvalConfig, RunEvaluator, Callable]]
        Configurations for which evaluators to apply to the dataset run.
        Each can be the string of an :class:`EvaluatorType <langchain.evaluation.schema.EvaluatorType>`, such
        as EvaluatorType.QA, the evaluator type string ("qa"), or a configuration for a
        given evaluator (e.g., :class:`RunEvalConfig.QA <langchain.smith.evaluation.config.RunEvalConfig.QA>`).

    custom_evaluators : Optional[List[Union[RunEvaluator, StringEvaluator]]]
        Custom evaluators to apply to the dataset run.

    reference_key : Optional[str]
        The key in the dataset run to use as the reference string.
        If not provided, it will be inferred automatically.

    prediction_key : Optional[str]
        The key from the traced run's outputs dictionary to use to
        represent the prediction. If not provided, it will be inferred
        automatically.

    input_key : Optional[str]
        The key from the traced run's inputs dictionary to use to represent the
        input. If not provided, it will be inferred automatically.

    eval_llm : Optional[BaseLanguageModel]
        The language model to pass to any evaluators that use a language model.
    )Údefault_factoryÚ
evaluatorsNÚcustom_evaluatorsÚbatch_evaluatorsr.   r/   r0   Úeval_llmT©Úarbitrary_types_allowedc                   ó†   ‡ — e Zd ZU dZdZee   ed<   dZee	   ed<   e
j                  Ze
ed<   	 d	dee   deddfˆ fd„Zˆ xZS )
úRunEvalConfig.Criteriaa"  Configuration for a reference-free criteria evaluator.

        Parameters
        ----------
        criteria : Optional[CRITERIA_TYPE]
            The criteria to evaluate.
        llm : Optional[BaseLanguageModel]
            The language model to use for the evaluation chain.

        NÚcriteriaÚllmr   r   r   c                 ó(   •— t        ‰| �  dd|i|¤Ž y ©NrC   r   ©r2   Ú__init__©r   rC   r   r5   s      €r"   rH   zRunEvalConfig.Criteria.__init__³   ó   ø€ ô
 ‰GÑÑ9 hÐ9°&Ó9r$   ©N)r%   r&   r'   r(   rC   r   r   r)   rD   r	   r   ÚCRITERIAr   r   rH   r6   r7   s   @r"   ÚCriteriarB   £   si   ø… ñ		ð -1ˆ�(˜=Ñ)Ó0Ø+/ˆˆXÐ'Ñ(Ó/Ø(5×(>Ñ(>ˆ˜Ó>ð 15ñ	:à˜}Ñ-ð	:ð ð	:ð ÷		:ñ 	:r$   rM   c                   ó†   ‡ — e Zd ZU dZdZee   ed<   dZee	   ed<   e
j                  Ze
ed<   	 d	dee   deddfˆ fd„Zˆ xZS )
úRunEvalConfig.LabeledCriteriaa,  Configuration for a labeled (with references) criteria evaluator.

        Parameters
        ----------
        criteria : Optional[CRITERIA_TYPE]
            The criteria to evaluate.
        llm : Optional[BaseLanguageModel]
            The language model to use for the evaluation chain.
        NrC   rD   r   r   r   c                 ó(   •— t        ‰| �  dd|i|¤Ž y rF   rG   rI   s      €r"   rH   z&RunEvalConfig.LabeledCriteria.__init__É   rJ   r$   rK   )r%   r&   r'   r(   rC   r   r   r)   rD   r	   r   ÚLABELED_CRITERIAr   r   rH   r6   r7   s   @r"   ÚLabeledCriteriarO   º   si   ø… ñ	ð -1ˆ�(˜=Ñ)Ó0Ø+/ˆˆXÐ'Ñ(Ó/Ø(5×(FÑ(Fˆ˜ÓFð 15ñ	:à˜}Ñ-ð	:ð ð	:ð ÷		:ñ 	:r$   rR   c                   ón   — e Zd ZU dZej
                  Zeed<   dZe	e
   ed<   dZe	e   ed<    ed¬«      Zy)úRunEvalConfig.EmbeddingDistanceaI  Configuration for an embedding distance evaluator.

        Parameters
        ----------
        embeddings : Optional[Embeddings]
            The embeddings to use for computing the distance.

        distance_metric : Optional[EmbeddingDistanceEnum]
            The distance metric to use for computing the distance.

        r   NÚ
embeddingsÚdistance_metricTr?   )r%   r&   r'   r(   r   ÚEMBEDDING_DISTANCEr   r)   rU   r   r   rV   ÚEmbeddingDistanceEnumr   Úmodel_configr   r$   r"   r   rT   Ð   sE   … ñ
	ð )6×(HÑ(Hˆ˜ÓHØ+/ˆ
�H˜ZÑ(Ó/Ø;?ˆ˜Ð"7Ñ8Ó?á!Ø$(ô
‰r$   r   c                   óX   — e Zd ZU dZej
                  Zeed<   dZe	e
   ed<   	 dZeed<   y)úRunEvalConfig.StringDistancez¾Configuration for a string distance evaluator.

        Parameters
        ----------
        distance : Optional[StringDistanceEnum]
            The string distance metric to use.

        r   NÚdistanceTÚnormalize_score)r%   r&   r'   r(   r   ÚSTRING_DISTANCEr   r)   r\   r   ÚStringDistanceEnumr]   Úboolr   r$   r"   r   r[   å   s@   … ñ	ð )6×(EÑ(Eˆ˜ÓEØ15ˆ�(Ð-Ñ.Ó5ð	ð !%ˆ˜Ó$ð	Nr$   r   c                   ó\   — e Zd ZU dZej
                  Zeed<   dZe	e
   ed<   dZe	e   ed<   y)úRunEvalConfig.QAa-  Configuration for a QA evaluator.

        Parameters
        ----------
        prompt : Optional[BasePromptTemplate]
            The prompt template to use for generating the question.
        llm : Optional[BaseLanguageModel]
            The language model to use for the evaluation chain.
        r   NrD   Úprompt)r%   r&   r'   r(   r   ÚQAr   r)   rD   r   r	   rc   r
   r   r$   r"   rd   rb   û   s9   … ñ	ð )6×(8Ñ(8ˆ˜Ó8Ø+/ˆˆXÐ'Ñ(Ó/Ø/3ˆ�Ð+Ñ,Ô3r$   rd   c                   ó\   — e Zd ZU dZej
                  Zeed<   dZe	e
   ed<   dZe	e   ed<   y)úRunEvalConfig.ContextQAá<  Configuration for a context-based QA evaluator.

        Parameters
        ----------
        prompt : Optional[BasePromptTemplate]
            The prompt template to use for generating the question.
        llm : Optional[BaseLanguageModel]
            The language model to use for the evaluation chain.

        r   NrD   rc   ©r%   r&   r'   r(   r   Ú
CONTEXT_QAr   r)   rD   r   r	   rc   r
   r   r$   r"   Ú	ContextQArf   
  ó9   … ñ		ð )6×(@Ñ(@ˆ˜Ó@Ø+/ˆˆXÐ'Ñ(Ó/Ø/3ˆ�Ð+Ñ,Ô3r$   rj   c                   ó\   — e Zd ZU dZej
                  Zeed<   dZe	e
   ed<   dZe	e   ed<   y)úRunEvalConfig.CoTQArg   r   NrD   rc   rh   r   r$   r"   ÚCoTQArm     rk   r$   rn   c                   ó4   — e Zd ZU dZej
                  Zeed<   y)úRunEvalConfig.JsonValidityz\Configuration for a json validity evaluator.

        Parameters
        ----------
        r   N)r%   r&   r'   r(   r   ÚJSON_VALIDITYr   r)   r   r$   r"   ÚJsonValidityrp   *  ó   … ñ	ð )6×(CÑ(Cˆ˜ÔCr$   rr   c                   ó4   — e Zd ZU dZej
                  Zeed<   y)ú#RunEvalConfig.JsonEqualityEvaluatorz\Configuration for a json equality evaluator.

        Parameters
        ----------
        r   N)r%   r&   r'   r(   r   ÚJSON_EQUALITYr   r)   r   r$   r"   ÚJsonEqualityEvaluatorru   3  rs   r$   rw   c                   ó^   — e Zd ZU dZej
                  Zeed<   dZe	ed<   dZ
e	ed<   dZe	ed<   y)úRunEvalConfig.ExactMatchax  Configuration for an exact match string evaluator.

        Parameters
        ----------
        ignore_case : bool
            Whether to ignore case when comparing strings.
        ignore_punctuation : bool
            Whether to ignore punctuation when comparing strings.
        ignore_numbers : bool
            Whether to ignore numbers when comparing strings.
        r   FÚignore_caseÚignore_punctuationÚignore_numbersN)r%   r&   r'   r(   r   ÚEXACT_MATCHr   r)   rz   r`   r{   r|   r   r$   r"   Ú
ExactMatchry   <  s8   … ñ
	ð )6×(AÑ(Aˆ˜ÓAØ!ˆ�TÓ!Ø#(Ð˜DÓ(Ø$ˆ˜Ô$r$   r~   c                   óB   — e Zd ZU dZej
                  Zeed<   dZe	ed<   y)úRunEvalConfig.RegexMatchz¹Configuration for a regex match string evaluator.

        Parameters
        ----------
        flags : int
            The flags to pass to the regex. Example: re.IGNORECASE.
        r   r   ÚflagsN)
r%   r&   r'   r(   r   ÚREGEX_MATCHr   r)   r�   Úintr   r$   r"   Ú
RegexMatchr€   N  s"   … ñ	ð )6×(AÑ(Aˆ˜ÓAØˆˆsŒr$   r„   c            	       óº   ‡ — e Zd ZU dZej
                  Zeed<   dZe	e
   ed<   dZe	e   ed<   dZe	e   ed<   dZe	e   ed<   	 	 dde	e
   de	e   ded	dfˆ fd
„Zˆ xZS )úRunEvalConfig.ScoreStringaâ  Configuration for a score string evaluator.
        This is like the criteria evaluator but it is configured by
        default to return a score on the scale from 1-10.

        It is recommended to normalize these scores
        by setting `normalize_by` to 10.

        Parameters
        ----------
        criteria : Optional[CRITERIA_TYPE]
            The criteria to evaluate.
        llm : Optional[BaseLanguageModel]
            The language model to use for the evaluation chain.
        normalize_by: Optional[int] = None
            If you want to normalize the score, the denominator to use.
            If not provided, the score will be between 1 and 10 (by default).
        prompt : Optional[BasePromptTemplate]

        r   NrC   rD   Únormalize_byrc   r   r   c                 ó*   •— t        ‰| �  d||dœ|¤Ž y )N)rC   r‡   r   rG   )r   rC   r‡   r   r5   s       €r"   rH   z"RunEvalConfig.ScoreString.__init__u  s   ø€ ô ‰GÑÐT h¸\ÑTÈVÓTr$   )NN)r%   r&   r'   r(   r   ÚSCORE_STRINGr   r)   rC   r   r   rD   r	   r‡   Úfloatrc   r
   r   rH   r6   r7   s   @r"   ÚScoreStringr†   Z  sž   ø… ñ	ð( )6×(BÑ(Bˆ˜ÓBØ,0ˆ�(˜=Ñ)Ó0Ø+/ˆˆXÐ'Ñ(Ó/Ø(,ˆ�h˜u‘oÓ,Ø/3ˆ�Ð+Ñ,Ó3ð 15Ø,0ñ	Uà˜}Ñ-ð	Uð # 5™/ð	Uð ð		Uð
 ÷	Uñ 	Ur$   r‹   c                   ó0   — e Zd ZU ej                  Zeed<   y)ú RunEvalConfig.LabeledScoreStringr   N)r%   r&   r'   r   ÚLABELED_SCORE_STRINGr   r)   r   r$   r"   ÚLabeledScoreStringr�   }  s   … Ø(5×(JÑ(Jˆ˜ÔJr$   r�   )&r%   r&   r'   r(   r   Úlistr;   r   ÚSINGLE_EVAL_CONFIG_TYPEÚCUSTOM_EVALUATOR_TYPEr)   r<   r   r=   ÚBATCH_EVALUATOR_LIKEr.   r+   r/   r0   r>   r	   r   rY   r-   rM   rR   r   r   rd   rj   rn   rr   r   rw   r~   r„   r‹   r�   r   r$   r"   r9   r9   ]   s…  … ññF 	˜dÔ#ð �ØØ#Ø!ð#ñ	
ñó $ðXð @DÐ�x Ð%:Ñ ;Ñ<ÓCØ8Ø=AÐ�h˜tÐ$8Ñ9Ñ:ÓAðð $(€M�8˜C‘=Ó'ð@à$(€N�H˜S‘MÓ(ðð  $€Iˆx˜‰}Ó#ðBà,0€HˆhÐ(Ñ)Ó0ØHáØ $ô€Lô:Ð&ô :ô.:Ð-ô :ô,
Ð/ô 
ô*NÐ,ô Nô,4Ð ô 4ô4Ð'ô 4ô 4Ð#ô 4ô DÐ*ô DôD 
ô Dô%Ð(ô %ô$
Ð(ô 
ô!UÐ)ô !UôFK˜[õ Kr$   r9   N).r(   Úcollections.abcr   Útypingr   r   r   r   Úlangchain_core.embeddingsr   Úlangchain_core.language_modelsr	   Úlangchain_core.promptsr
   Ú	langsmithr   Úlangsmith.evaluation.evaluatorr   r   Úlangsmith.schemasr   r   Úpydanticr   r   r   Ú(langchain.evaluation.criteria.eval_chainr   Ú,langchain.evaluation.embedding_distance.baser   rX   Úlangchain.evaluation.schemar   r   Ú)langchain.evaluation.string_distance.baser   r_   r*   ÚRUN_EVALUATOR_LIKEr“   r   r-   r’   r+   r‘   r9   r   r$   r"   Ú<module>r¢      sõ   ðÙ 'å $ß 1Ó 1å 0Ý <Ý 5Ý "ß Nß *ß 1Ñ 1å Bõ÷ Gõð Øˆ(�7Ñ
ÐØ	Ð
Ð-¨tÐ
3Ñ4ð6ñÐ ð  Øˆc�]�H˜X gÑ.Ñ/Ð0Ø	Ð
Ð-¨tÐ
3Ñ4ð6ñÐ ô�ô ôD˜*ô ð, Ð0°,ÀÐOÑPÐ Ø ¨s°JÐ >Ñ?Ð ôaK�Iõ aKr$   