
    KKi                        % S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SS	KJrJr  SS
KJrJr  SSKJr  SSKJrJr  SSKJr  SSKJr  SSKJrJ r J!r!  SSK"J#r#  SSK$J%r%J&r&J'r'  SSK(J)r)J*r*  SSK+J,r,J-r-  S\.S\/\0   4S jr10 \%Rd                  \!_\%Rf                  \ _\%Rh                  \_\%Rj                  \_\%Rl                  \*_\%Rn                  \_\%Rp                  \)_\%Rr                  \
_\%Rt                  \_\%Rv                  \_\%Rx                  \-_\%Rz                  \,_\%R|                  \_\%R~                  \_\%R                  \_\%R                  \_\%R                  \_\%R                  \\%R                  \#\%R                  \0ErF\0\%\G\&   \G\   -  \G\'   -  4   \HS'   SS.S\%S\S-  S\S\\'-  4S jjrISSS.S\\%   S\S-  S \0S-  S\S\/\\'-     4
S! jjrJg)"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                      SSK Jn  U" SU  35      n[        US   5      $ ! [         a  nSn[        U5      UeSnAff = f)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        f/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/langchain_classic/evaluation/loading.pyr!   r!   4   sY    .&) /u56G !!  &: 	 #A%&s   ! 
>9>_EVALUATOR_MAPN)llm	evaluatorr+   kwargsc                   U [         ;  a.  SU  S[        [         R                  5       5       3n[        U5      e[         U    n[	        U[
        5      (       a-    SSKJn  U=(       d    U" SSSS	9nUR                  " SSU0UD6$ U" S0 UD6$ ! [         a*     SSK	Jn   N@! [         a  nSn[        U5      UeSnAff = ff = f! [         a  nS
U S3n[        U5      UeSnAff = f)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_classic.evaluation import load_evaluator, EvaluatorType
>>> evaluator = load_evaluator(EvaluatorType.QA)
zUnknown evaluator type: z
Valid types are: r   )
ChatOpenAIzCould 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 &&yk!$~':':'<"=!>@ 	 o"9-M-..	)27  J'JC %%8#888"6""5  22 # 2?  &c*122   	)&}o 65 5  S/q(	)sN   B C 
C BC 
B<)B77B<<C  C 
C$CC$)r+   config
evaluatorsr>   c          	          / nU  H?  nU(       a  UR                  U0 5      O0 nUR                  [        U4SU00 UEUED65        MA     U$ )a  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      sU    B F	/5&**Y+2nYQCQ;Pf;P;PQ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 T Y P 
 T 
!"c !"d4j !"Nk. 0 !!#:	
  4 ))+I &&(C ""$7 - ""$< !!#: **,K $$&@ --/Q !6  !6!" $$&?#$ ((*=88) e$tO'<<> < %)@#@# 
T	!@# 	@#
 _@#L %)	%'% 
T	!% 4K	%
 % 
%/
!"%rF   