
    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dS )    Nc                    g }| }t          |t                    s| g}t                      }|D ]*}t          j        d|          }d}d}	 |d                                         }nV#  t          d           t          d           t          d           t          d           t          |           |cY c S xY w|D ]x}	|	d         d                                         }
||
k    rNi }|	d	         |d	<   d
}	 |d         }n#  Y nxY w||d<   d}	 |d         }n#  Y nxY w||d<   d}	 |d         }t          |          }n#  Y nxY w|dk    r=t          t          |	d                   dz            }|	d         |         d         |d<   nt          |	d                   dz
  }t          |                    |                    t          t          |          dz
            z  }t          t          |dz
            |z            }|	d         |         d         |d<   |                    |           d} nz|dk    rt          j        d|z   dz              ,|S )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                      @/home/debian/html/nutritwin/resources/KCALLMActivityUtilities.pygetBestSolutionsr2      s    E Ggt$$ '!!F DO DO";33	&k''))GG	/000/000/000.!!!#JJJLLLLL 1	 1	BZ%++--F&   "$II ":HHD"*J 	 #GIID(G &	 #K 0I !8	 B BIID 	)) R\!2!21!455F#%h<#7#?CLL#&r(|#4#4q#8L"'Y(?(?"@"@5VWXCYCY"YKeL1$455CDDC#%h<#4V#<CL S!!!_ !b 5==N=G#MNNN Ls1   
A%%AB87D  DDD'D??Ec                 x    | }|                     d          dk    r|                    dd          }|dk    rd}|S )NLevelr   veryIntensevery intense)findreplace)r   
oIntensitys     r1   r   r   d   sI    Jw2%%''44
]""#
    c                  
    g dS )N)lowmoderatehighintenser7    rA   r;   r1   r   r   o   s    AAAAr;   c                  h    t           j                            t          j                    d          } | S )N	__dumps__)ospathjoingetcwddirRecs    r1   getDumpDirectoryPathrJ   t   s"    W\\")++{33FMr;   c                     t                      }t          j        |           }t          j                            ||          }t          j                            |          st          j        |           |S N)rJ   
KCALLMCoregetModelNickNamerD   rE   rF   existsmkdir)mdlrI   modeldirRess       r1   getDumpDirectoryPathByModelrT   {   s]    !##F',,EW\\&%((F7>>&!! 
Mr;   c                      t                      } t          j                            |           rt	          j        |            t          j        |            d S rL   )rJ   rD   rE   isdirshutilrmtreerP   rH   s    r1   
cleanDumpsrY      sH    !##F	w}}V fHV
Fr;   c                     t          j                    }|                    |                                            |                                }|dd         S )Nr      )hashlibsha256updateencode	hexdigest)sshash_objecthexKeys      r1   	getHexKeyrd      sJ    .""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      sl    J>Jxw-Jw#&tK'8'E#F#FJ "%d;&7
&C"D"DJ!"J~r;   c                    | d         }t          |          }t          j                            |          st          j        |           t          |           }|d         }|dk    r|}t          |          }t          j                            ||dz             }t          j	        |           }t          |d          5 }	|	                    |           |	                                 d d d            n# 1 swxY w Y   |S )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7==   
  %%J!F||vFw||FFW$455H JtE	h		 

5

               s    *C66C:=C:c                    d}d}t          | d         d                   }t          |d         d                   }||k    rd}d}t          | d         d                   }t          |d         d                   }||k    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11F{#K011F&5 {#J/00F{#J/00F&4s7Nr;   c                    t          j        d          }t          |          }t          j                            |          sdS | d         }|dk    rTt          |          }t          j                            ||dz             }t          j                            |          rdS nt          |          }t          j                            ||          }t          j                            |dz             rdS t          j                            |dz             rdS t          j                            |dz             rdS dS )	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7==   u (^F||6"" 7<<(8997>>(## 	4	
 7##7<<//7>>(V+,, 	4W^^Hw.// 	4W^^Hv-.. 	45r;   c                 n   ddd}| d         }t          |          }t          j                            |          sd|d<   d|d<   |S | d	         }t	          |          }t          j                            ||d
z             }t          j                            |          s't          d|z   dz              t          | d           |S t          |d          5 }t          j        |          }|                                 t          | |          \  }	}
|	|d<   |
|d<   d d d            n# 1 swxY w Y   |S )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      su   "

C
w-C(--F7==   D	(E

 (^FvF w||FFW$455H7>>(## !F*-SSTTTT2
 
h		 )D//

 w//CD	E
               Js   AD**D.1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      s:   				       ) ) ) )     ! ! ! !    R R Rj  B B B
        	 	 	  2  *  B         r;   