Ë
    µŒjP5  ã                   ó  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZ d dlZd dlmZ d dlmZ d dlmZmZ d dlmZ dZd	Zd
ZdZdZdZdZdZdZ  ejB                  e"«      Z# eddd¬«       G d„ dee«      «       Z$y)é    N)ÚPath)ÚAnyÚDictÚListÚMappingÚOptionalÚSequenceÚUnion)Ú
deprecated)ÚDocument)Ú	BaseModelÚmodel_validator)Ú
BaseLoaderz#{http://www.w3.org/1999/xhtml}tableÚxpathÚidÚsourceÚnameÚ	structureÚtagÚprojectsz#https://api.docugami.com/v1preview1z0.0.24z1.0z!docugami_langchain.DocugamiLoader)ÚsinceÚremovalÚalternative_importc                   ó<  — e Zd ZU dZeZeed<   	 ej                  j                  d«      Zee   ed<   	 dZeed<   	 dZeed<   	 d	Zeed
<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZee   ed<   	 dZeee      ed<   	 eeeeef         ed<   	 dZeed<   	  ed¬«      edeee f   de fd„«       «       Z!	 	 d*de"dee   d ee#   de$e%   fd!„Z&dede$e   fd"„Z'dede$e   fd#„Z(d$edefd%„Z)	 	 d*d&ededee   d'ee#   de$e%   f
d(„Z*de$e%   fd)„Z+y)+ÚDocugamiLoaderzdLoad from `Docugami`.

    To use, you should have the ``dgml-utils`` python package installed.
    ÚapiÚDOCUGAMI_API_KEYÚaccess_tokeni   Úmax_text_lengthé    Úmin_text_lengthi   Úmax_metadata_lengthFÚinclude_xml_tagsr   Úparent_hierarchy_levelsÚdoc_idÚparent_id_keyÚsub_chunk_tablesTÚwhitespace_normalize_textNÚ	docset_idÚdocument_idsÚ
file_pathsÚ(include_project_metadata_in_doc_metadataÚbefore)ÚmodeÚvaluesÚreturnc                 ó  — |j                  d«      r|j                  d«      rt        d«      ‚|j                  d«      s|j                  d«      st        d«      ‚|j                  d«      r|j                  d«      st        d«      ‚|S )zÁValidate that either local file paths are given, or remote API docset ID.

        Args:
            values: The values to validate.

        Returns:
            The validated values.
        r+   r)   z7Cannot specify both file_paths and remote API docset_idz6Must specify either file_paths or remote API docset_idr   z7Must specify access token if using remote API docset_id)ÚgetÚ
ValueError)Úclsr/   s     úw/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/document_loaders/docugami.pyÚvalidate_local_or_remotez'DocugamiLoader.validate_local_or_remoteT   sr   € ð �:‰:�lÔ#¨¯
©
°;Ô(?ÜÐVÓWÐWà�z‰z˜,Ô'°·
±
¸;Ô0GÜÐUÓVÐVà�:‰:�kÔ"¨6¯:©:°nÔ+EÜÐVÓWÐWàˆó    ÚcontentÚdocument_nameÚadditional_doc_metadatac           	      ó(  ‡ ‡‡— 	 ddl m} 	 ddlm} ddlm} d|dt        fˆˆˆ fd	„}|j                  t        j                  |«      «      }|j                  «       }	 ||	‰ j                  ‰ j                  ‰ j                  ‰ j                  ‰ j                   ‰ j"                  ¬
«      }
i }|
D ]�  } ||«      }|j$                  j'                  t(        «      }|sŒ-|||<   |j*                  sŒ? ||j*                  «      }|j$                  j'                  t(        «      }|sŒs|j,                  sŒ€||j$                  ‰ j.                  <   |||<   ŒŸ t1        |j3                  «       «      S # t        $ r t        d«      ‚w xY w# t        $ r t        d«      ‚w xY w)z6Parse a single DGML document into a list of Documents.r   ©ÚetreeúPCould not import lxml python package. Please install it with `pip install lxml`.)ÚChunk)Ú
get_chunkszaCould not import from dgml-utils python package. Please install it with `pip install dgml-utils`.Údg_chunkr0   c                 óŒ  •— t        j                  | j                  j                  «       «      j	                  «       }t
        | j                  t        |t        ‰t        ‰t        | j                  t        | j                  i}| j                  }‰r‰j                  r|j                  ‰«       t!        |d ‰j"                   |¬«      S )N)Úpage_contentÚmetadata)ÚhashlibÚmd5ÚtextÚencodeÚ	hexdigestÚ	XPATH_KEYr   ÚID_KEYÚDOCUMENT_NAME_KEYÚDOCUMENT_SOURCE_KEYÚSTRUCTURE_KEYr   ÚTAG_KEYr   r,   Úupdater   r   )rA   Ú
