o
    Ð.f–!  ã                   @   s¨   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d„ Zdd„ ZdS )é    N)ÚDecimalc                  C   s0  t   ¡ }t d|  ¡ d }t |¡}t| |||ƒ}|d krd S d}z
t|d d ƒ}W n   d}Y d}z
t|d d ƒ}W n   d}Y t   ¡ }|| |d< t d¡ t d¡ t |¡ t d	¡ d
t|d ƒ }t |¡ | dkr|
dkrd}d}tj	 
dd¡}t|ddd}t |¡}|d }|d }| ¡  W d   ƒ n1 s¨w   Y  d }d}tj|||d}| d¡}| d¡}t   ¡ }i }tt   ¡ ƒ|d< tt ¡ ƒ ¡ |d< | |d< ||d< ||d< ||d< ||d< ||d< ||d< t|ƒ|d< t|	ƒ|d < t |¡|d!< |j|d"}|d |d#< |S )$NzInput text: r   Ú	solutionsZingredientsÚactivityZ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)Zaws_access_key_idZaws_secret_access_keyZregion_nameÚdynamodbZKCALME_PROMPT_V1ZV_RecordTimeZV_UUIDZV_PromptZV_DeviceZV_NutritionCountZV_ActivityCountZV_AppIdZV_AgeZV_GenderZV_LongitudeZ
V_LatitudeZ	V_Results)ZItemÚuuid)ÚtimeÚKCATraceÚTRACEÚ
KCALLMCoreÚgetModelFromFamilyÚexecuteLLMSingleÚlenÚstrÚosÚpathÚjoinÚopenÚjsonÚloadÚcloseÚboto3ZSessionZresourceZTableÚintr   Zuuid4Úupperr   ÚdumpsZput_item) ÚtextÚimage64ÚcommentÚappIdÚdeviceÚversionÚageÚgenderÚ	longitudeÚlatitudeÚtestZ	llmFamilyZ
start_timeÚjresultÚmodelÚomessÚnbnutÚnbactZend_timeZscpur   r   ZkeyPathÚfr   ZsessionZregNamer   ÚtableZcurrentTimeÚresultÚresponse© r6   úDE:\wamp\www\apps\calme\nutritwin\resources\KCALLMMainSpeechToData.pyÚexecute   s~   







üý

ÿr8   c              	   C   sl  t j ddd¡}t j ddd¡}t j |d¡}t j |d¡}t j |d¡}t j |d¡}	t d	| ¡ t d
| ¡ t d| ¡ i }
t|ddd}t |¡}
W d   ƒ n1 sZw   Y  | ¡  t d¡ t d|  ¡ t d¡ t	 
¡ }t || ||¡}i }| |d< t |¡|d< ||d< g g i dœ|d< d}d}|D ]}g }i }|t	jks¶|t	jks¶|t	jkr>g |d< d}|}|t	jkrÆt	j}t | |||¡}t |||¡}t d¡ t d¡ t |¡ t d¡ t |d ||
¡}||d d< |t	jkr=t |||¡}g |d< t | |||¡}t |||d¡}t d¡ t d¡ t |¡ t d¡ d|d d œ}t |¡|d d< qŸ|t	jkr³g |d< d}t|ddd$}t |¡}|D ]}|d d! }|d  |¡ qY| ¡  W d   ƒ n	1 syw   Y  t | |||¡}t |||¡}t d¡ t d¡ t |¡ t d¡ t |d |¡}t|ƒ}||d d"< qŸ|S )#NZ__deriveddata__ZDerivedObjectsZDataZ
FoodPictoszKcalMeDB_fr.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: ÚpromptÚintentsr.   )Ú	nutritionr   r5   r   r   Útyper   zP--------------------------------- LLM result -----------------------------------zP--------------------------------------------------------------------------------r5   r;   ÚnameFr"   )r<   ÚdataZfrr   )r   r   r   r   r   r   r   r   r   ÚKCALLMConstÚgetIntentListÚKCALLMEngineZgetIntentsFromPromptÚcopyÚdeepcopyÚINTENT_TEXT_TO_FOODÚINTENT_IMAGE_TO_FOODÚINTENT_NUTRITION_QUESTIONÚKCALLMPromptZgetPrepromptZrunLLMÚKCALLMNutritionUtilitiesZgetBestSolutionsZextractPortraitRobotsÚINTENT_TEXT_TO_ACTIVITYÚappendÚKCALLMActivityUtilitiesr   )r"   r#   r$   r.   ZdataLocationZ
pictosPathZdbPathZ	pictoPathZsportGroundingZnutritionGroundingZjVocar2   ZlistIntentsr:   r/   r0   r1   ZintentZsolsZmapperZportraitRobotZeffectiveIntentr9   r-   ÚrespZjSportsZspZspnr6   r6   r7   r   |   s˜   ÿ


 








€

û



€r   )r   rB   r   ZargparseZrequestsZsqlite3r   r   r   Zdecimalr   rH   rK   rG   rA   r?   r   ZKCADBProcessorUtilitiesZKCAProcZKCALLMTracer   r8   r   r6   r6   r6   r7   Ú<module>   s(    c