Ë
    ´Œj  ã                   óÔ  — U d Z ddl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 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 ddlmZmZ ddlmZ ddlmZ ddl m!Z!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z(m)Z) ddl*m+Z+m,Z, ddl-m.Z.m/Z/ de0de1e2   fd„Z3i e'jh                  e#“e'jj                  e"“e'jl                  e!“e'jn                  e“e'jp                  e,“e'jr                  e“e'jt                  e+“e'jv                  e“e'jx                  e“e'jz                  e“e'j|                  e/“e'j~                  e.“e'j€                  e“e'j‚                  e“e'j„                  e“e'j†                  e“e'jˆ                  e“e'jŠ                  ee'jŒ                  e%e'jŽ                  ei¥ZHe2e'eeIe(   eIe
   eIe)   f   f   eJd<   ddœde'dee   dedee
e)f   fd„ZKdddœdee'   dee   d ee2   dede1ee
e)f      f
d!„ZLy)"z Loading datasets and evaluators.é    )ÚSequence)ÚAnyÚOptionalÚUnion)ÚBaseLanguageModel)ÚChain)ÚTrajectoryEvalChain)ÚPairwiseStringEvalChain)ÚLabeledPairwiseStringEvalChain)ÚCriteriaEvalChainÚLabeledCriteriaEvalChain)ÚEmbeddingDistanceEvalChainÚ"PairwiseEmbeddingDistanceEvalChain)ÚExactMatchStringEvaluator)ÚJsonEqualityEvaluatorÚJsonValidityEvaluator)ÚJsonEditDistanceEvaluator)ÚJsonSchemaEvaluator)ÚContextQAEvalChainÚCotQAEvalChainÚQAEvalChain)ÚRegexMatchStringEvaluator)ÚEvaluatorTypeÚLLMEvalChainÚStringEvaluator)ÚLabeledScoreStringEvalChainÚScoreStringEvalChain)ÚPairwiseStringDistanceEvalChainÚStringDistanceEvalChainÚuriÚreturnc                 ó€   — 	 ddl m}  |d| › �«      }t        |d   «      S # t        $ r}d}t        |«      |‚d}~ww xY w)aÝ  Load a dataset from the `LangChainDatasets on HuggingFace <https://huggingface.co/LangChainDatasets>`_.

    Args:
        uri: The uri of the dataset to load.

    Returns:
        A list of dictionaries, each representing a row in the dataset.

    **Prerequisites**

    .. code-block:: shell

        pip install datasets

    Examples
    --------
    .. code-block:: python

        from langchain.evaluation import load_dataset
        ds = load_dataset("llm-math")
    r   )Úload_datasetzXload_dataset requires the `datasets` package. Please install with `pip install datasets`NzLangChainDatasets/Útrain)Údatasetsr#   ÚImportErrorÚlist)r    r#   ÚeÚmsgÚdatasets        úf/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/evaluation/loading.pyr#   r#   (   sY   € ð,&Ý)ñ Ð/°¨uÐ5Ó6€GÜ�˜Ñ Ó!Ð!øô ò &ð:ð 	ô ˜#Ó AÐ%ûð&ús   ‚! ¡	=ª8¸=Ú_EVALUATOR_MAPN)ÚllmÚ	evaluatorr-   Úkwargsc                ó¸  — | t         vr.d| › dt        t         j                  «       «      › �}t        |«      ‚t         |    }t	        |t
        «      r+	 	 ddlm} |xs  |ddd¬	«      } |j                  dd|i|¤ŽS  |di |¤ŽS # t        $ r* 	 ddl	m} n# t        $ r}d}t        |«      |‚d}~ww xY wY Œ]w xY w# t        $ r}d
|› d�}t        |«      |‚d}~ww xY w)a<  Load the requested evaluation chain specified by a string.

    Parameters
    ----------
    evaluator : EvaluatorType
        The type of evaluator to load.
    llm : BaseLanguageModel, optional
        The language model to use for evaluation, by default None
    **kwargs : Any
        Additional keyword arguments to pass to the evaluator.

    Returns
    -------
    Chain
        The loaded evaluation chain.

    Examples
    --------
    >>> from langchain.evaluation import load_evaluator, EvaluatorType
    >>> evaluator = load_evaluator(EvaluatorType.QA)
    zUnknown evaluator type: z
