hUddlZddlmZddlmZddlZddlZddlZddlm Z ejjejjejje ZejjdeddlmZejj%eddZejj)eredeee ned dd lmZdaeed <ejj%ed dZdZGddeZGddeZe defdZedddeZejAdddZ!ejEded d!ed"efd#Z#e$d$k(rRejJd%d&Z& e'ejJd'd(Z(ed*e&d+e(ejTd,e&e(d-.yy#e)$rd)Z(Y/wxYw)/N)FastAPI) BaseModel)asynccontextmanager) load_dotenvdataz.envz2[API SERVER] Caricamento variabili d'ambiente da: ) dotenv_pathz][API SERVER] ATTENZIONE: File .env non trovato. I servizi che richiedono API keys falliranno.) JarvisKernelkernelconfigz config.yamlc@|jdd}t|y)z>Callback per stampare i log del kernel sulla console dell'API.messageN)getprint)log_datar s ;/mnt/ssd/data/python-lab/Jarvis-Cognitive/api/api_server.pyconsole_loggerr'sll9b)G WIc*eZdZUdZeed<dZeed<y) QueryRequestz;Modello per una richiesta di query dall'interfaccia utente.querydefault session_idN)__name__ __module__ __qualname____doc__str__annotations__rrrrr3sE JJrrc&eZdZUdZeed<eed<y) QueryResponsez%Modello per una risposta dal backend.answer request_idN)rrrrrrr rrr"r"8s/ KOrr"appcNKtdtjdd}tt|at j dtt jtddt r+tdt jtd yyw) zv Gestore del ciclo di vita. Viene eseguito all'avvio di FastAPI, Inizializza e avvia il Kernel di Jarvis. zF[API SERVER] Evento di avvio: Inizializzazione del Kernel di Jarvis... AGENT_PROFILEaurelio) config_path profile_namezlog:new_messagez:[API SERVER] Kernel avviato e pronto a ricevere richieste.Nz=[API SERVER] Evento di arresto: Fermo del Kernel di Jarvis...z[API SERVER] Kernel fermato.) rosgetenvr r)r subscribe_to_eventrstartstop)r%r*s rlifespanr0@sz RS99_i8L k MF  /@ LLN FG  MN  ,-sB#B%zJarvis Cognitive APIz6API per interagire con il backend cognitivo di Jarvis.z1.0.0)title descriptionversionr0/zEndpoint di controllo stato)summaryc dddS)zGEndpoint di base per verificare che il server sia attivo e funzionante.okuJarvis Cognitive API è attiva.)statusr r r rr read_rootr9fs'H IIrz/askzInvia una query a Jarvis)response_modelr5requestreturncttj}td|d|jdt s t d|St jd}|s t d|S |j|j|j}td|t ||S#t$r+}td |d |t d ||cYd }~Sd }~wwxYw) z Endpoint principale per la comunicazione. Riceve una query, la passa al CognitiveService e restituisce la sua risposta. z![API SERVER] Ricevuta query (ID: z): ''u'ERRORE: Il Kernel non è inizializzato.)r#r$CognitiveServiceu5ERRORE: Il CognitiveService non è attivo nel Kernel.z&[API SERVER] Risposta generata per ID z;[API SERVER] ERRORE durante l'elaborazione della richiesta z: u$Si è verificato un errore interno: N) ruuiduuid4rrr r" get_serviceaskr Exception)r;r$cognitive_servicer#es r ask_jarvisrGks TZZ\"J -j\gmm_A NO $MZdee**+=> $[hrssg#&&w}}g6H6HI 6zlCDFzBB g KJrds *wwrwwrwwx/HIJ <  77<< ff 577>>( >xj IJH% ik$ ggll<=A  9 I...8 H   34J5J&8RSg ggTg8 z 299V[ )D9299VV,-