
    vZjS                        d dl Z d dlZd dlmZmZmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ d dlZd dlZd d	lmZ d dlZd dlZd d
lmZ dZdZdZ eee          Z eee          Z  ee            e	d           de!de!fdZ"d Z#ede!fd            Z$ede!de!de!fd            Z%ede!de!fd            Z&ede!de!fd            Z'ede!de!fd            Z(ede!de!fd            Z)ede!de!de!de!de!de*fd             Z+ ed!          Z,e,-                    d"#          Z. ed$e.e  ed%d&'          e$e&e'e(e)e+e%g(          Z/d) Z0d* Z1dS )+    N)AgentRunnerfunction_toolModelSettingsFileSearchTool)set_default_openai_clientset_tracing_disabled)AsyncOpenAI)OpenAIChatCompletionsModel)load_dotenv)Any)datetime)Image)Pathzhttp://104.189.92.139:10500/v1ollamagemma4)base_urlapi_key)modelopenai_clientTusrEmailusrPassc                    d}| |d}ddd}t          j        |||          }	 |                                }|                    d          rEd|v rA|d                             d	          }|d         d
                             d          }||dS d|                    dd          iS # t          $ r}	ddt          |	           icY d }	~	S d }	~	ww xY w)N#https://api.sistemaml.net/app/loginapp_usernameapp_password4agk_XGgFnhlBCziMsF6dmx6xMHoTL1hd9cJrFJJOOMAJr828ef60!application/x-www-form-urlencodedzX-Agent-KeyContent-Typedataheaderssuccessr#   access_tokenuserid)r&   user_iderrormessageAuthentication failed.Failed to parse response: requestspostjsonget	Exceptionstr)
r   r   urlpayloadr$   responser#   tokenr)   es
             $/var/www/FlaskApp/Agent_MLCourier.pyget_Token_and_Idr;   /   s6   
/C ! G N; G }Sw@@@H
}}88I 
	6T>>L$$^44E6l6*..t44G %"   )-EFF   
 
 
:#a&&::
 	
 	
 	
 	
 	
 	

s$   A-B+ B+ +
C5CCCc                 H   t           j                            |           d                                         }|dk    r=t	          | d          5 }|                                }d d d            n# 1 swxY w Y   ny|dv rft          j        |                               d          }t          j	                    }|
                    |d           |                                }nt          d          t          j        |                              d	          }d
                    |                                                                          }	 t          j        |            t          j        |d           n"# t*          $ r}t          d          |d }~ww xY w|S )N   z.pdfrb)z.jpgz.jpegz.pngRGBPDF)formatzIFormato de archivo no soportado. Usa PDF o una imagen (.jpg, .jpeg, .png)utf-8 T)validatez$Base64 encoding failed or is invalid)ospathsplitextloweropenreadr   convertioBytesIOsavegetvalue
ValueErrorbase64	b64encodedecodejoinstrip
splitlinesremove	b64decoder3   )		file_pathfile_extf	pdf_bytesimage
pdf_buffer
pdf_base64pdf_base64_cleanr9   s	            r:   prepare_invoice_base64ra   V   s   w	**1-3355H 6)T"" 	!aI	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!	.	.	.
9%%--e44Z\\


:e
,,,''))		deee !),,33G<<Jwwz//11<<>>??H
	))D99999 H H H?@@aGH s*   A//A36A3*F   
F
FFc           	      p    d}d| i}ddddddd	d
d}t          j        |||          }t          |          S )Nz,https://api.sistemaml.net/app/password/emailemailno-cachePostmanRuntime/7.43.4*/*gzip, deflate, br
keep-aliveuser_comprateliaz
1nt3l14p1$r   )Cache-Control
User-AgentAcceptAccept-Encoding
Connectionrc   passwordr!   r"   )r/   r0   r4   )r   r5   r6   r$   r7   s        r:   reset_passwordrp   y   s_    
8C 	G $-."":	 	G }Sw@@@Hx==    tracking_numberc                     t          | |          }|d         }d| }d| dddddd	}t          j        ||
          }|                                }t	          t          |                     t          |          S )Nr&   z-https://api.sistemaml.net/app/searchTracking/Bearer rd   re   rf   rg   rh   Authorizationrj   rk   rl   rm   rn   r$   )r;   r/   r2   r1   printr4   )	r   r   rr   credsAccess_tokenr5   r$   r7   response_datas	            r:   searchTrackingr|      s     Xw//E(L
 L/
