Team Ai
Apppublic

afulara/PythonicRAG-FastAPI-React

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes
text_utils.cpython-312.pyc32 linesDownload Raw Back to __pycache__
1�

2X��g����ddlZddlmZddlZGd�d�ZGd�d�ZGd�d�Zed	k(r�ed3�Zej�e�Z4e5jej�Z
eee
��ee
d�ed�ee
d�ed�ee
d
�ed�ee
d�yy)�N)�Listc�6�eZdZd	dedefd�Zd�Zd�Zd�Zd�Zy)6�TextFileLoader�path�encodingc�.�g|_||_||_y�N)�	documentsrr)�selfrrs   �w/Users/aqsa/AI Projects/AIE6 Class Projects/AIE6-DeployPythonicRAG-Fastapi-react-app/backend/aimakerspace/text_utils.py�__init__zTextFileLoader.__init__s�������	� ��
�c�6�tjj|j�r|j�ytjj	|j�r,|jjd�r|j
�ytd��)N�.txtz;Provided path is neither a valid directory nor a .txt file.)�osr�isdir�load_directory�isfile�endswith�	load_file�7ValueError�rs r�loadzTextFileLoader.loadsa��
�7�7�=�=����#����!�
�W�W�^�^�D�I�I�
&�4�9�9�+=�+=�f�+E��N�N���M��
rc���t|jd|j��5}|jj	|j��ddd�y#1swYyxYw)N�r�r)�openrrr8�append�read)r�fs  rrzTextFileLoader.load_filesE��
�$�)�)�S�4�=�=�
9�	,�Q��N�N�!�!�!�&�&�(�+�	,�	,�	,�s�*A�Ac�n�tj|j�D]�\}}}|D]|}|jd�s�t	tjj||�d|j��5}|jj|j��ddd��~��y#1swY��xYw)Nrrr)9r�walkrrr�joinrr10rr)r�root�_�files�filer s      rrzTextFileLoader.load_directorys��� �g�g�d�i�i�0�	8�N�D�!�U��
8���=�=��(�������T�4�0�#��
�
��8�����-�-�a�f�f�h�7�8�8�
8�	8�8�8�s�4*B+�+B4c�:�|j�|jSr	�rr11rs r�load_documentszTextFileLoader.load_documents#����	�	���~�~�rN)zutf-8�	�__name__�12__module__�__qualname__�strr
rrrr*�rrrrs)��!�S�!�C�!�13�,�8�rrc�T�eZdZ		d14dedefd�Zdedeefd�Zdeedeefd�Zy	)�CharacterTextSplitter�15chunk_size�
chunk_overlapc�8�||kDsJd��||_||_y)Nz-Chunk size must be greater than chunk overlap)r4r5)rr4r5s   rr
zCharacterTextSplitter.__init__)s-��
��&�	;�:�	;�&�%���*��r�text�returnc��g}tdt|�|j|jz16�D]#}|j	||||jz��%|S)Nr)�range�lenr4r5r)rr7�chunks�is    r�splitzCharacterTextSplitter.split5sS�����q�#�d�)�T�_�_�t�7I�7I�%I�J�	9�A��M�M�$�q�1�t���#6�7�8�	9��
r�textsc�X�g}|D]"}|j|j|���$|Sr	)�extendr>)rr?r<r7s    r�split_textsz!CharacterTextSplitter.split_texts;s0�����	,�D��M�M�$�*�*�T�*�+�	,��
rN)i���)	r-r.r/�intr
r0rr>rBr1rrr3r3(sS��� �17+��18+��19+��#��$�s�)����c���t�C�y�rr3c�0�eZdZdefd�Zd�Zd�Zd�Zd�Zy)�	PDFLoaderrc�P�g|_||_td|j���y)Nz!PDFLoader initialized with path: )r20r�print)rrs  rr
zPDFLoader.__init__Cs$�������	�
�1�$�)�)��=�>rc	�8�td|j���tdtjj|j����tdtjj	|j����tdtjj|j����tdt
tj|j�j�dd���	t|jd�5}	ddd�|j�y#1swY�xYw#t$r)}td|j�d	t|�����d}~wt$r)}td21|j�d	t|�����d}~wwxYw)NzLoading PDF from path: z
Path exists: z	Is file: zIs directory: zFile permissions: ������rbzCannot access file at 'z': zError processing file at ')rHrr�existsrr�oct�stat�st_moderr�IOErrorrr0�	Exception)r�	test_file�es   rrzPDFLoader.loadHsB��
�'��	�	�{�3�4�
�
�b�g�g�n�n�T�Y�Y�7�8�9�:�
�	�"�'�'�.�.����3�4�5�6�
��r�w�w�}�}�T�Y�Y�7�8�9�:�
�"�3�r�w�w�t�y�y�'9�'A�'A�#B�2�3�#G�"H�I�J�	R��d�i�i��&�
�)��
�
�N�N��	
�
���	O��6�t�y�y�k��S��V�H�M�N�N���	R��9�$�)�)��C��A��x�P�Q�Q��	R�s<�:D7�D+�D7�+D4�0D7�7	F�$E$�$F�0$F�Fc��t|jd�5}tj|�}d}|jD]}||j�dzz
}�|jj|�ddd�y#1swYyxYw)NrK��22)rr�PyPDF2�	PdfReader�pages�extract_textr23r)rr'�24pdf_readerr7�pages     rrzPDFLoader.load_file\s��
�$�)�)�T�
"�		(�d��)�)�$�/�J��D�"�(�(�
3����)�)�+�d�2�2��
3�
�N�N�!�!�$�'�		(�		(�		(�s�AA:�:Bc���tj|j�D]�\}}}|D]�}|j�j	d�s�#tjj||�}t
|d�5}tj|�}d}|jD]}	||	j�dzz
}�|jj|�ddd�����y#1swY��xYw)Nz.pdfrKrUrV)
rr"r�lowerrr#rrWrXrYrZr25r)26rr$r%r&r'�	file_pathr r[r7r\s27          rrzPDFLoader.load_directoryhs��� �g�g�d�i�i�0�	4�N�D�!�U��
4���:�:�<�(�(��0� "�����T�4� 8�I��i��.�4�!�%+�%5�%5�a�%8�28� "��$.�$4�$4�?�D� �D�$5�$5�$7�$�$>�>�D�?����-�-�d�3�4�4�
4�	4�4�4�s
�8AC�C(c�:�|j�|jSr	r)rs rr*zPDFLoader.load_documentswr+rNr,r1rrrFrFBs#��?�S�?�29R�(30(�
4�rrF�__main__zdata/KingLear.txtz--------�����������)r�typingrrWrr3rFr-�loaderr�splitterrBr31r<rHr;r1rr�<module>rhs���	��
���D��47�7�t�z��
�/�
0�F�32�K�K�M�$�&�H�
�
!�
!�&�"2�"2�
3�F�	�#�f�+��	�&��)��	�*��	�&��)��	�*��	�&��*��	�*��	�&��*��r