
    o)j              	           d dl Z d dlZd dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZ d dlmZ  ej                  e      Ze G d d             Zedfd	eez  d
ededefdZd	edededefdZy)    N)	dataclassfield)Path)chunkerembedderloaderstore)DEFAULT_COLLECTIONc                   d    e Zd ZU eed<   dZeed<   dZeed<   dZeed<    e	e
      Ze
e   ed<   y)	IndexResult
collectionr   docs_processedchunks_addedchunks_skipped)default_factoryerrorsN)__name__
__module____qualname__str__annotations__r   intr   r   r   listr        //var/www/vps2.regionflexible.com/rag/indexer.pyr   r      s8    ONCL#NCd3FDI3r   r   Fsourcer   forcereturnc           
          t        |      }|rt        j                  |       t        j                  |       }|st
        j                  d|         |S |D ]M  }	 t        j                  |j                        }|s#t
        j                  d|j                          It        j                  |      }t        |      D 	cg c]  \  }}	t        |j                  ||	       }
}}	t        t!        |            D cg c]  }|j                  |d|j"                   }}t        j$                  ||
|||      \  }}|xj&                  dz  c_        |xj(                  |z  c_        |xj*                  |z  c_        t
        j-                  d|j                   d| d| d	       P |S c c}	}w c c}w # t.        $ rO}|j                   d
| }|j0                  j3                  |       t
        j                  d|        Y d }~d }~ww xY w)N)r   z!No se encontraron documentos en: zSin chunks utilizables en: )r   chunk_index   z
Indexado 'z': z chunks nuevos, z
 omitidos.z: zError indexando )r   r	   resetr   loadloggerwarningr   splittextr   r   embed	enumerate	_chunk_idrangelenmetadataupsertr   r   r   info	Exceptionr   append)r   r   r   resultdocsdocchunks
embeddingsir(   ids	metadatasaddedskippedexcmsgs                   r   index_documentsr?      s   
 J/FJ;;vD:6(CD 5	5]]388,F!<SZZLIJ!/JAJ6ARSga9SZZD1SCS s6{+ ::aH3<<HI 
 #\\*c:vyYNE7!!Q&!5(!!W,!KKSZZLE72B7):V'58 M' T  	5ZZL3%(CMM  %NN-cU344	5s?   AF5 #F5!F*$F5="F0BF5*F55	H>AHHr!   r(   c                     |  d| d|d d  }t        j                  |j                               j                         d d S )Nz::2      )hashlibsha256encode	hexdigest)r   r!   r(   keys       r   r+   r+   B   sC    HB{m2d3Bi[
1C>>#**,'113CR88r   )rC   loggingdataclassesr   r   pathlibr   ragr   r   r   r	   
rag.configr
   	getLoggerr   r%   r   r   boolr?   r   r+   r   r   r   <module>rO      s      (  0 0 )			8	$
4 4 4 )+$J++ + 	+\9c 9 93 93 9r   