CoolFace
Apppublic

Marcin-XStudio/CV_Exractor

sourceHugging Facemitupdated 1y agoView on Hugging Face
0likes
app.cpython-313.pyc80 linesDownload Raw Back to __pycache__
12��,h����SSKrSSKrSSKrSSKJr SSKJrJr SSKJ	r	 SSK3JrJrJ
r
Jr SSKrSSKJr SSKrSSKJr \"5 \"5rSr\R.R0R35(aS	OS4r\S	:Xa\R6O\R8r\R=S5S5r\R=S5S
5r SSjr!Sr"SSSS./SSSSS./SSSSS./S.r#\RIS5\"S54S\
4Sjj5r%g)�N)�DocumentConverter)�AutoModelForCausalLM�
AutoTokenizer)�Path)�FastAPI�File�5UploadFile�
HTTPException)�load_dotenv)�
create_clientznumind/NuExtract-1.5-tiny�mps�cpu�startupc�l�[[R"S5[R"S55qg)N�DATABASE_URL�SUPABASE_SERVICE_ROLE_KEY)r�os�getenv�supabase���)/Users/marcinwidz/Work/CV_Exractor/app.py�startup_supabasers'���6�	�	�.�!�7�	�	�-�.��Hrc���[SSS9 [R"[[SS9R[5R5q[R"[SS9q8[SSS9 g)NzLoading model and tokenizer...T��flush)�torch_dtype�trust_remote_code)rzModel and tokenizer loaded.)�printr�from_pretrained�9model_name�dtype�to�device�eval�modelr�	tokenizerrrr�10load_modelr(sU��	�11*�$�7� �0�0��E�T�
��b��j����12��-�-�j�D�Q�I�	�13'�t�4rc14��[SSS9 [R"5n[R"[R15"U5SS9nUVs/sHnSUSUS3PM nn[S	SS9 /n	[R"5 [S16[U5U5Hnn17X�X�-n[USSSUS9R[5n[S
X�-S-S3SS9 [R"S0UDUSS.D6n
U	[RU
SS9-
n	Mp SSS5 [SSS9 [R"5U-18n[SUSS3SS9 U	Vs/sHo�R!S5SPM sn$s snf!,(df   Nh=fs snf)Nz Starting NuExtract prediction...Tr�)�indentu�<|input|>19### Instruction:20Remplis la template JSON avec les informations extraits du texte.21Exemples types de formations :  CAP Boucherie, Licence Pro Métiers de l’Énergétique, Baccalauréat Général22Exemples catégories de formations :  Transport, énergie, langues, esthétique23Exemples mobilités :  permis B, permis C, permis D. si y'a juste la mention de permis on considère que c'est le permis B24Output *only* the completed JSON.25### Template:26z27### Text:28z29 30<|output|>zPrompts prepared.r�pt)�return_tensors�31truncation�padding�32max_lengthz(Generating outputs with model for batch �z...F)�max_new_tokens�	use_cache)�skip_special_tokenszOutputs generated.z"NuExtract prediction completed in z.2fz	 seconds.z33<|output|>r)r�time�perf_counter�json�dumps�loads�torch�no_grad�range�lenr'r#r$r&�generate�batch_decode�split)�texts�template�34batch_sizer0r2�35start_time�template_str�text�prompts�outputs�i�batch�enc�ids�elapsed�outs                r�predict_NuExtractrO(s���	�36,�D�9��"�"�$�J��:�:�d�j�j��2�1�=�L����D�	��.���&��	����3738�T�*��G�	�����q�#�g�,�39�3�A����-�E���#���%���b��j�

�
�<�Q�]�1�_�<M�S�Q�Y]�^��.�.�W�3�W�~�QV�W�C��y�-�-�c�t�-�L�L�G�4�40�4142�d�+����!�J�.�G�	�.�w�s�m�9�43E�T�R�29�:�'�3�I�I�l�#�A�&�'�:�:��C�"44��� ;s�
E)�B	E.�	E?�.45E<a%{46    "nom": "", "email": "", "telephone": "",47    "education": [{"type_de_formation": "", "categorie_de_formation": "", "annee_debut": "", "annee_fin": ""}],48    "experience": [{"position": "", "entreprise": "", "annee_debut": "", "annee_fin": ""}],49    "types_des_permis_de_conduire": [""]50}�)�51start_date�end_date�job_category_id)�training_type_id�training_category_idrQrR)�id�title)�52experience�	education�email�phone�mobilityz/extract.�filec��(# �[UR5R=(d Sn[R	S5RS5R
5n[SU5 [R	S5RS5R
5n[SU5 [R	S5RS5R
5n[SU5 [R	S	5RS5R
5n[S53U5 [R"USS9nUR5IShv�NnURU5 URnSSS5 [S
W3SS9 [5n54U55R!U5nUR"R%5n[SSS9 [&R("U5 [-U/[.5Sn
[SSS9 [SU
5 [S[1U
55 [SSS9 [2S:Xa[4R6R95 OQ[2S:Xa[4R:R95 O([2S:Xa[4R<R95 S[>R@"U
50$GNj!,(df   GNR=f![a!n	[SU	3SS9 [SSU	35eSn	A	ff=f![a!n	[SU	3SS9 [SSU	35eSn	A	ff=f![*a GNZf=f![&R("U5 f![*a ff=f=f![a!n	[SU	3SS9 [SSU	35eSn	A	ff=f7f)Nz.pdf�Job_categoryz	id, titlezJob Categories: �
Training_typezTraining Types: �Training_categoryzTraining Categories: �Mobilityz56Mobility: F)�suffix�deletezUpload saved to TrzCannot save upload: i�zDocling conversion complete.zDocling error: i�rz#Extraction with NuExtract complete.u⏺ RAW MODEL OUTPUT:57u⏺ RAW MODEL OUTPUT (repr):58zClearing Cacher
�cudar�resultzExtraction error: )!r�filenamercr�table�select�executer�tempfile�NamedTemporaryFile�read�write�name�	Exceptionr59r�convert�document�export_to_textr�remove�OSErrorrOrB�reprr$r:r
�empty_cachererr7r9)r]rc�job_categories�training_types�training_categoriesr\�tmp�data�tmp_path�e�	converterrf�raw_text�extracted_json_strs              r�extractr�^s����
�$�-�-�
 �
'�
'�
1�6�F�=�60"����7�>�>�{�K�S�S�U��
� �.�1�!����8�?�?��L�T�T�V��
� �.�1�&�n�n�-@�A�H�H��U�]�]�_��
�%�':�;��>�>�*�-�4�4�[�A�I�I�K��
�l�H�%��
(�
(��u�
E������$�D��I�I�d�O��x�x�H�F�	� ��61�+�4�8�62 63�%�'�	��%�%�h�/���O�O�2�2�4��
�,�D�9�64�Y�Y�x�
 �;�.��z�8�D�Q�G��
�3�4�@�
�'�);�<�
�.��5G�0H�I�
��d�+��U�?��I�I�!�!�#�
�v�
��J�J�"�"�$�
�u�_��I�I�!�!�#��$�*�*�%7�8�9�9�C%�F�
E��65�=�
�$�Q�C�(��5��C�#7��s�!;�<�<��=���8�
���s�#�4�0��C�?�1�#�!6�7�7��8��66������Y�Y�x�
 ������� �;�
�"�1�#�&�d�3��C�#5�a�S�!9�:�:��;�s��)N�D
K�9J:�
J7�!J:�/K�?K:�L(�CM$�6N�7J:�:67K	�K�68K7�K2�2K7�7N�:69L%�L � L%�%L9�(70L6�2N�5L6�6N�9M!�:M�M!�71M�M!�M�M!�!N�$72N�.N73�74N�N)�75i�i)&r7r:r5�docling.document_converterr�transformersrr�pathlibr�fastapirrr	r76r�dotenvrrkrr�appr!�backendsr
�is_availabler$�float16�float32r"�on_eventrr(rOrB�77data_model�postr�rrr�<module>r�s�����8�<��<�<�	���"��
�
�i��
(�78��n�n�(�(�5�5�7�7�U�U��$�e�m�U�]�]��������i��������i��5��5�%;�N��')�b�R�P�Q�+-�r�Y[�ik�l�m�����,�-��79����*��%)�#�Y�>;�80�>;��>;r