
    +#h                     4   d dl Z d dlmZ d dlmZ  G d de      Zedk(  rd dlmZ  edd	d
dd       Z	 edi e	Z
 ee
        ee
j                  d    j                          ee
j                  d   j                          e ee
j                         ee
j                         ee
j                                 ee
j                  d    j                          ee
j                  d   j                          ee
j                  d   j                         y)    N)load_dataset)Datasetc                   *     e Zd Zddddd fdZ xZS )HotPotQAT
dev_titles)only_hard_exampleskeep_detailsunofficial_devc                   t        |   |i | |sJ d       t        ddd      }t        ddd      }g }|D ]a  }	|	d   dk(  s|d	u rg d
}
n|dk(  rg d}
nddg}
|
D ci c]  }||	|   
 }}d|v rt        |d   d         |d<   |d= |j	                  |       c t        j                  d      }|j                  |       |d t        |      dz  dz   | _	        |r|t        |      dz  dz  d  | _
        nd | _
        | j                  D ]  }|dk(  s	|d=  g }|D ]K  }	|	d   dk(  sJ d
D ci c]  }||	|   
 }}d|v rt        |d   d         |d<   |d= |j	                  |       M || _        y c c}w c c}w )NzCare must be taken when adding support for easy examples.Dev must be all hard to match official dev, but training can be flexible.	hotpot_qafullwikitrain)split
validationlevelhardT)idquestionanswertypesupporting_factsr   )r   r   r   r   r   r   titlegold_titlesr   K   d   )super__init__r   setappendrandomRandomshufflelen_train_dev_test)selfr   r	   r
   argskwargshf_official_trainhf_official_devofficial_trainraw_examplekeyskexamplerngtest	__class__s                  S/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dspy/datasets/hotpotqa.pyr   zHotPotQA.__init__	   s   $)&)! 	o $o 	o! )jP&{JlS, 	/K7#v-4'SD!\1ED&1D6:;1k!n,;;%0-09K1LW1U-VGM* 23%%g.	/" mmAN#$%Ac.&9"&<c&AB&s>':2'=s'B'CDDIDI{{ 	+G|+M*	+ * 	!Kw'61112jkQq+a.(kGk!W,),W5G-H-Q)R&./KK 	! 
? <2 ls   !E4/E9)returnN)__name__
__module____qualname__r   __classcell__)r3   s   @r4   r   r      s    15Lae 1 1    r   __main__)dotdict      i  i  )
train_seed
train_size	eval_seeddev_size	test_size   iT  i   )r    datasetsr   dspy.datasets.datasetr   r   r6   	dsp.utilsr<   	data_argsdatasetprintr   r   r#   devr2   rE   r:   r4   <module>rM      s     ! )2w 2j z!1te_`aI##G	'N	'--

#
#$	'--

$
$%	#gmm
c'++.GLL0AB	'++a.
!
!"	'++c

#
#$	'++c

#
#$r:   