_hashed_idrD   rG   r:   r9   Úselfs       €€€r5   Ú_build_framework_chunkz:DocugamiLoader._parse_dgml.<locals>._build_framework_chunk‚   sŸ   ø€ ä Ÿ™ X§]¡]×%9Ñ%9Ó%;Ó<×FÑFÓHˆJä˜8Ÿ>™>Ü˜
Ü! =Ü# ]Ü˜x×1Ñ1Ü˜Ÿ™ðˆHð —=‘=ˆDÙ&Ø×@Ò@Ø—O‘OÐ$;Ô<äØ!Ð"8 D×$8Ñ$8Ð9Ø!ôð r7   )r!   r   r(   r'   r#   r$   )Úlxmlr=   ÚImportErrorÚdgml_utils.modelsr?   Údgml_utils.segmentationr@   r   ÚparseÚioÚBytesIOÚgetrootr!   r   r(   r'   r#   r$   rD   r2   rK   ÚparentrC   r&   Úlistr/   )rR   r8   r9   r:   r=   r?   r@   rS   ÚtreeÚrootÚ	dg_chunksÚframework_chunksrA   Úframework_chunkÚchunk_idÚframework_parent_chunkÚ	parent_ids   ` ``             r5   Ú_parse_dgmlzDocugamiLoader._parse_dgmlj   s‡  ú€ ð	Ý"ð	Ý/Ý:ð	¨Uð 	´x÷ 	ð. �{‰{œ2Ÿ:™: gÓ.Ó/ˆØ�|‰|‹~ˆáØØ ×0Ñ0Ø ×0Ñ0Ø&*×&DÑ&DØ!×2Ñ2Ø!×2Ñ2Ø$(×$@Ñ$@ô
ˆ	ð 13ÐÛ!ˆHÙ4°XÓ>ˆOØ&×/Ñ/×3Ñ3´FÓ;ˆHÚØ-<Ð  Ñ*Ø—?“?Ù-CÀHÇOÁOÓ-TÐ*Ø 6× ?Ñ ?× CÑ CÄFÓ K�IÚ Ð%;×%HÓ%HØGP˜×0Ñ0°×1CÑ1CÑDØ6LÐ(¨Ò3ð "ô Ð$×+Ñ+Ó-Ó.Ð.øôA ò 	Üð=óð ð	ûô ò 	ÜðCóð ð	ús   …E$ ŒE< Å$E9Å<Fc                 óB  — | j                   › d|› d�}g }|rˆt        j                  |dd| j                  › �i¬«      }|j                  r7|j                  «       }|j                  |d   «       |j                  dd«      }nt        d	|› d
|j                  › d�«      ‚|rŒˆ|S )z1Gets all document details for the given docset IDú	/docsets/z
/documentsÚAuthorizationúBearer )ÚheadersÚ	documentsÚnextNúFailed to download ú
 (status: Ú))	r   Úrequestsr2   r   ÚokÚjsonÚextendÚ	ExceptionÚstatus_code)rR   r)   ÚurlÚall_documentsÚresponseÚdatas         r5   Ú_document_details_for_docset_idz.DocugamiLoader._document_details_for_docset_idµ   s±   € à—‘�
˜) I ;¨jÐ9ˆØˆáÜ—|‘|ØØ(¨G°D×4EÑ4EÐ3FÐ*GÐHôˆHð �{Š{Ø—}‘}“�Ø×$Ñ$ T¨+Ñ%6Ô7Ø—h‘h˜v tÓ,‘äØ)¨#¨¨j¸×9MÑ9MÐ8NÈaÐPóð ò ð Ðr7   c                 óD  — | j                   › d|› �}g }|rŠt        j                  d|dd| j                  › �ii ¬«      }|j                  r7|j                  «       }|j                  |d   «       |j                  dd«      }nt        d	|› d
|j                  › d�«      ‚|rŒŠ|S )z0Gets all project details for the given docset IDz/projects?docset.id=ÚGETri   rj   ©rk   rz   r   rm   Nrn   ro   rp   )
r   rq   Úrequestr   rr   rs   rt   r2   ru   rv   )rR   r)   rw   Úall_projectsry   rz   s         r5   Ú_project_details_for_docset_idz-DocugamiLoader._project_details_for_docset_idÊ   s¸   € à—‘�
Ð.¨y¨kÐ:ˆØˆáÜ×'Ñ'ØØØ(¨G°D×4EÑ4EÐ3FÐ*GÐHØô	ˆHð �{Š{Ø—}‘}“�Ø×#Ñ# D¨Ñ$4Ô5Ø—h‘h˜v tÓ,‘äØ)¨#¨¨j¸×9MÑ9MÐ8NÈaÐPóð ò ð  Ðr7   Úprojectc                 óÄ  — |j                  t        «      }| j                  › d|› d�}g }i }|r›t        j                  d|dd| j
                  › �ii ¬«      }|j                  r7|j                  «       }|j                  |d   «       |j                  dd	«      }n-|j                  d