K
KC .|--)* G |C000HMMOOM& 
#m

}rq   c           
      (   t          | |          }|d         }|d         }d| }d| ddddd	d
}t          j        ||          }|                                }g }	|                    dg           D ]l}
|	                    |
                    dd          |
                    dd          |
                    dd          |
                    dd          d           mdt          |	           dt          |	          |	d}t          |          S )Nr&   r)   z,https://api.sistemaml.net/app/preAlert/list/rt   rd   re   rf   rg   rh   ru   rw   r#   trackingrC   descriptionpriceinstructions)r~   r   r   r   Tz prealertas encontrados.)r%   r+   totalr#   )r;   r/   r2   r1   appendlenr4   )r   r   ry   rz   r)   r5   r$   r7   r{   	prealertsitemoutputs               r:   prealertlist_processr      sN    Xw//E(LIG
 C
B
BC .|--)* G |C000HMMOOMI!!&"--  R0088M266XXgr** HH^R88	
 
 	 	 	 	 )nn>>>Y	 F v;;rq   c                 D   t          | |          }|d         }|d         }d}d| ddddd	d
}t          j        ||          }|                                }|                    di           }|                    dg           }	g }
d}|	D ]{}|                    dd          }|                    dd          }|                    dd          }|                    dd          }||||d}|
                    |           |dz  }|||
d}t          j        |d          S )Nr&   r)   z.https://api.sistemaml.net/app/requested-guidesrt   rd   re   rf   rg   rh   ru   rw   r#   guidesr   sh_coderC   	recipientr   thumbnailUrl)SH_Coder   total_amountphotor=   )total_shsubspackagesFensure_asciir;   r/   r2   r1   r   dumps)r   r   ry   rz   r)   r5   r$   r7   r#   packages_listresultr   packager   r   r   r   entryr   s                      r:   shsList_processr      so    Xw//E(LIG <C .|--)* G |C000H}}H
,,vr
"
"DHHXr**M F L !  ++i,,++k"--	[[,,kk.,, "(	
 
 	e % F :f51111rq   c                 D   t          | |          }|d         }|d         }d}d| ddddd	d
}t          j        ||          }|                                }|                    di           }|                    dg           }	g }
d}|	D ]{}|                    dd          }|                    dd          }|                    dd          }|                    dd          }||||d}|
                    |           |dz  }|||
d}t          j        |d          S )Nr&   r)   z0https://api.sistemaml.net/app/warehouse-packagesrt   rd   re   rf   rg   rh   ru   rw   r#   r   r   r~   rC   wrCodestatusr   )r~   	wr_numberr   r   r=   )total_wrsubsr   Fr   r   )r   r   ry   rz   r)   r5   r$   r7   r#   r   r   r   r   r~   WRsr   r   r   r   s                      r:   wrsList_processr   =  so    Xw//E(LIG >C .|--)* G |C000H}}H
,,vr
"
"DHHZ,,M F L !  ;;z2..KK$${{8B''kk.,, !	
 
 	e % F :f51111rq   c                 ^   d}| |d}ddd}t          j        |||          }	 |                                }|                    d          rd|v r|d                             d	          }|d         d
                             d          }|d         d                             d          }	|d         d
                             d          }
|||	|
|                    dd          dS d|                    dd          iS # t          $ r}ddt          |           icY d }~S d }~ww xY w)Nr   r   r   r   r    r"   r%   r#   r&   r'   r(   agentidRnamer+   zLogin success.)r&   r)   agent_idclient_namer+   r*   r,   r-   r.   )r   r   r5   r6   r$   r7   r#   r8   r)   r   r   r9   s               r:   get_credentialsr     s   
/C ! G N; G }Sw@@@H
}}88I 	6T>>L$$^44E6l6*..t44GF|G,0077Hff%))&11D !&"$"88I/?@@   )-EFF   
 
 
:#a&&::
 	
 	
 	
 	
 	
 	

