§
    ™Štj–  ã                   ó(  — U 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 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e.de/e0         fd„Z1i e%j2        e!“e%j3        e “e%j4        e“e%j5        e“e%j6        e*“e%j7        e“e%j8        e)“e%j9        e
“e%j:        e“e%j;        e“e%j<        e-“e%j=        e,“e%j>        e“e%j?        e“e%j@        e“e%jA        e“e%jB        e“e%jC        ee%jD        e#e%jE        ei¥ZFe0e%eGe&         eGe         z  eGe'         z  f         eHd<   ddœde%dedz  dedee'z  fd„ZIdddœdee%         dedz  d e0dz  dede/ee'z           f
d!„ZJdS )"z Loading datasets and evaluators.é    )ÚSequence)ÚAny)Ú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} n$# t          $ r}d}t          |¦  «        |‚d}~ww xY w |d| › �¦  «        }t          |d         ¦  «        S )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**

    ```bash
    pip install datasets
    ```

    Examples:
    --------
    ```python
    from langchain_classic.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        úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_classic/evaluation/loading.pyr!   r!   4   s„   € ð.&Ø)Ð)Ð)Ð)Ð)Ð)Ð)øÝð &ð &ð &ð:ð 	õ ˜#ÑÔ AÐ%øøøøð&øøøð ˆlÐ5°Ð5Ð5Ñ6Ô6€GÝ�˜Ô Ñ!Ô!Ð!s   ‚	 ‰
*“%¥*Ú_EVALUATOR_MAPN)ÚllmÚ	evaluatorr+   Úkwargsc                óø  — | t           vr;d| › dt          t                                ¦   «         ¦  «        › �}t          |¦  «        ‚t           |          }t	          |t
          ¦  «        r�	 	 ddlm} n<# t          $ r/ 	 ddl	m} n$# t          $ r}d}t          |¦  «        |‚d}~ww xY wY nw xY w|p |ddd¬	¦  «        }n(# t          $ r}d
|› d�}t          |¦  «        |‚d}~ww xY w |j        dd|i|¤ŽS  |di |¤ŽS )aF  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_classic.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_openair/   r$   Ú&langchain_community.chat_models.openaiÚ	ExceptionÚfrom_llm)r,   r+   r-   r'   Úevaluator_clsr/   r&   s          r)   Úload_evaluatorr=   s   s½  € ð6 �Ð&Ð&ð@ yð @ð @Ý"&¥~×':Ò':Ñ'<Ô'<Ñ"=Ô"=ð@ð @ð 	õ ˜‰oŒoÐÝ" 9Ô-€MÝ�-¥Ñ.Ô.ð 9ð	)ð2Ø7Ð7Ð7Ð7Ð7Ð7Ð7øÝð 2ð 2ð 2ð2ðð ð ð ð ð ð øõ #ð 2ð 2ð 2ð?ð õ & cÑ*Ô*°Ð1øøøøð2øøøðð ð2øøøð ÐJ˜˜¨'¸ÈÐJÑJÔJˆCˆCøÝð 	)ð 	)ð 	)ð5 }ð 5ð 5ð 5ð õ ˜S‘/”/ qÐ(øøøøð	)øøøð &ˆ}Ô%Ð8Ð8¨#Ð8°Ð8Ð8Ð8Øˆ=Ð"Ð"˜6Ð"Ð"Ð"sZ   Á)A0 Á/B= Á0
B)Á;BÂB)Â
B#ÂBÂB#Â#B)Â&B= Â(B)Â)B= Â=
C"ÃCÃC")r+   ÚconfigÚ
evaluatorsr>   c          	      ó”   — g }| D ]B}|r|                      |i ¦  «        ni }|                     t          |fd|ii |¥|¥¤Ž¦  «         ŒC|S )ao  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_classic.evaluation import load_evaluators, EvaluatorType
    >>> evaluators = [EvaluatorType.QA, EvaluatorType.CRITERIA]
    >>> loaded_evaluators = load_evaluators(evaluators, criteria="helpfulness")
    r+   )ÚgetÚappendr=   )r?   r+   r>   r-   Úloadedr,   Ú_kwargss          r)   Úload_evaluatorsrE   ¶   sr   € ðB €FØð Sð Sˆ	Ø/5Ð=�&—*’*˜Y¨Ñ+Ô+Ð+¸2ˆØ�Š•n YÐQÐQ°CÐQÐ;P¸fÐ;PÈÐ;PÐQÐQÑRÔRÐRÐRØ€Mó    )KÚ__doc__Úcollections.abcr   Útypingr   Úlangchain_core.language_modelsr   Úlangchain_classic.chains.baser   Ú9langchain_classic.evaluation.agents.trajectory_eval_chainr   Ú'langchain_classic.evaluation.comparisonr   Ú2langchain_classic.evaluation.comparison.eval_chainr	   Ú0langchain_classic.evaluation.criteria.eval_chainr
   r   Ú4langchain_classic.evaluation.embedding_distance.baser   r   Ú-langchain_classic.evaluation.exact_match.baser   Ú)langchain_classic.evaluation.parsing.baser   r   Ú2langchain_classic.evaluation.parsing.json_distancer   Ú0langchain_classic.evaluation.parsing.json_schemar   Úlangchain_classic.evaluation.qar   r   r   Ú-langchain_classic.evaluation.regex_match.baser   Ú#langchain_classic.evaluation.schemar   r   r   Ú/langchain_classic.evaluation.scoring.eval_chainr   r   Ú1langchain_classic.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=   rE   r4   rF   r)   ú<module>rr      s•  ðØ &Ð &Ð &à $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <à /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð LÐ KÐ KÐ KÐ KÐ Kðð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð TÐ SÐ SÐ SÐ SÐ Sðð ð ð ð ð ð ð ð YÐ XÐ XÐ XÐ XÐ XØ PÐ PÐ PÐ PÐ PÐ Pðð ð ð ð ð ð ð ð ð ð
 TÐ SÐ SÐ SÐ SÐ Sðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð!"�cð !"˜d 4œjð !"ð !"ð !"ð !"ðNØÔ�kðàÔ˜.ðð ÔÐ0ðð Ô!Ð#:ð	ð
 ÔÐ 4ðð Ô)Ð+Iðð Ô&Ð(Cðð Ô"Ð$7ðð ÔÐ-ðð Ô"Ð$<ðð Ô!Ð#:ðð Ô*Ð,Kðð Ô$Ð&@ðð Ô-Ð/Qðð ÔÐ!6ðð  ÔÐ!6ð!ð" Ô$Ð&?ð#ð$ Ô(Ð*=ØÔÐ8ØÔÐ8ð)ð ð �ØØˆÔ˜˜eœÑ$ t¨OÔ'<Ñ<ð>ôð ð ñ ð< %)ð@#ð @#ð @#Øð@#ð 
˜TÑ	!ð@#ð ð	@#ð
 ˆ_Ñð@#ð @#ð @#ð @#ðL %)Øð	%ð %ð %Ø˜Ô'ð%ð 
˜TÑ	!ð%ð �4‰Kð	%ð
 ð%ð 
ˆ%�/Ñ
!Ô"ð%ð %ð %ð %ð %ð %rF   