Ë
    I»jÿ  ã                  ó`   — d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
 ddlmZ  G d„ d«      Zy)	zDocument / resume / JD parsing.é    )ÚannotationsN)Ú	JobStatus)ÚDocumentParseRequestÚDocumentParseResponseÚParseTargetÚParsedBlock)Úgenerate_jsonc                  ó   — e Zd Zdd„Zy)ÚDocumentsServicec              ƒ  óL  ‡‡K  — dŠ‰j                   r1	 t        j                  ‰j                   «      j                  dd¬«      Š‰j
                  xs ‰j                  xs d}d}d‰j                  j                  › d‰j                  j                  › d	‰j                  › d
|› d‰d d xs d› �
}dˆˆfd„}t        |||¬«      ƒ d {  –—† \  }}}t        |j                  d«      xs g «      D �	�
cg c]•  \  }	}
t        |
t        «      r€t!        t#        |
j                  dd|	› �«      «      t#        |
j                  dd«      «      t#        |
j                  dd«      «      |
j                  d«      |
j                  d«      xs i ¬«      ‘Œ— }}	}
t%        ‰j&                  ‰j                  ‰j                  t(        j*                  |d|› �|j                  d«      �|j                  d«      n‰xs d ||j                  d«      xs i ¬«	      S # t        $ r dŠY �ŒÓw xY w7 �ŒUc c}
}	w ­w)NÚ zutf-8Úreplace)ÚerrorsÚdocumentz‹You extract structured data from documents. Return JSON: {"raw_text","blocks":[{"block_id","block_type","text","page"}],"structured":{...}}zparse_target=z
document_type=z

language=z
source=z

content:
i@  u,   (binary/url source â€” extract what you can)c                 ó´  •— i } ‰j                   t        j                  k(  rd d g g g ‰d d xs d dœ} n$‰j                   t        j                  k(  rd g g g dœ} g }‰rqt	        ‰j                  d«      D �cg c]  }|j                  «       sŒ|‘Œ c}d d «      D ]2  \  }}|j                  d|dz   › �d|j                  «       d d	 dd
œ«       Œ4 ‰xs d || dœS c c}w )Niô  )ÚnameÚemailÚskillsÚ
experienceÚ	educationÚsummary)ÚtitleÚresponsibilitiesÚrequirementsr   z

é   úb-é   Ú	paragraphiÐ  )Úblock_idÚ
block_typeÚtextÚpage)Úraw_textÚblocksÚ
structured)Úparse_targetr   ÚRESUMEÚJOB_DESCRIPTIONÚ	enumerateÚsplitÚstripÚappend)r%   r$   ÚpÚiÚparaÚpayloadr#   s        €€ú0/var/www/html/TJ-AI/tj/app/services/documents.pyÚlocalz%DocumentsService.parse.<locals>.local*   s  ø€ Ø!ˆJØ×#Ñ#¤{×'9Ñ'9Ò9à Ø!Ø Ø"$Ø!#Ø'¨¨˜~Ò5°ñ‘
ð ×%Ñ%¬×)DÑ)DÒDà!Ø(*Ø$&Ø ñ	�
ð ˆFÙÜ(°X·^±^ÀFÔ5KÓ)YÑ5K°ÈqÏwÉwÍyª!Ð5KÑ)YÐZ]Ð[]Ð)^Ö_‘G�A�tØ—M‘Mà*,¨Q°©U¨G¨Ø*5Ø$(§J¡J£L°°$Ð$7Ø$%ñ	õð  `ð !)Ò 0¨D¸FÐR\Ñ]Ð]ùò *Zs   Á2CÂC)ÚsystemÚuserÚlocal_factoryr$   r   r   r    r   r!   r"   Úmetadata)r   r    r!   r"   r6   zParsed document via r#   r%   )	Úcorrelation_idÚdocument_typer&   ÚstatusÚstubÚmessager#   r$   r%   )ÚreturnÚdict)Úcontent_base64Úbase64Ú	b64decodeÚdecodeÚ	ExceptionÚ
source_urlÚfilenamer&   Úvaluer8   Úlanguager	   r)   ÚgetÚ
isinstancer=   r   Ústrr   r7   r   Ú	SUCCEEDED)Úselfr0   Úsource_hintr3   r4   r2   Údatar:   Úproviderr.   Úbr$   r#   s    `          @r1   ÚparsezDocumentsService.parse   s<  ùè ø€ ØˆØ×!Ò!ðÜ!×+Ñ+¨G×,BÑ,BÓC×JÑJØ Ið Kó �ð
 ×(Ñ(ÒJ¨G×,<Ñ,<ÒJÀ
ˆð$ð 	ð ˜G×0Ñ0×6Ñ6Ð7ð 8Ø$×2Ñ2×8Ñ8Ð9ð :Ø×(Ñ(Ð)ð *Ø!�]ð #Ø! % 4˜ÒZÐ,ZÐ[ð	]ð 	ö	^ô> &3Ø °Eô&
÷  
Ñˆˆd�Hô " $§(¡(¨8Ó"4Ò":¸Ô;ô

ñ <‘��1Ü˜!œTÔ"ô Ü˜QŸU™U :°°A°3¨xÓ8Ó9Ü˜qŸu™u \°;Ó?Ó@Ü˜Ÿ™˜v rÓ*Ó+Ø—U‘U˜6“]ØŸ™˜zÓ*Ò0¨böð <ð 	ñ 

ô %Ø"×1Ñ1Ø!×/Ñ/Ø ×-Ñ-Ü×&Ñ&ØØ*¨8¨*Ð5Ø-1¯X©X°jÓ-AÐ-M�T—X‘X˜jÔ)ÐT\ÒTdÐ`dØØ—x‘x Ó-Ò3°ô

ð 
	
øô} ò Ø“ðúð` 
ûó

ùsI   „H$”0H	 ÁBH$ÃHÃ)H$Ã0BHÆ
A?H$È	HÈH$ÈHÈH$ÈH$N)r0   r   r<   r   )Ú__name__Ú
__module__Ú__qualname__rP   © ó    r1   r   r      s   „ ôO
rU   r   )Ú__doc__Ú
__future__r   r?   Úapp.schemas.commonr   Úapp.schemas.documentsr   r   r   r   Úapp.services.ai_generater	   r   rT   rU   r1   Ú<module>r[      s,   ðÙ %å "ã å (÷ó õ 3÷P
ò P
rU   