
    Ð{i                         S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
Jr  S SKJr  S SKJr  S\\   S\\   S	\\   S
\\   S\\\4   4
S jrS\\   S\\   S	\\   S
\\   S\\   S\S\S\\\4   4S jrg)    )ListDictAnyOptional)DocumentAnalyst)validate_entity_consistency)calculate_credit_scoreScoringInput)classify_risk)make_credit_decisiondocument_resultsinput_company_name
input_nuitinput_meses_atividadereturnc           	         U  Vs/ s H-  n[        USS5      (       d  M  [        US0 5      =(       d    0 PM/     nnU=(       d    SU=(       d    SUS.n[        UUS9nUR                  S0 5      n[        UR                  SS5      5      n	[	        UR                  S	S
5      5      U	S:  UR                  S5      b  UR                  S5      OS[	        UR                  SS
5      5      UR                  SS5      S.$ s  snf )uR   Constrói entity_features a partir dos documentos e do input para risk_classifier.extracted_entitiesN )company_namenuitmonths_activity)
input_dataextracted_entities_listsignalscompany_name_similarityg        
nuit_matchFgffffff?activity_vs_registration_okTofficial_issuer_detectedpenalty)r   company_name_matchactivity_months_matchissuer_verifiedr   )getattrr   getfloatbool)
r   r   r   r   rextracted_listr   resultr   sims
             KC:\Users\dkayr\PycharmProjects\Credit_Scoring_plataform\src\app\pipeline.py_build_entity_featuresr,      s    "!A1*D1 	3',22!   +0b b0J
 ) .F jjB'G
5s;
<C7;;|U;<!Sj;;45A ")-J!K,F NO::i- !s
   C:C:filesfaturamento_mensalvalor_credito
prazo_diasc                    [        5       nUR                  U 5      n[        UUUU5      n	[        UUU=(       d    SUUU[	        U5      S9n
[        U
UU	SS9n[        UUUUR                  R                  S0 5      U	UUUUR                  R                  S5      S9	n[        UR                  UR                  UR                  UR                  0 UR                  EUUUR                  UR                  S.ES	9nUUUUS
.$ )z0
Pipeline oficial end-to-end do Credit Scoring.
r   )r   r   meses_atividader.   r/   r0   documentos_submetidosN)scoring_inputr   entity_featuresbank_featuresdocument_signalsbank_statement_features)	requested_valuerequested_term_daysdoc_resultsdoc_signalsr5   r   r   r   r6   )r/   r0   recommended_max_valuerecommended_term_days)score
risk_class
confidencereasonsfeatures_used)decisionriskr?   	documents)r   analyze_documentsr,   r
   lenr	   r   rC   r$   r   r?   r@   rA   rB   r=   r>   )r-   r   r   r   r.   r/   r0   analystr   r5   r4   score_outputrE   rD   s                 r+   run_credit_pipelinerK   1   s:   " G007
 -	O !'-2-#!"23M *#)'	L %&$ ..223ErJ'-3"00445NO
D $  ??**
((
*$%)%?%?%)%?%?
H$ %	     N)typingr   r   r   r   6src.infra.document_analysis.analyzers.document_analystr   Csrc.infra.document_analysis.validators.entity_consistency_validatorr   src.core.scoring.scoring_enginer	   r
   !src.core.decision.risk_classifierr   !src.core.decision.decision_enginer   strintr,   r%   rK    rL   r+   <module>rV      s    , , R < B3i   $C=	
 
#s(^D]9] !] 	]
 $C=] !] ] ] 
#s(^]rL   