Ë
    µŒj  ã                   ó^   — d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 dZ G d„ de
«      Zy	)
é    )ÚPath)ÚIteratorÚUnion)Úurlparse)ÚDocument)Ú
BaseLoaderzShttps://readers.llmsherpa.com/api/document/developer/parseDocument?renderFormat=allc                   ó’   — e Zd ZdZdddefdeeef   dedededef
d	„Z	e
d
edefd„«       Ze
	 dd
edededefd„«       Zdee   fd„Zy)ÚLLMSherpaFileLoaderaD  Load Documents using `LLMSherpa`.

    LLMSherpaFileLoader use LayoutPDFReader, which is part of the LLMSherpa library.
    This tool is designed to parse PDFs while preserving their layout information,
    which is often lost when using most PDF to text parsers.

    Examples
    --------
    from langchain_community.document_loaders.llmsherpa import LLMSherpaFileLoader

    loader = LLMSherpaFileLoader(
        "example.pdf",
        strategy="chunks",
        llmsherpa_api_url="http://localhost:5010/api/parseDocument?renderFormat=all",
    )
    docs = loader.load()
    TÚchunksÚ	file_pathÚnew_indent_parserÚ	apply_ocrÚstrategyÚllmsherpa_api_urlc                 ó  — 	 ddl }g d¢}||vrt        d|› d|› d�«      ‚| j                  |«      st        d|› �«      ‚| j	                  |||¬	«      | _        || _        t        |«      | _        y# t        $ r t        d«      ‚w xY w)
zInitialize with a file path.r   NzKllmsherpa package not found, please install it with `pip install llmsherpa`)Úsectionsr   ÚhtmlÚtextzGot z' for `strategy`, but should be one of `Ú`zInvalid URL: )Úurlr   r   )	Ú	llmsherpaÚImportErrorÚ
ValueErrorÚ_is_valid_urlÚ_validate_llmsherpa_urlr   r   Ústrr   )Úselfr   r   r   r   r   r   Ú_valid_strategiess           úx/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/document_loaders/llmsherpa.pyÚ__init__zLLMSherpaFileLoader.__init__   s¾   € ð	Ûò CÐØÐ,Ñ,ÜØ�x�jð !)Ø):Ð(;¸1ð>óð ð
 ×!Ñ!Ð"3Ô4Ü˜}Ð->Ð,?Ð@ÓAÐAØ×/Ñ/Ø!Ø/Øð 0ó 
ˆŒð !ˆŒÜ˜Y›ˆ�øô+ ò 	Üð*óð ð	ús   ‚A0 Á0Br   Úreturnc                 óp   — t        | «      }t        |j                  «      xr t        |j                  «      S )zCheck if the url is valid.)r   ÚboolÚnetlocÚscheme)r   Úparseds     r   r   z!LLMSherpaFileLoader._is_valid_urlA   s*   € ô ˜#“ˆÜ�F—M‘MÓ"Ò:¤t¨F¯M©MÓ':Ð:ó    c                 óî   — t        | «      }| }d|j                  vrd|j                  vrt        d| › �«      ‚d|j                  vr|dz   }|rd|j                  vr|dz   }|rd|j                  vr|d	z   }|S )
z$Check if the llmsherpa url is valid.z/api/parseDocumentz%/api/document/developer/parseDocumentzInvalid LLMSherpa URL: zrenderFormat=allz?renderFormat=allzuseNewIndentParser=truez&useNewIndentParser=truezapplyOcr=yesz&applyOcr=yes)r   Úpathr   Úquery)r   r   r   r&   Ú	valid_urls        r   r   z+LLMSherpaFileLoader._validate_llmsherpa_urlG   sŒ   € ô
 ˜#“ˆØˆ	Ø ¨¯©Ñ3Ø3¸6¿;¹;ÑFäÐ6°s°eÐ<Ó=Ð=à V§\¡\Ñ1Ø!Ð$7Ñ7ˆIÙÐ!:À&Ç,Á,Ñ!NØ!Ð$>Ñ>ˆIÙ˜¨v¯|©|Ñ;Ø! OÑ3ˆIàÐr'   c              #   ón  K  — ddl m}  || j                  «      }|j                  | j                  «      }| j
                  dk(  rht        |j                  «       «      D ��cg c];  \  }}t        |j                  dd¬«      | j                  ||j                  dœ¬«      ‘Œ= c}}E d{  –—†  | j
                  d	k(  ret        |j                  «       «      D ��cg c]8  \  }}t        |j                  «       | j                  ||j                  d
œ¬«      ‘Œ: c}}E d{  –—†  | j
                  dk(  r0t        |j                  «       d| j                  i¬«      gE d{  –—†  | j
                  dk(  r1t        |j                  «       d| j                  i¬«      gE d{  –—†  yyc c}}w 7 Œþc c}}w 7 Œ’7 ŒU7 Œ­w)z
Load file.r   )ÚLayoutPDFReaderr   T)Úinclude_childrenÚrecurse)ÚsourceÚsection_numberÚsection_title)Úpage_contentÚmetadataNr   )r0   Úchunk_numberÚ
chunk_typer   r0   r   )Úllmsherpa.readersr-   r   Úread_pdfr   r   Ú	enumerater   r   Úto_textÚtitler   Úto_context_textÚtagÚto_html)r   r-   Údocs_readerÚdocÚsection_numÚsectionÚ	chunk_numÚchunks           r   Ú	lazy_loadzLLMSherpaFileLoader.lazy_load\   s²  è ø€ õ 	6á% d§h¡hÓ/ˆØ×"Ñ" 4§>¡>Ó2ˆà�=‰=˜JÒ&ô -6°c·l±l³nÔ,Eô
ñ -FÑ(�K ô Ø!(§¡À$ÐPT Ó!Uà"&§.¡.Ø*5Ø)0¯©ñöð -Fò
÷ 
ð 
ð �=‰=˜HÒ$ô )2°#·*±*³,Ô(?ô
ñ )@Ñ$�I˜uô Ø!&×!6Ñ!6Ó!8à"&§.¡.Ø(1Ø&+§i¡iñöð )@ò
÷ 
ð 
ð �=‰=˜FÒ"äØ!$§¡£à  $§.¡.ðôð÷ ð ð �=‰=˜FÒ"äØ!$§¡£à  $§.¡.ðôð÷ ñ ð #ùóA
ð 
úó
ð 
øðøðúsa   ‚AF5Á!A F!Â!F5Â(F'Â)/F5Ã=F)ÄF5ÄF/Ä>F5ÅF1Å>F5ÆF3ÆF5Æ)F5Æ1F5Æ3F5N)TT)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚDEFAULT_APIr   r   r   r#   r    Ústaticmethodr   r   r   r   rE   © r'   r   r
   r
      s¿   „ ñð* #'ØØ Ø!,ñ (à˜˜d˜Ñ#ð (ð  ð (ð ð	 (ð
 ð (ð ó (ðD ð;˜3ð ; 4ò ;ó ð;ð
 àDHñØðØ%)ðØ=Aðà	òó ðð(2à	�(Ñ	ô2r'   r
   N)Úpathlibr   Útypingr   r   Úurllib.parser   Úlangchain_core.documentsr   Ú(langchain_community.document_loaders.pdfr   rJ   r
   rL   r'   r   Ú<module>rR      s'   ðÝ ß "Ý !å -å ?àc€ôB˜*õ Br'   