
    EXg"                         d dl Z d dlZd dlZd dlZd dlZd dlZd dl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Zd dlZd dlZd dlZd dlZd dlZd Zd ZdS )    N)Decimalc                    t          j                     }t          j        d| z              d }t          j                    }t          | ||||          }|d k    rd S d}	 t          |d         d                   }n	#  d}Y nxY wd}	 t          |d         d                   }n	#  d}Y nxY wt          j                     }||z
  |d<   t          j        d           t          j        d           t          j        |           t          j        d	           d
t          |d                   z   }t          j        |           | dk    r|dk    rd}d}t          j	        
                    dd          }t          |dd          5 }t          j        |          }|d         }|d         }|                                 d d d            n# 1 swxY w Y   d }d}t          j        |||          }|                    d          }|                    d          }t          j                     }i }t'          t          j                               |d<   t          t)          j                                                              |d<   | |d<   ||d<   ||d<   ||d<   ||d<   ||d<   ||d<   t/          |	          |d<   t/          |
          |d <   t          j        |          |d!<   |                    |"          }|d         |d#<   |S )$NzInput text: r   	solutionsingredientsactivitycputime zR--------------------------------- final result -----------------------------------zR----------------------------------------------------------------------------------zLLM CPU Time: keyszM3Dkeys.jsonrutf-8encodingAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYz	eu-west-3)aws_access_key_idaws_secret_access_keyregion_namedynamodbKCALME_PROMPT_V1V_RecordTimeV_UUIDV_PromptV_DeviceV_NutritionCountV_ActivityCountV_AppIdV_AgeV_GenderV_Longitude
V_Latitude	V_Results)Itemuuid)timeKCATraceTRACE
KCALLMCoregetDefaultModelexecuteLLMSinglelenstrospathjoinopenjsonloadcloseboto3SessionresourceTableintr#   uuid4upperr   dumpsput_item) text	imagePathimage64commentappIddeviceversionagegender	longitudelatitudetest
start_timejresultmodelomessnbnutnbactend_timescpur   r   keyPathfr
   sessionregNamer   tablecurrentTimeresultresponses                                    ?/home/debian/html/nutritwin/resources/KCALLMMainSpeechToData.pyexecuterY      sw    JN>D())) G &((E T9gwFFE }}t EE+&}566EE+&z233 y{{H*,E)N2NghhhN5Nghhhc%	"2333DN4 rzzdaii  " ',,v~66'3111 	Q9Q<<D $%8 9$()@$A!GGIII		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 - 1$9!  
 ##J//122 ikk!$TY[[!1!1~tz||,,2244x!z#z%*!"$) !!yw#z '	 2 2}&x00|"j//{ >> " 
 

 x(f Ls*   A: :B B" "B(9GGGc                 
   t           j                            ddd          }t           j                            ddd          }t           j                            |d          }t           j                            |d          }t           j                            |d          }	t           j                            |d          }
t           j                            |d	          }t          j        d
|z              t          j        d|	z              t          j        d|
z              i }t          |	dd          5 }t          j        |          }d d d            n# 1 swxY w Y   |                                 t          j        d           t          j        d| z              t          j        d           t          j
                    }t          j        || ||          }i }| |d<   ||d<   ||d<   t          j        |          |d<   g g i d|d<   d}d}|D ]A}g }i }|t          j        k    s!|t          j        k    s|t          j        k    rg |d<   d}|}|t          j        k    rt          j        }t%          j        | |||          }|t          j        k    rt)          d|z              t          j        |||          }t          j        d           t          j        d           t          j        |           t          j        d           t-          j        |d         |||          }||d         d<   |t          j        k    rt-          j        |||          }g |d <   t%          j        | |||          }t          j        |||d!          }t          j        d           t          j        d           t          j        |           t          j        d           d"|d         d#}t          j        |          |d         d<   |t          j        k    r9g |d <   d}t          |
dd          5 }t          j        |          }|D ]+}|d          d$         }|d                              |           ,|                                 d d d            n# 1 swxY w Y   t%          j        | |||          }t          j        |||          }t          j        d           t          j        d           t          j        |           t          j        d           t7          j        |d         |          }t9          |          }||d         d%<   C|S )&N__deriveddata__DerivedObjectsData
FoodPictoszKcalMeDB_fr.sl3zembeddingDB.sl3zPictoMatcherNetNG_fr.jsonzDerivedSportMET.jsonzNutritionGroundingDico.jsonz	DB path: zPicto path: zSport grounding path: r   r   r   z==================================================================================================================================zPrompt from user: promptrJ   r=   intents)	nutritionr   rW   r   r   typer	   zImage to be analyzed: zP--------------------------------- LLM result -----------------------------------zP--------------------------------------------------------------------------------rW   ra   nameFr<   )rb   datafrr   )r,   r-   r.   r%   r&   r/   r0   r1   r2   KCALLMConstgetIntentListKCALLMEnginegetIntentsFromPromptcopydeepcopyINTENT_TEXT_TO_FOODINTENT_IMAGE_TO_FOODINTENT_NUTRITION_QUESTIONKCALLMPromptgetPrepromptprintrunLLMKCALLMNutritionUtilitiesgetBestSolutionsextractPortraitRobotsINTENT_TEXT_TO_ACTIVITYappendKCALLMActivityUtilitiesr*   )r<   r=   r>   r?   rJ   dataLocation
pictosPathdbPathdbEmbeddingPath	pictoPathsportGroundingnutritionGroundingjVocarQ   listIntentsr`   rK   rL   rM   intentsolsmapperportraitRoboteffectiveIntentr_   rI   respjSportsspspns                                 rX   r)   r)   |   s    7<< 13CVLLL/1A<PPJW\\,(9::Fgll<1BCCO\+FGGIW\\,0FGGNl4QRRN;'(((N>I-...N+n<=== E	iw	/	/	/ 1	!              GGIII N  X  Y  Y  YN'$.///N  X  Y  Y  Y +--K/T7ERRG EE(OE'N"E+}W--E)')rrJJE+EE W2 W2
 [444+Bb8b8bflp{  qV  gV  gV  F6NM %O>>>"-"A!.tV_m\\F 999.:;;; #)&'5AAGN2NmnnnN7###Nmnnn+<WZ=PRXZikpqqD.2E+{+ >>> !9 NtU[]g h h "$v%24WW '-fgueLLr"""qrrrw'''qrrr &
0CDD15t1D1Dk":. {:::  F6NMncG<<< )A,,! / /BV*T*C6N))#....			               ".tVV]SSF #)&'5AAG N2NmnnnN7###Nmnnn*;GJ<OQXYYDIIE-1E+z* Ls%   <EE!$E!=AR  R$	'R$	)r,   rj   r0   argparserequestssqlite3r$   r3   r#   decimalr   rs   rx   ro   rh   rf   r'   KCADBProcessorUtilitiesKCAProcKCALLMTracer%   rY   r)        rX   <module>r      s    				                                       ) ) ) )    
_ _ _FB B B B Br   