§
    Ý˜ºh™  ã                   ó�   — d dl mZ ddlmZmZmZmZ ddlmZ ddl	m
Z
  ej        e¦  «        Zdefd„Zd	„ Z G d
„ de
¦  «        ZdS )é    )ÚArgumentParseré   )ÚPipelineÚPipelineDataFormatÚget_supported_tasksÚpipeline)Úloggingé   )ÚBaseTransformersCLICommandÚpathc                 ó˜   — | sdS t           j        D ]}|                      |¦  «        r|c S Œt          d| › dt           j        › �¦  «        ‚)NÚpipez4Unable to determine file format from file extension z-. Please provide the format through --format )r   ÚSUPPORTED_FORMATSÚendswithÚ	Exception)r   Úexts     úa/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/commands/run.pyÚtry_infer_format_from_extr      s}   € Øð Øˆvå!Ô3ð ð ˆØ�=Š=˜ÑÔð 	ØˆJˆJˆJð	õ ð	]¸tð 	]ð 	]Ý6HÔ6Zð	]ð 	]ñô ð ó    c                 óP  — t          | j        | j        r| j        nd | j        | j        | j        ¬¦  «        }| j        dk    rt          | j        ¦  «        n| j        }t          j
        || j        | j        | j        r| j        n|j        | j        ¬¦  «        }t          ||¦  «        S )N)ÚtaskÚmodelÚconfigÚ	tokenizerÚdeviceÚinfer)ÚformatÚoutput_pathÚ
input_pathÚcolumnÚ	overwrite)r   r   r   r   r   r   r   r   Úinputr   Úfrom_strÚoutputr    Údefault_input_namesr!   Ú
RunCommand)ÚargsÚnlpr   Úreaders       r   Úrun_command_factoryr*   '   s¯   € Ý
ØŒYØ œJÐ0ˆdŒjˆj¨DØŒ{Ø”.ØŒ{ðñ ô €Cð 7;´kÀWÒ6LÐ6LÕ& t¤zÑ2Ô2Ð2ÐRVÔR]€FÝÔ(ØØ”KØ”:Ø"œkÐFˆtŒ{ˆ{¨sÔ/FØ”.ðñ ô €Fõ �c˜6Ñ"Ô"Ð"r   c                   ó@   — e Zd Zdedefd„Zedefd„¦   «         Zd„ Z	dS )r&   r(   r)   c                 ó"   — || _         || _        d S )N)Ú_nlpÚ_reader)Úselfr(   r)   s      r   Ú__init__zRunCommand.__init__;   s   € ØˆŒ	ØˆŒˆˆr   Úparserc                 óÌ  — |                       dd¬¦  «        }|                     dt          ¦   «         d¬¦  «         |                     dt          d¬	¦  «         |                     d
t          d¬	¦  «         |                     dt          d¬	¦  «         |                     dt          d¬	¦  «         |                     dt          d¬	¦  «         |                     dt          d¬	¦  «         |                     dt          dt          j        d¬¦  «         |                     dt          dd¬¦  «         |                     ddd¬¦  «         |                     t          ¬ ¦  «         d S )!NÚrunzRun a pipeline through the CLI)Úhelpz--taskzTask to run)Úchoicesr4   z--inputz%Path to the file to use for inference)Útyper4   z--outputz9Path to the file that will be used post to write results.z--modelz)Name or path to the model to instantiate.z--configz2Name or path to the model's config to instantiate.z--tokenizerz?Name of the tokenizer to use. (default: same as the model name)z--columnzXName of the column to use as input. (For multi columns input as QA use column1,columns2)z--formatr   zInput format to read from)r6   Údefaultr5   r4   z--deviceéÿÿÿÿzSIndicate the device to run onto, -1 indicates CPU, >= 0 indicates GPU (default: -1))r6   r7   r4   z--overwriteÚ
store_truez"Allow overwriting the output file.)Úactionr4   )Úfunc)	Ú
add_parserÚadd_argumentr   Ústrr   r   ÚintÚset_defaultsr*   )r1   Ú
run_parsers     r   Úregister_subcommandzRunCommand.register_subcommand?   s’  € à×&Ò& uÐ3SÐ&ÑTÔTˆ
Ø×Ò Õ2EÑ2GÔ2GÈmÐÑ\Ô\Ð\Ø×Ò 	µÐ:aÐÑbÔbÐbØ×Ò 
µÐ;vÐÑwÔwÐwØ×Ò 	µÐ:eÐÑfÔfÐfØ×Ò 
µÐ;oÐÑpÔpÐpØ×ÒØ¥Ð*kð 	 ñ 	
ô 	
ð 	
ð 	×ÒØÝØkð 	 ñ 	
ô 	
ð 	
ð
 	×ÒØÝØÝ&Ô8Ø,ð 	 ñ 	
ô 	
ð 	
ð 	×ÒØÝØØfð	 	 ñ 	
ô 	
ð 	
ð 	×Ò °lÐImÐÑnÔnÐnØ×ÒÕ%8ÐÑ9Ô9Ð9Ð9Ð9r   c                 óˆ  — | j         g }}| j        D ]Q}| j        j        r |di |¤Žn
 ||¦  «        }t          |t          ¦  «        r|                     |¦  «         ŒL||z  }ŒR| j         j        r9| j                             |¦  «        }t           	                    d|› �¦  «         d S | j         
                    |¦  «         d S )NzCCurrent pipeline requires output to be in binary format, saving at © )r-   r.   Úis_multi_columnsÚ
isinstanceÚdictÚappendÚbinary_outputÚsave_binaryÚloggerÚwarningÚsave)r/   r(   ÚoutputsÚentryr$   Úbinary_paths         r   r3   zRunCommand.run_   sÚ   € Ø”y "ˆWˆà”\ð 	"ð 	"ˆEØ%)¤\Ô%BÐR�S�S�\�\˜5�\�\�\ÈÈÈEÉ
Ì
ˆFÝ˜&¥$Ñ'Ô'ð "Ø—’˜vÑ&Ô&Ð&Ð&à˜6Ñ!��ð Œ9Ô"ð 	'Øœ,×2Ò2°7Ñ;Ô;ˆKÝ�NŠNÐnÐalÐnÐnÑoÔoÐoÐoÐoàŒL×Ò˜gÑ&Ô&Ð&Ð&Ð&r   N)
Ú__name__Ú
__module__Ú__qualname__r   r   r0   Ústaticmethodr   rB   r3   rD   r   r   r&   r&   :   sm   € € € € € ð˜Hð Ð.@ð ð ð ð ð ð: Nð :ð :ð :ñ „\ð:ð>'ð 'ð 'ð 'ð 'r   r&   N)Úargparser   Ú	pipelinesr   r   r   r   Úutilsr	   Ú r   Ú
get_loggerrQ   rK   r>   r   r*   r&   rD   r   r   ú<module>rZ      sÔ   ðð $Ð #Ð #Ð #Ð #Ð #à SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (ð 
ˆÔ	˜HÑ	%Ô	%€ð Cð ð ð ð ð#ð #ð #ð&4'ð 4'ð 4'ð 4'ð 4'Ð+ñ 4'ô 4'ð 4'ð 4'ð 4'r   