
    Fg                         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Zd dlZd Zd Zd Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zy)    Nc                    g }| }t        |t              s| g}t               }|D ][  }t        j                  d|      }d}d}	 |d   j                         }|D ]  }	|	d   d   j                         }
||
k(  s i }|	d	   |d	<   d
}	 |d   }||d<   d}	 |d   }||d<   d}	 |d   }t        |      }|dk(  r)t        t        |	d         dz        }|	d   |   d   |d<   nkt        |	d         dz
  }t        |j                  |            t        t        |      dz
        z  }t        t        |dz
        |z        }|	d   |   d   |d<   |j                  |       d} n |dk(  sAt        j                  d|z   dz          ^ |S #  t        d       t        d       t        d       t        d       t        |       |cY c S xY w#  Y BxY w#  Y =xY w#  Y -xY w)Nz	activity:F namez***************************z*    Wrong JSON format    *zObject dump:frtrigramr   durationeventunknown	intensitylevels   codelevel   Tz Warning: no activity found for '')
isinstancelistgetLevelOfActivityKCAUtilignorePrefixlowerprintremoveIntensityArtefactintlenfloatindexappendKCATraceTRACE)iSolsjSportDBfsolsactListr   aaactfsolnameLLMjsnameDBsolr   	eventTimer   medValnbLevelSportspeechLevelidxs                      EE:\wamp\www\apps\calme\nutritwin\resources\KCALLMActivityUtilities.pygetBestSolutionsr2      sJ    E Ggt$'!F DO"";3	&k'')G  1	BZ%++-F&  "$II ":H #+J 	 #GI  )G &	 #K 0I !8	 BI
 	) R\!21!45F#%h<#7#?CL#&r(|#4q#8L"'Y(?"@5VWXCY"YKeL1$45CDC#%h<#4V#<CL S!c1	f 5=NN=G#MNIDON L	/0/0/0.!#JLs0   FGGG;GGGGc                 d    | }|j                  d      dk7  r|j                  dd      }|dk(  rd}|S )NLevelr   veryIntensevery intense)findreplace)r   
oIntensitys     r1   r   r   d   s=    Jw2%''4
]"#
    c                  
    g dS )N)lowmoderatehighintenser7    rA   r;   r1   r   r   o   s    AAr;   c                  j    t         j                  j                  t        j                         d      } | S )N	__dumps__)ospathjoingetcwddirRecs    r1   getDumpDirectoryPathrJ   t   s!    WW\\"))+{3FMr;   c                     t               }t        j                  |       }t        j                  j                  ||      }t        j                  j                  |      st        j                  |       |S N)rJ   
KCALLMCoregetModelNickNamerD   rE   rF   existsmkdir)mdlrI   modeldirRess       r1   getDumpDirectoryPathByModelrT   {   sO    !#F'',EWW\\&%(F77>>&!
Mr;   c                      t               } t        j                  j                  |       rt	        j
                  |        t        j                  |        y rL   )rJ   rD   rE   isdirshutilrmtreerP   rH   s    r1   
cleanDumpsrY      s5    !#F	ww}}VfHHV
r;   c                     t        j                         }|j                  | j                                |j	                         }|dd S )Nr      )hashlibsha256updateencode	hexdigest)sshash_objecthexKeys      r1   	getHexKeyrd      s<    .."Kryy{#""$F!B<r;   c                     i }| d   |d<   | d   |d<   t        | d   d         |d<   t        | d   d         |d<   d|d	<   |S )
NpromptrR   	solutions	nutritionnutritionCountactivityactivityCountr   profileCountr   )jres
dumpResults     r1   extractSummaryrp      sf    J>Jxw-Jw#&tK'8'E#FJ "%d;&7
&C"DJ!"J~r;   c                    | d   }t        |      }t        j                  j                  |      st        j                  |       t        |       }|d   }|dk(  r|}t        |      }t        j                  j                  ||dz         }t        j                  |       }t        |d      5 }	|	j                  |       |	j                          d d d        |S # 1 sw Y   |S xY w)NrR   rf   r   .jsonw)rT   rD   rE   rV   rP   rp   rd   rF   jsondumpsopenwriteclose)
rn   	imagePathrQ   rI   ro   rf   rc   filePathsdumpfiles
             r1   recordResultr}      s    
w-C(-F77== 
  %J!F|vFww||FFW$45H JJtE	h	 

5

 	 s   +"CC!c                     d}d}t        | d   d         }t        |d   d         }||k7  rd}d}t        | d   d         }t        |d   d         }||k7  rd}d	}||fS )
Nr   r   rg   rh   i  z%Not the same number of nutrition hitsrj   i  z$Not the same number of activity hitsrm   )jres1jres2rcmsgnbNut1nbNut2nbAct1nbAct2s           r1   compareResultsr      s    	
B
C {#K01F{#K01F&5 {#J/0F{#J/0F&4s7Nr;   c                 ^   t        j                  d      }t        |      }t        j                  j                  |      sy| d   }|dk7  rOt        |      }t        j                  j                  ||dz         }t        j                  j                  |      ryyt        |      }t        j                  j                  ||      }t        j                  j                  |dz         ryt        j                  j                  |dz         ryt        j                  j                  |dz         ryy)	Nr   Frf   rr   Tz.pngz.jpegz.jpg)	rM   getModelFromFamilyrT   rD   rE   rV   rd   rF   rO   )rn   image64rQ   rI   rf   rc   rz   s          r1   alreadyExistsr      s    

'
'
+C(-F77==  (^F|6" 77<<(8977>>(#  7#77<</77>>(V+,WW^^Hw./WW^^Hv-.r;   c                 (   ddd}| d   }t        |      }t        j                  j                  |      sd|d<   d|d<   |S | d	   }t	        |      }t        j                  j                  ||d
z         }t        j                  j                  |      st        d|z   dz          t        | d       |S t        |d      5 }t        j                  |      }|j                          t        | |      \  }	}
|	|d<   |
|d<   d d d        |S # 1 sw Y   |S xY w)Nr   r   )r   r   rR   i  r   zNo dump directoryr   rf   rr   zDump for prompt 'z$' does not exist, it will be createdr)rT   rD   rE   rV   rd   rF   rO   r   r}   rv   rt   loadrx   r   )rn   jrcrQ   rI   rf   rc   rz   r|   jresRefr   r   s              r1   checkResultr      s   "
C
w-C(-F77== D	(E

 (^FvF ww||FFW$45H77>>(#!F*-SSTT2
 
h	 ))D/

 w/CD	E
 J Js   >?DD)rD   copyrt   timerW   r\   base64KCADBProcessorUtilitiesKCAProcKCALLMTracer   KCALLMUtilitiesr   rM   r2   r   r   rJ   rT   rY   rd   rp   r}   r   r   r   rA   r;   r1   <module>r      sf    	       )  ! RjB
	2*B r;   