k(  r|S t        d|› d|j                  › d�«      ‚|rŒ›|D �]y  }|j                  d«      }	|j                  d«      }
|j                  d«      }|	dk(  sŒ=|
sŒ@|sŒC|t           }i }t        j                  d|
› d�dd| j
                  › �ii ¬«      }|j                  rå	 ddlm} |j                  t        j                   |j"                  «      «      }|j%                  «       }|j&                  }|j)                  d|¬«      }|D ]u  }|j)                  d|¬«      d   j*                  }dj-                  |j)                  d|¬«      d   j/                  «       «      j1                  «       }|d	| j2                   ||<   Œw |||<   �Œjt        d|
› d�dz   «      ‚ |S # t        $ r t        d«      ‚w xY w)z#Gets project metadata for all filesz
/projects/z/artifacts/latestr}   ri   rj   r~   Ú	artifactsrm   Ni”  rn   ro   rp   r   rw   Údocumentzreport-values.xmlz/contentr   r<   r>   z
//pr:Entry)Ú
namespacesz./pr:HeadingÚ z
./pr:Valuez	/content z (status: {response.status_code}))r2   rK   r   rq   r   r   rr   rs   rt   rv   ru   rT   r=   rU   rX   rY   rZ   r8   r[   Únsmapr   rG   ÚjoinÚitertextÚstripr"   )rR   r‚   Ú
project_idrw   Úall_artifactsÚper_file_metadatary   rz   ÚartifactÚartifact_nameÚartifact_urlÚartifact_docr%   rD   r=   Úartifact_treeÚartifact_rootÚnsÚentriesÚentryÚheadingÚvalues                         r5   Ú_metadata_for_projectz$DocugamiLoader._metadata_for_projectá   s•  € à—[‘[¤Ó(ˆ
à—‘�
˜* Z LÐ0AÐBˆØˆà"$ÐÙÜ×'Ñ'ØØØ(¨G°D×4EÑ4EÐ3FÐ*GÐHØô	ˆHð �{Š{Ø—}‘}“�Ø×$Ñ$ T¨+Ñ%6Ô7Ø—h‘h˜v tÓ,‘Ø×%Ñ%¨Ò,à(Ð(äØ)¨#¨¨j¸×9MÑ9MÐ8NÈaÐPóð ò ô& &ˆHØ$ŸL™L¨Ó0ˆMØ#Ÿ<™<¨Ó.ˆLØ#Ÿ<™<¨
Ó3ˆLàÐ 3Ó3ºÊØ%¤fÑ-�Ø!#�ô $×+Ñ+ØØ#�n HÐ-Ø,°¸×8IÑ8IÐ7JÐ.KÐLØô	�ð —;’;ðÝ.ð %*§K¡K´·
±
¸8×;KÑ;KÓ0LÓ$M�MØ$1×$9Ñ$9Ó$;�MØ&×,Ñ,�BØ+×1Ñ1°,È2Ð1ÓN�GÛ!(˜Ø"'§+¡+¨nÈ +Ó"LÈQÑ"O×"TÑ"T˜Ø #§¡Ø!ŸK™K¨À˜KÓDÀQÑG×PÑPÓRó!ç™%›'ð ð -2Ð2L°D×4LÑ4LÐ,M˜ Ò)ð ")ð 19Ð% fÓ-ä#Ø-¨l¨^¸9ÐEØ<ñ=óð ðK &ðT !Ð øô- 'ò Ü)ðIóð ðús   ÅI
É
IÚdocument_idÚadditional_metadatac                 ó  — | j                   › d|› d|› d�}t        j                  d|dd| j                  › �ii ¬«      }|j                  r| j                  |j                  ||¬«      S t        d	|› d
|j                  › d�«      ‚)zLoad chunks for a document.rh   z/documents/z/dgmlr}   ri   rj   r~   )r8   r9   r:   rn   ro   rp   )	r   rq   r   r   rr   rf   r8   ru   rv   )rR   r›   r)   r9   rœ   rw   ry   s          r5   Ú_load_chunks_for_documentz(DocugamiLoader._load_chunks_for_document(  s§   € ð —‘�
˜) I ;¨k¸+¸ÀeÐLˆä×#Ñ#ØØØ$¨°×0AÑ0AÐ/BÐ&CÐDØô	
ˆð �;Š;Ø×#Ñ#Ø ×(Ñ(Ø+Ø(;ð $ó ð ô Ø% c U¨*°X×5IÑ5IÐ4JÈ!ÐLóð r7   c                 ó^  — g }| j                   �r!| j                  �r| j                  | j                  «      }| j                  r%|D �cg c]  }|t           | j                  v sŒ|‘Œ }}| j                  | j                  «      }i }|rO| j                  rC|D ]>  }| j                  |«      }|D ]&  }||vr	||   ||<   Œ||   j                  ||   «       Œ( Œ@ |D ]S  }	|	t           }
|	j                  t        «      }|j                  |
«      }|| j                  |
| j                  ||¬«      z  }ŒU |S | j                  r_| j                  D ]P  }t        |«      }t        |d«      5 }|| j                  |j!                  «       |j"                  ¬«      z  }ddd«       ŒR |S c c}w # 1 sw Y   ŒcxY w)zLoad documents.)r›   r)   r9   rœ   Úrb)r8   r9   N)r   r)   r{   r*   rK   r�   r,   rš   rP   r2   rL   rž   r+   r   Úopenrf   Úreadr   )rR   ÚchunksÚ_document_detailsÚdÚ_project_detailsÚcombined_project_metadatar‚   rD   Úfile_idÚdocr%   Údoc_nameÚdoc_metadataÚpathÚfiles                  r5   ÚloadzDocugamiLoader.loadD  s¾  € à!#ˆà×Ó §£à $× DÑ DÀTÇ^Á^Ó TÐØ× Ò á0ó%Ù0˜!°A´f±IÀ×ARÑARÒ4R’AÐ0ð "ð %ð  $×BÑBÀ4Ç>Á>ÓRÐØ9;Ð%Ù D×$QÒ$Qó  0�GØ#×9Ñ9¸'ÓB�HÛ#+˜Ø"Ð*CÑCØAIÈ'ÑARÐ5°gÒ>à5°gÑ>×EÑEÀhÈwÑFWÕXñ	 $,ð  0ó )�ØœV™�ØŸ7™7Ô#4Ó5�Ø8×<Ñ<¸VÓD�Ø˜$×8Ñ8Ø &Ø"Ÿn™nØ"*Ø(4ð	 9ó ñ ‘ð	 )ð( ˆð �_Š_àŸœ�Ü˜D“z�Ü˜$ Ô%¨Ø˜d×.Ñ.Ø $§	¡	£Ø&*§i¡ið /ó ñ �F÷ &Ð%ð (ð ˆùòK%÷> &Ð%ús   ÁFÁ#FÅ#/F#Æ#F,	)NN),Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚDEFAULT_API_ENDPOINTr   ÚstrÚ__annotations__ÚosÚenvironr2   r   r   r   Úintr!   r"   r#   Úboolr$   r&   r'   r(   r)   r*   r	   r
   r   r,   r   Úclassmethodr   r   r6   Úbytesr   r   r   rf   r{   r�   rš   rž   r®   © r7   r5   r   r      s  … ñð
 $€CˆÓ#Ø+à"$§*¡*§.¡.Ð1CÓ"D€L�(˜3‘-ÓDØ/à€O�SÓØ,à€O�SÓØSà"Ð˜Ó"Ø/à"Ð�dÓ"Ø8à#$Ð˜SÓ$ØKà!€M�3Ó!Ø)à"Ð�dÓ"Ø9à&*Ð˜tÓ*ð'ð  $€Iˆx˜‰}Ó#Ø,à,0€L�(˜8 C™=Ñ)Ó0Ø/à˜ %¨¨c¨	Ñ"2Ñ3Ñ4Ó4Ø&à59Ð,¨dÓ9ØVá˜(Ô#Øð¨d°3¸°8©nð Àò ó ó $ðð. (,Ø59ñ	I/àðI/ð   ‘}ðI/ð "*¨'Ñ!2ð	I/ð
 
ˆh‰óI/ðV¸ð ÀÀdÁó ð*¸ð ÀÀTÁ
ó ð.E!¨Tð E!°dó E!ðV (,Ø15ñàðð ðð   ‘}ð	ð
 & gÑ.ðð 
ˆh‰óð8-�d˜8‘nô -r7   r   )%rE   rY   Úloggingr¶   Úpathlibr   Útypingr   r   r   r   r   r	   r
   rq   Úlangchain_core._api.deprecationr   Úlangchain_core.documentsr   Úpydanticr   r   Ú)langchain_community.document_loaders.baser   Ú
TABLE_NAMErJ   rK   rM   rL   rN   rO   ÚPROJECTS_KEYr³   Ú	getLoggerr¯   Úloggerr   r¼   r7   r5   Ú<module>rÈ      sœ   ðÛ Û 	Û Û 	Ý ß F× FÑ Fã Ý 6Ý -ß /å @à2€
à€	Ø	€ØÐ ØÐ Ø€Ø
€Ø€à<Ð à	ˆ×	Ñ	˜8Ó	$€ñ Ø
ØØ:ôô
N�Z ó Nóñ
Nr7   