Valid types are: r   )Ú
ChatOpenAIzåCould not import langchain_openai or fallback onto langchain_community. Please install langchain_openai or specify a language model explicitly. It's recommended to install langchain_openai AND specify a language model explicitly.Nzgpt-4é*   )ÚmodelÚseedÚtemperaturezEvaluation with the zŸ requires a language model to function. Failed to create the default 'gpt-4' model. Please manually provide an evaluation LLM or check your openai credentials.r-   © )r,   r'   ÚkeysÚ
ValueErrorÚ
issubclassr   Úlangchain_openair1   r&   Ú&langchain_community.chat_models.openaiÚ	ExceptionÚfrom_llm)r.   r-   r/   r)   Úevaluator_clsr1   r(   s          r+   Úload_evaluatorr?   f   s!  € ð6 œÑ&à& y kØ!¤$¤~×':Ñ':Ó'<Ó"=Ð!>ð@ð 	ô ˜‹oÐÜ" 9Ñ-€MÜ�-¤Ô.ð	)ð2Ý7ð  ÒJ™¨'¸ÈÔJˆCð &ˆ}×%Ñ%Ñ8¨#Ð8°Ñ8Ð8ÙÑ"˜6Ñ"Ð"øô5 ò 2ð2öøô #ò 2ð?ð ô & cÓ*°Ð1ûð2úñð2ûô  ò 	)à& } oð 65ð 5ð ô ˜S“/ qÐ(ûð	)úsZ   ÁB ÁB9 Â	B6ÂBÂB6Â	B0ÂB+Â+B0Â0B6Â3B9 Â5B6Â6B9 Â9	CÃCÃC)r-   ÚconfigÚ
evaluatorsr@   c          	      ó†   — g }| D ]9  }|r|j                  |i «      ni }|j                  t        |fd|ii |¥|¥¤Ž«       Œ; |S )ae  Load evaluators specified by a list of evaluator types.

    Parameters
    ----------
    evaluators : Sequence[EvaluatorType]
        The list of evaluator types to load.
    llm : BaseLanguageModel, optional
        The language model to use for evaluation, if none is provided, a default
        ChatOpenAI gpt-4 model will be used.
    config : dict, optional
        A dictionary mapping evaluator types to additional keyword arguments,
        by default None
    **kwargs : Any
        Additional keyword arguments to pass to all evaluators.

    Returns
    -------
    List[Chain]
        The loaded evaluators.

    Examples
    --------
    >>> from langchain.evaluation import load_evaluators, EvaluatorType
    >>> evaluators = [EvaluatorType.QA, EvaluatorType.CRITERIA]
    >>> loaded_evaluators = load_evaluators(evaluators, criteria="helpfulness")
    r-   )ÚgetÚappendr?   )rA   r-   r@   r/   Úloadedr.   Ú_kwargss          r+   Úload_evaluatorsrG   ©   sU   € ðB €FÛˆ	Ù/5�&—*‘*˜Y¨Ô+¸2ˆØ�‰”n YÑQ°CÐQÐ;P¸fÐ;PÈÐ;PÑQÕRð  ð €Mó    )MÚ__doc__Úcollections.abcr   Útypingr   r   r   Úlangchain_core.language_modelsr   Úlangchain.chains.baser   Ú1langchain.evaluation.agents.trajectory_eval_chainr	   Úlangchain.evaluation.comparisonr
   Ú*langchain.evaluation.comparison.eval_chainr   Ú(langchain.evaluation.criteria.eval_chainr   r   Ú,langchain.evaluation.embedding_distance.baser   r   Ú%langchain.evaluation.exact_match.baser   Ú!langchain.evaluation.parsing.baser   r   Ú*langchain.evaluation.parsing.json_distancer   Ú(langchain.evaluation.parsing.json_schemar   Úlangchain.evaluation.qar   r   r   Ú%langchain.evaluation.regex_match.baser   Úlangchain.evaluation.schemar   r   r   Ú'langchain.evaluation.scoring.eval_chainr   r   Ú)langchain.evaluation.string_distance.baser   r   Ústrr'   Údictr#   ÚQAÚCOT_QAÚ
CONTEXT_QAÚPAIRWISE_STRINGÚSCORE_STRINGÚLABELED_PAIRWISE_STRINGÚLABELED_SCORE_STRINGÚAGENT_TRAJECTORYÚCRITERIAÚLABELED_CRITERIAÚSTRING_DISTANCEÚPAIRWISE_STRING_DISTANCEÚEMBEDDING_DISTANCEÚPAIRWISE_EMBEDDING_DISTANCEÚJSON_VALIDITYÚJSON_EQUALITYÚJSON_EDIT_DISTANCEÚJSON_SCHEMA_VALIDATIONÚREGEX_MATCHÚEXACT_MATCHr,   ÚtypeÚ__annotations__r?   rG   r6   rH   r+   Ú<module>rt      s´  ðÚ &å $ß 'Ñ 'å <å 'Ý QÝ CÝ U÷÷õ L÷õ QÝ Hß SÑ SÝ Kß TÑ T÷÷ð "�cð  "˜d 4™jó  "ðLØ×Ñ�kðà×Ñ˜.ðð ×ÑÐ0ðð ×!Ñ!Ð#:ð	ð
 ×ÑÐ 4ðð ×)Ñ)Ð+Iðð ×&Ñ&Ð(Cðð ×"Ñ"Ð$7ðð ×ÑÐ-ðð ×"Ñ"Ð$<ðð ×!Ñ!Ð#:ðð ×*Ñ*Ð,Kðð ×$Ñ$Ð&@ðð ×-Ñ-Ð/Qðð ×ÑÐ!6ðð  ×ÑÐ!6ð!ð" ×$Ñ$Ð&?ð#ð$ ×(Ñ(Ð*=Ø×ÑÐ8Ø×ÑÐ8ñ)ð �ØØ	ˆ$ˆ|Ñ
˜d 5™k¨4°Ñ+@Ð
@ÑAðCñó ð< (,ò@#Øð@#ð 
Ð#Ñ	$ð@#ð ð	@#ð
 ˆ5�/Ð!Ñ"ó@#ðL (,Ø!ò	%Ø˜Ñ'ð%ð 
Ð#Ñ	$ð%ð �T‰Nð	%ð
 ð%ð 
ˆ%��Ð&Ñ
'Ñ(ô%rH   