o
    7ti!                     @   s   d dl Z d dlZdddddddd	d
ddddddddddddddddddddddddddddddddddd dd!d"dd#dd$d%dd&dd'Zd(d) Zd*ed+ed,ed-dfd.d/Zd3d0d1Zed2krle  dS dS )4    Nu   প্রশ্ন:u*   ধাপে ধাপে উত্তর:zAnswer:zThe answer is (\-?[0-9\.\,]+))QUESTIONANSWERDIRECTREGEXzFrage:u   Schritt-für-Schritt-Antwort:zAntwort:z"Die Antwort lautet (\-?[0-9\.\,]+)z	Question:zStep-by-Step Answer:z	Pregunta:zRespuesta paso a paso:z
Respuesta:zLa respuesta es (\-?[0-9\.\,]+)z
Question :u   Réponse étape par étape :u
   Réponse :u   La réponse est (\-?[0-9\.\,]+)u   Задача:u!   Пошаговоерешение:u   Ответ — (\-?[0-9\.\,]+)zSwali:zJibu la Hatua kwa Hatua:zJibu ni (\-?[0-9\.\,]+)u   ప్రశ్న:u2   దశలవారీగా సమాధానం:u%   సమాధానం (\-?[0-9\.\,]+)u   โจทย์:u1   คำตอบทีละขั้นตอน:u(   คำตอบคือ (\-?[0-9\.\,]+)u	   問題：u   ステップごとの答え:u!   答えは(\-?[0-9\.\,]+)です。u	   问题：u   逐步解答:u   答案是 (\-?[0-9\.\,]+)。)bndeenesfrruswtethjazhc                 C   sD   | d u ri S ddd|  dddigdddd	d
dddigdgiS )Nfilter_listzstrict-matchregex)functionregex_patternr   
take_first)namefilterzflexible-extractz(-?[$0-9.,]{2,})|(-?[0-9]+))r   r   group_select )r   r   r   L/home/ubuntu/.local/lib/python3.10/site-packages/lm_eval/tasks/mgsm/utils.pyadd_regex_patterna   s,   r   
output_dir	overwritemodereturnc                 C   s  g }t  D ]}zt | d }d}i }d}|dkr)t | d }	d}
d| }d}n7|dkrKt | d	 }	t | d
 }
d| }t|
}|dv rHdnd}n|dkr`t d d	 }	t d d
 }
d| }| d}tt | d	 d }t|  d| |rzdndddA}|d tj||| d|	 d| d|	 dd| dd|d |d!d"gd#d$i|rd%|ini |d&td'd( W d   n1 sw   Y  W q t	y   |
| Y qw t|d)krt	d*d+| dS ),z
    Generate a yaml file for each language.

    :param output_dir: The directory to output the files to.
    :param overwrite: Whether to overwrite files if they already exist.
    r   cot_yamlNdirectr   mgsm_direct_direct_yaml
native-cotr   r   mgsm_native_cot_)r   r    en-cotr   mgsm_en_cot_z.yaml   /wxutf8)encodingz# Generated by utils.py
z){% if answer is not none %}{{question+"\nz"}}{% else %}{{"z "+question+"\nz"}}{% endif %}z${% if answer is not none %}{{answer[z1:]}}{% else %}{{answer_number|string}}{% endif %})includedataset_nametaskdoc_to_textdoc_to_targetgeneration_kwargsz</s>z
<|im_end|>F)until	do_sampletarget_delimiterTinf)allow_unicodewidthr   zJFiles were not created because they already exist (use --overwrite flag): z, )	LANGUAGESkeysr   lenopenwriteyamldumpfloatFileExistsErrorappendjoin)r   r   r   errlangr   yaml_templater   	DELIMITERr   r   	task_name	file_nameANSWER_TO_SKIPfr   r   r   gen_lang_yamls   s   




rO   c                  C   s`   t  } | jddddd | jdddd	 | jd
dg ddd |  }t|j|j|jd dS )z9Parse CLI args and generate language-specific yaml files.z--overwriteF
store_truez%Overwrite files if they already exist)defaultactionhelpz--output-dir.z Directory to write yaml files to)rQ   rS   z--moder%   )r"   r%   r(   zMode of chain-of-thought)rQ   choicesrS   )r   r   r   N)argparseArgumentParseradd_argument
parse_argsrO   r   r   r   )parserargsr   r   r   main   s$   r\   __main__)r    N)	rV   rA   r<   r   strboolrO   r\   __name__r   r   r   r   <module>   s    	
["
I