s$   CD ,D 
D,D'!D,'D,invoicePathtrackdescripfobc           	         t          |            t          |           t          |           t          |           t          |           t          |           t          | |          }|d         }t          |d                   }|}	t          |	          }
|dd|||d|
d}d}d| d	d
ddddd}d}t	          |dd          5 }t          j        ||dd           d d d            n# 1 swxY w Y   t          j        |||          }|                                }t          t          |                     |	                    d          r|	                    d          }n|	                    d          }t          |          S )Nr&   r)   Amazon   prueba)consigneeIdshipper	carrierIdr~   r   r   r   invoicez-https://api.sistemaml.net/app/preAlert/creatert   rd   PostmanRuntime/7.44.0application/jsonrf   rg   rh   rv   rj   rk   r!   rl   rm   rn   zchat_log.jsonwrB   encodingF   )r   indentr1   r$   r%   r+   )
rx   r;   r4   ra   rI   r1   dumpr/   r0   r2   )r   r   r   r   r   r   ry   rz   r)   invoice_file_pathinvoice_base64json_payloadr5   r$   rY   r[   r7   r{   r   s                      r:   createPrealert_proccessr     s    
(OOO	'NNN	+	%LLL	'NNN	#JJJ
 Xw//E(L%	"##G#+,=>>N  !	 	L 
9C .|--)%* G  I 
iw	/	/	/ A1	,a@@@@A A A A A A A A A A A A A A A }Sl7CCCHMMOOM	#m

 ## ,  ++  ++v;;s   C,,C03C0zCompratelia_agent.txtrB   r   Compratelia_Agentg?auto)temperaturetool_choice)r   r   r   model_settingstoolsc                    d}d}d}d}t          | t                    rd| dg} t          |           D ]H}	t          |	t                    r1|	                    d          dk    r|	                    dd          } nIt          |           D ]X}	t          |	t                    rA|	                    dd                              d          r|	                    dd          } nYt          |           D ]}	t          |	t                    r|	                    d          d	k    r|	                    d
d          }
t          |
t                    rV	 t          j        |
          }t          |t                    rd|v rt          |d                   } n# t          $ r Y w xY wt          j
                                        d          }d|||||d}d}d}dddd}t          j        d|||d          }|                                }|d         }d}d| ddddddd }t          j        |||!          }|                                }t!          |           d S )"NrC   r'   )rolecontentr   r   r(   msg_typefunction_call_outputr   r)   z%Y-%m-%d %H:%M:%S
msg_123456)
message_idassistant_responsecustomer_idmessage_botphone_numberphone_number_idz(https://crmiq.sistemaml.org/api/v1/loginzuser=soporte&password=s0p0rt3r   rd   z$5b949b74-4434-a3fb-4e91-33f22b22f02c)zcontent-typezcache-controlzpostman-tokenPOST<   )r#   r$   timeoutr8   z.https://crmiq.sistemaml.org/api/v1/message/botrt   r   r   rf   rg   rh   r   r   )
isinstancer4   reverseddictr2   
startswithastliteral_evalr3   r   nowstrftimer/   requestr1   r0   rx   )
input_dataCustomerPhone	respuestar   r   last_msg_idlast_user_messagelast_assistant_messager)   r   r   	user_data	timestampr   r5   r6   r$   r7   	json_datar&   r{   s                        r:   chat_monitorr   <  s   KG *c"" 
 % 

 $$  dD!! 	dhhv&6&6&&@&@ $B 7 7E $$  dD!! 	dhhtR&8&8&C&CF&K&K 	((4,,KE $$ 
 
dD!! 		dhhv&6&6:P&P&PXXh++F&#&&  # 0 8 8I!)T22 yI7M7M"%i	&:";";    H ''(;<<I #/$ $* L 5C6G 8; G
 '7SUVVVHI W%L
 
:C .|--)%* G }Sl7CCCHMMOOM	-s   AF
F! F!c                    K   t          |            t          j        t          |            d {V }t	          | ||j        ||           |S )N)input)rx   r   runComprateliaAgentr   final_output)r   r   r   r   r   s        r:   AgentMLCourierr     s^       
* J/jAAAAAAAAAIM)*@___rq   )2r/   asyncioagentsr   r   r   r   r   r   r	   openair
   $agents.models.openai_chatcompletionsr   rE   dotenvr   typingr   r   r1   rQ   PILr   rL   r   pathlibr   
OLLAMA_URLOLLAMA_API_KEY
MODEL_NAMEollama_clientollama_modelr4   r;   ra   rp   r|   r   r   r   r   floatr   prompt_path	read_textr   r   r   r    rq   r:   <module>r     s     N N N N N N N N N N N N N N B B B B B B B B       K K K K K K 				                           				 



      
 .

    *)
    - ( ( (  T   $
c $
3 $
 $
 $
 $
N  F C    > *S *3 * * * * *f +3 + + + + +Z ?2c ?2C ?2 ?2 ?2 ?2B @2c @2C @2 @2 @2 @2F *
S *
# *
 *
 *
 *
Z Bc BC BS Bs B[^ Bch B B B BD d*++$$g$665	
 =SfEEE.Q`ax  zH  I   b b bJ	 	 	 	 	rq   