o
    çþÝiR
  ã                   @   s~   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZ d	d
d
dœZdedededdfdd„ZdS )uW   Phase 3ï¼šæ‰¹é‡è§¦å‘å‘é‡åŒ–ï¼ˆtax_adaptive + parent_child + reference_extractionï¼‰é    N)Úlogger)Útext)ÚSessionLocalé   )ÚVECTORIZE_BATCH_SIZEÚREQUEST_DELAY)ÚImportStateÚtax_adaptiveT)Úsplitter_typeÚenable_parent_childÚenable_reference_extractionÚstateÚbase_urlÚtokenÚreturnc                 C   sÒ  |   d¡rt d¡ d S d|› ddœ}|  ¡ }d}t d|› ¡ tj||dd	d
¦}	 tƒ }| tdƒ|t	dœ¡ 
¡ }W d   ƒ n1 sHw   Y  |sPnz|D ]v\}	z|jd|	› td}
|
 ¡  W n ty‚ } zt d|	› d|› ¡ W Y d }~nd }~ww z| d|	› d¡}
|
 ¡  |d7 }t d|	› ¡ W n ty» } zt d|	› d|› ¡ W Y d }~nd }~ww |	}|  |¡ t t¡ qRq-W d   ƒ n1 sÔw   Y  t d|› d¡ |  d¡ d S )NÚ3u   Phase 3 å·²å®Œæˆï¼Œè·³è¿‡zBearer zapplication/json)ÚAuthorizationzContent-Typer   u   Phase 3 å¼€å§‹ï¼Œcursor=é   T)r   ÚheadersÚtimeoutÚfollow_redirectsa&  
                    SELECT knowledge_doc_id FROM tax_documents
                    WHERE is_imported = true AND knowledge_doc_id IS NOT NULL
                      AND knowledge_doc_id > :cursor
                    ORDER BY knowledge_doc_id ASC
                    LIMIT :limit
                )ÚcursorÚlimitz/api/v1/knowledge/documents/)Újsonu+   æ›´æ–°åˆ†å—é…ç½®å¤±è´¥: knowledge_doc_id=z error=z
/vectorizer   u%   å‘é‡åŒ–å·²è§¦å‘: knowledge_doc_id=u(   è§¦å‘å‘é‡åŒ–å¤±è´¥: knowledge_doc_id=u%   âœ“ Phase 3 å®Œæˆï¼šè§¦å‘å‘é‡åŒ– u#    æ¡ï¼ˆCelery åŽå°å¼‚æ­¥å¤„ç†ï¼‰)Úis_phase_doner   ÚinfoÚget_phase3_cursorÚhttpxÚClientr   Úexecuter   r   ÚfetchallÚputÚSPLITTER_CONFIGÚraise_for_statusÚ	ExceptionÚwarningÚpostÚdebugÚerrorÚset_phase3_cursorÚtimeÚsleepr   Úmark_phase_done)r   r   r   r   r   Ú	triggeredÚclientÚdbÚrowsÚknowledge_doc_idÚrespÚe© r4   úU/lsinfo/ai/hellotax_ai/data_center/backend/app/services/import_kb/phase3_vectorize.pyÚ
run_phase3   s\   


úúÿ	
þ"€ÿ"€ÿ
Ýô&r6   )Ú__doc__r*   r   Úlogurur   Ú
sqlalchemyr   Úapp.databaser   Úconfigr   r   r   r   r"   Ústrr6   r4   r4   r4   r5   Ú<module>   s    ý