o
    Õ¬·i‚I  ã                   @   s:  d dl m Z mZmZ d dlmZmZ d dlmZmZ d dl	m
Z
mZmZmZmZ d dlmZmZmZmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZmZmZ d d
l Z eddgdZ!e! "d¡de#fdd„ƒZ$e! %d¡defdd„ƒZ&e! "d¡de#fdd„ƒZ'e! %d¡defdd„ƒZ(e! "d¡de#fdd„ƒZ)d
S ) é    )ÚdatetimeÚtimezoneÚ	timedelta)Ú	APIRouterÚHTTPException)ÚChatRequestÚ
LogRequest)Úsave_chat_logÚget_history_from_dbÚget_a_part_statusÚsave_usernameÚget_username)Úsave_daily_logÚget_daily_log_from_dbÚget_today_daily_logÚcheck_today_daily_log_exists)Úget_gemini_modelÚlogger)Útypes)Úclassify_and_save)Úget_current_dailyÚcreate_result_rowÚupdate_result_condition_scoreÚget_avg_condition_scoreNz/goal-skill-t/apiÚGeneral)ÚprefixÚtagsz/status/a-part/{session_id}Ú
session_idc                 Ã   ó   t | ƒ}d|iS )u;   
    í”„ëŸ°íŠ¸ì—ì„œ A/B íŒŒíŠ¸ ë¶„ê¸°ìš©ìœ¼ë¡œ í˜¸ì¶œ
    Ústatus)r   )r   r   © r    ú8/home/air/goalskill_t/back/app/routers/general_router.pyÚget_a_part_status_api   s   €r"   z/chatÚrequestc           '      Ã   sz  z¥t | jƒ}g }|dkr/t| jd| jƒ t| jƒ}t| jdd| jdI d H  t| jdƒ nt| jd| jƒ t| jƒ}t| jdd| jdI d H }t	t
ddƒ}t |¡}| ¡ }| d	¡}d
}d }	d }
d}|D ]f}| dd¡}| dd
¡}| dd
¡}d }|r‰t|tƒrˆ|}n	 |rÄ|jd u r›|jt	jd |¡}n| |¡}| d	¡}|d|› d|› d|› d7 }| ¡ }	|}
| ¡ |krÃ|d7 }qh||› d|› d7 }qh|dkrót| jƒ}|dkråd}t| j|ƒ n|dkró|d }t| j|ƒ |dkr&t| jƒ}d}|r|r||v rd}n|s	 d
}|rd|› d}nd}d|› d}nst| jƒ}|r3|› dnd}|j}d|  krDdk rIn nd}nd|  krUd k rZn nd!}nd"}t| jƒ}d
}| jrnd#| j› d$}d
}|dkrd%|› d&|› d'}n|r…d(}nd)}d*|› d+|› d,|› d-|› d.|› d/}tƒ }d0|› d1}|› |› d2| j› d3}|jjd4tjdtj|d5gd6gd7d8id9} z¢t  !| j"¡}!|! d:| j" #¡ ¡}"|dkr|! d;¡}#|#rt$| j|#ƒ t| jd<|"ƒ t| jd=d|"dI d H  |"d dd>œW W S t| jd<|"ƒ t| jd=d|"dI d H  |"d d?œW W S |! d@d¡}$t| jd<|"ƒ t| jd=d|"dI d H  |$r^t| jƒ}|dkr^t%| jƒ}%|%d ur^t&| j||%ƒ t' (dA|%› dB|› dC¡ |"d |$dDœW W S  t j)y§   | j" #¡ }"|dkrŒt| jd<|"ƒ t| jd=d|"dI d H  nt| jd<|"ƒ t| jd=d|"dI d H  |"d d?œ Y W S w  t*y¼ }& zt+dEt,|&ƒdF‚d }&~&ww )GNr   ÚuserÚMÚA)r   ÚsenderÚpartÚtexté   é	   )Úhoursz%Y-%m-%d %H:%MÚ r'   ÚunknownÚmessageÚ
created_at)Útzinfoú[z] z: Ú
FTuQ   
ã€æ—¢çŸ¥ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã€‘
- æ—¢ã«ç™»éŒ²ã•ã‚Œã¦ã„ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼å: uÎ   
- ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã‚’ä½¿ç”¨ã—ã¦å¿œç­”ã—ã¦ãã ã•ã„ã€‚
- ä¼šè©±å±¥æ­´ï¼ˆHistoryï¼‰ã«åå‰ãŒå«ã¾ã‚Œã¦ã„ã¦ã‚‚ã€ä¸Šè¨˜ã®ç™»éŒ²ã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶ãƒ¼åã®ã¿ã‚’ä½¿ç”¨ã—ã¦ãã ã•ã„ã€‚
u¶  
ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åã«ã¤ã„ã¦ - é‡è¦ã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®åå‰ã¯ã¾ã ç‰¹å®šã•ã‚Œã¦ã„ã¾ã›ã‚“ï¼ˆãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“ï¼‰ã€‚
- ä¼šè©±å±¥æ­´ã«åå‰ãŒå«ã¾ã‚Œã¦ã„ã¦ã‚‚ã€ãã‚Œã‚’æŽ¨æ¸¬ã—ãŸã‚Šä»®å®šã™ã‚‹æ ¹æ‹ ã¨ã—ã¦ä½¿ç”¨ã—ãªã„ã§ãã ã•ã„ã€‚
- çµ¶å¯¾ã«åå‰ã‚’æŽ¨æ¸¬ã—ãŸã‚Šä»®å®šã—ãŸã‚Šã—ãªã„ã§ãã ã•ã„ã€‚
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ˜Žç¤ºçš„ã«åå‰ã‚’è¨€ã†ã¾ã§ã€Œâ—‹â—‹ã•ã‚“ã€ã®ã‚ˆã†ãªå‘¼ç§°ã¯ä½¿ç”¨ã—ãªã„ã§ãã ã•ã„ã€‚
- åå‰ã‚’å°‹ã­ã‚‹ã¨ãã¯ã€è‡ªç„¶ã«ã€Œåå‰ã‚’æ•™ãˆã¦ãã ã•ã„ã€ã¨èžã„ã¦ãã ã•ã„ã€‚
- ä¼šè©±å±¥æ­´ï¼ˆHistoryï¼‰ã«éŽåŽ»ã®åå‰ãŒå«ã¾ã‚Œã¦ã„ã¦ã‚‚ç„¡è¦–ã—ã¦ãã ã•ã„ã€‚ ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒä»Šã“ã®çž¬é–“ã«åå‰ã‚’è¨€ã†ã¾ã§å¾…ã£ã¦ãã ã•ã„ã€‚
- 'å†ã³'ã€'ã‚‚ã†ä¸€åº¦'ã€'å†åº¦'ã¨ã„ã£ãŸè¡¨ç¾ã¯çµ¶å¯¾ã«ä½¿ã‚ãªã„ã§ãã ã•ã„ã€‚ æœ€åˆã«åå‰ã‚’èžãã‚ˆã†ã«ã€è‡ªç„¶ã«è³ªå•ã—ã¦ãã ã•ã„ã€‚
ut  
ã€GOALSKILLã«ã¤ã„ã¦ã€‘
- ã‚ãªãŸã¯GOALSKILLã®ã‚ªãƒ³ãƒœãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚³ãƒ¼ãƒã§ã™ã€‚
- **æ³¨æ„**: ä»¥ä¸‹ã®GOALSKILLã®ç‰¹å¾´èª¬æ˜Žã¯ã€Aãƒ‘ãƒ¼ãƒˆæœªå®Œäº†ã®åˆå›žåˆ©ç”¨è€…ã«ã¯**ä¸€åˆ‡è¨€åŠã—ãªã„ã§ãã ã•ã„**ã€‚åå‰ã‚’èžì€ í›„ì—ë§Œ ê°„ëžµí•˜ê²Œ ì–¸ê¸‰í•˜ì„¸ìš”ã€‚

ã€Aãƒ‘ãƒ¼ãƒˆãŒæœªå®Œäº†ã®å ´åˆ - åˆå›žåˆ©ç”¨è€…ã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯GOALSKILLã«åˆã‚ã¦è¨ªã‚Œã¾ã—ãŸã€‚
- **é‡è¦**: ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæŒ¨æ‹¶ï¼ˆä¾‹ï¼š"ã“ã‚“ã«ã¡ã¯"ã€"åˆã‚ã¾ã—ã¦"ã€"hi"ãªã©ï¼‰ã‚’ã™ã‚‹å ´åˆã€GOALSKILLã®ç‰¹å¾´ã‚„è©³ç´°ãªèª¬æ˜Žã¯ä¸€åˆ‡ã›ãšã€ç°¡å˜ã«è‡ªå·±ç´¹ä»‹ã ã‘ã‚’ã—ã¦ãã ã•ã„ã€‚
- ãã®å¾Œã™ãã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®åå‰ã‚’å°‹ã­ã¦ãã ã•ã„ã€‚
- 'å†ã³'ã‚„'ã‚‚ã†ä¸€åº¦'ã®ã‚ˆã†ãªè¡¨ç¾ã¯çµ¶å¯¾ã«ä½¿ã‚ãªã„ã§ãã ã•ã„ã€‚ åˆã‚ã¦åå‰ã‚’å°‹ã­ã‚‹å ´åˆã«ã®ã¿è©²å½“ã—ã¾ã™ã€‚
- åå‰ã‚’èžã„ãŸå¾Œã€ãªãœã€ŒGOALæŽ¢ã—ã€ãŒé‡è¦ãªã®ã‹ã‚’ç°¡å˜ã«èª¬æ˜Žã—ã€ãƒœã‚¿ãƒ³ã‚’æ¡ˆå†…ã—ã¦ãã ã•ã„ã€‚
* èª¬æ˜Žã¯ç°¡æ½”ã«ï¼ˆé•·ã™ãŽã‚‹ã¨èª­ã¿ã¥ã‚‰ã„ã®ã§ï¼‰:ã€Œâ—‹â—‹ã•ã‚“ã€ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚ ç›®æ¨™ãŒæ˜Žç¢ºã«ãªã‚‹ã¨ã€å­¦ç¿’ã‚’ç¶šã‘ã‚‹å‹•æ©ŸãŒç”Ÿã¾ã‚Œã¾ã™ã€‚ ç›®æ¨™ã‚’è¦‹ã¤ã‘ã‚‹ãŸã‚ã«ã€ŒGOALæŽ¢ã—ã€ãƒœã‚¿ãƒ³ã‚’æŠ¼ã—ã¦ã¿ã¦ãã ã•ã„ã€‚ "
* å˜ã«ã€Œãƒœã‚¿ãƒ³ã‚’æŠ¼ã—ã¦ãã ã•ã„ã€ã¨è¨€ã†ã ã‘ã§ãªãã€ãªãœå¿…è¦ãªã®ã‹ã‚’ç°¡æ½”ã«èª¬æ˜Žã—ã¦ãã ã•ã„ã€‚

uÿ  

ã€å¿œç­”ä¾‹ - å¿…ãšã“ã®å½¢å¼ã«å¾“ã†ã“ã¨ã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæŒ¨æ‹¶ã—ãŸå ´åˆï¼ˆä¾‹ï¼šã€Œhiã€ã€Œã“ã‚“ã«ã¡ã¯ã€ï¼‰: "ã“ã‚“ã«ã¡ã¯ï¼ãŠä¼šã„ã§ãã¦å¬‰ã—ã„ã§ã™ã€‚GOALSKILLã®AIã§ã™ã€‚ãŠåå‰ã‚’æ•™ãˆã¦ã„ãŸã ã‘ã¾ã™ã‹ï¼Ÿ"
  * **ç¦æ­¢**: GOALSKILLã®ç‰¹å¾´ã€ç›®çš„ã€æ©Ÿèƒ½ãªã©ã®é•·ã„èª¬æ˜Žã¯ä¸€åˆ‡ã—ãªã„ã§ãã ã•ã„ã€‚
  * **å¿…é ˆ**: æŒ¨æ‹¶ + ç°¡æ½”ãªè‡ªå·±ç´¹ä»‹ + åå‰ã‚’å°‹ã­ã‚‹ï¼ˆ3æ–‡ä»¥å†…ï¼‰
- åå‰ å›žç­”å¾Œ: "â—‹â—‹ã•ã‚“ã€ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚ç›®æ¨™ãŒæ˜Žç¢ºã«ãªã‚Œã°ã€å­¦ç¿’ã‚’ç¶šã‘ã‚‹ãƒ¢ãƒãƒ™ãƒ¼ã‚·ãƒ§ãƒ³ãŒç”Ÿã¾ã‚Œã¾ã™ã€‚ç›®æ¨™ã‚’è¦‹ã¤ã‘ã‚‹ãŸã‚ã«ã€ŒGOALæŽ¢ã—ã€ãƒœã‚¿ãƒ³ã‚’æŠ¼ã—ã¦ã¿ã¦ãã ã•ã„ã€‚"
  * **å¿…é ˆ**: ç°¡æ½”ã«ï¼ˆ3æ–‡ä»¥å†…ï¼‰

ã™ã¹ã¦æ—¥æœ¬èªžã§ã€æ¸©ã‹ã„å£èª¿ã§ãŠè©±ã—ãã ã•ã„ã€‚

ã€é‡è¦ãªæ³¨æ„äº‹é …ã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒåå‰ã‚’å…¥åŠ›ã™ã‚‹ã¨ã€JSONå½¢å¼ã§åå‰ã‚‚è¿”ã—ã¦ãã ã•ã„ã€‚
- ä¾‹: {"answer": "ç”°ä¸­ã•ã‚“ã€ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚ ã€ŒGOALæ¤œç´¢ã€ãƒœã‚¿ãƒ³ã‚’æŠ¼ã—ã¦ãã ã•ã„ã€‚ ", "username": "ç”°ä¸­"}
- åå‰ãŒå«ã¾ã‚Œã¦ã„ãªã„å ´åˆã¯usernameãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’çœç•¥ã—ã¦ãã ã•ã„ã€‚
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒåå‰ã‚’è¨€ã†å‰ã«ã€çµ¶å¯¾ã«åå‰ã‚’æŽ¨æ¸¬í•˜ê±°ë‚˜ä»®å®šã—ãªã„ã§ãã ã•ã„ã€‚
u   ã•ã‚“u	   ã‚ãªãŸé   é   u   ãŠã¯ã‚ˆã†é   u   ã“ã‚“ã«ã¡ã¯u   ã“ã‚“ã°ã‚“ã¯u   - ä»Šæ—¥ã®å¤©æ°—: u&   ï¼ˆä¼šè©±ä¸­ã«è‡ªç„¶ã«è§¦ã‚Œã¦OKï¼‰u°   
ã€åˆå›žãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ - å¿…ãšã“ã®å½¢å¼ã§å¿œç­”ã€‘
- æŒ¨æ‹¶ã¨ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³è³ªå•ã‚’ **2ã¤ã®å¹ãå‡ºã—** ã«åˆ†ã‘ã¦å¿œç­”ã—ã¦ãã ã•ã„ã€‚
- å½¢å¼: "u   ã€uÂ   ï¼âœ¨|ä»Šæ—¥ã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã¯ã©ã†ã‹ãªï¼ŸðŸ˜Š"
- ã“ã®å½¢å¼ã‚’åŽ³å®ˆã—ã¦ãã ã•ã„ã€‚é›‘è«‡ã‚„ä»–ã®è©±é¡Œã¯ä¸€åˆ‡å…¥ã‚Œãªã„ã§ãã ã•ã„ã€‚
- show_report_button: false
uê   
ã€ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯æ¸ˆã¿ã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯æ—¢ã«ä»Šæ—¥ã®ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å®Œäº†ã—ã¦ã„ã¾ã™ã€‚
- ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã¸ã®å…±æ„Ÿ + è¤’ã‚ã‚‹ + å­¦ç¿’é ‘å¼µã£ã¦ã¨åŠ±ã¾ã™ã€‚
- show_report_button: false
uá  
ã€ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³å›žç­”å¾Œ - ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã¸èª˜å°Žã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³å›žç­”ã«å…±æ„Ÿã—ã¦ãã ã•ã„ã€‚
  - ãƒã‚¸ãƒ†ã‚£ãƒ–ï¼ˆå…ƒæ°—ã€è‰¯ã„ï¼‰â†’ ã€Œæœ€é«˜ã ã­ï¼âœ¨ã€ã¨è¤’ã‚ã‚‹
  - ãƒã‚¬ãƒ†ã‚£ãƒ–ï¼ˆç–²ã‚ŒãŸã€çœ ã„ï¼‰â†’ ã€Œãã£ã‹ã€å¤§å¤‰ã ã£ãŸã­ã€ã¨å…±æ„Ÿ + ã€Œã§ã‚‚å°‘ã—ã ã‘ã‚„ã£ã¦ã¿ã‚ˆã†ï¼ã€ã¨åŠ±ã¾ã™
- å…±æ„Ÿã®å¾Œã€å¿…ãšãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã«èª˜å°Žã—ã¦ãã ã•ã„ã€‚
  - ä¾‹: "ãã®èª¿å­ã§ã€ä»Šæ—¥ã®å­¦ç¿’æº–å‚™ã‚’å§‹ã‚ã‚ˆã†ï¼ä¸‹ã®ãƒœã‚¿ãƒ³ï¼ˆãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ï¼‰ã‚’æŠ¼ã—ã¦ã­ðŸš€"
- show_report_button: true
- **é‡è¦**: é•·ã„é›‘è«‡ã¯ã—ãªã„ã§ãã ã•ã„ã€‚2ã€œ3æ–‡ã§å…±æ„Ÿâ†’èª˜å°Žã‚’å®Œçµã•ã›ã¦ãã ã•ã„ã€‚
u|   
# Role
ã‚ãªãŸã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¦ªã—ã„å‹äººã§ã‚ã‚Šã€å­¦ç¿’ãƒ¡ãƒ³ã‚¿ãƒ¼ã§ã™ã€‚

# Current Status
- ç¾åœ¨æ™‚åˆ»: u    
- ä»Šæ—¥ã®ä¼šè©±ã‚¿ãƒ¼ãƒ³æ•°: u   
- ãƒ¦ãƒ¼ã‚¶ãƒ¼å: u  

# A'ãƒ‘ãƒ¼ãƒˆã®ç›®çš„
ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ä»Šæ—¥ã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã‚’ç¢ºèªã—ã€ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ï¼ˆå­¦ç¿’æº–å‚™ï¼‰ã¸ã‚¹ãƒ ãƒ¼ã‚ºã«èª˜å°Žã™ã‚‹ã“ã¨ã€‚
**é›‘è«‡ã‚’åºƒã’ãšã€2ã€œ3ã‚¿ãƒ¼ãƒ³ã§å®Œçµã•ã›ã¦ãã ã•ã„ã€‚**

# ä¼šè©±ãƒ•ãƒ­ãƒ¼
u½   

# ãƒˆãƒ¼ãƒ³
- è¦ªã—ã¿ã‚„ã™ãæ¸©ã‹ã„å‹é”å£èª¿ã€‚çµµæ–‡å­—ã‚’é©åº¦ã«ä½¿ç”¨ã€‚
- ã€Œ|ã€ã§å¹ãå‡ºã—ã‚’åˆ†å‰²ï¼ˆæœ€å¤§2ã€œ3å€‹ï¼‰ã€‚
- æ”¹è¡Œ(
)ã§ã¯ãªãã€Œ|ã€ã‚’ä½¿ç”¨ã€‚
uz  

# Motivationï¼ˆã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ãŒæ‚ªã„å ´åˆï¼‰
- ã€Œä¼‘ã¿ã¾ã—ã‚‡ã†ã€ã¨å®‰æ˜“ã«åŒæ„ã—ãªã„ã€‚
- å…±æ„Ÿ â†’ ã€Œ5åˆ†ã ã‘ã‚„ã£ã¦ã¿ã‚ˆã†ã€ã¨Baby Stepã‚’ææ¡ˆ â†’ ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã¸èª˜å°Žã€‚

ã€é‡è¦ã€‘
- å¿œç­”ã¯å¿…ãšJSONå½¢å¼ã§è¿”ã—ã¦ãã ã•ã„ã€‚
- ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ: {"answer": "AIã®å›žç­”...", "show_report_button": true/false}
z

[Conversation History]:
z

u   ãƒ¦ãƒ¼ã‚¶ãƒ¼: u   
ã‚¢ã‚·ã‚¹ã‚¿ãƒ³ãƒˆ:zgemini-2.5-flash)r)   )ÚroleÚpartsÚresponse_mime_typezapplication/json)ÚmodelÚcontentsÚconfigÚanswerÚusernameÚbotÚI)r=   Úthinking_processÚshow_findgoal_button)r=   rA   Úshow_report_buttonu   [A' ì™„ë£Œ] condition_score=u    â†’ result(daily=ú))r=   rA   rC   éô  ©Ústatus_codeÚdetail)-r   r   r	   r/   r
   r   r   r   r   r   r   r   ÚnowÚdateÚstrftimeÚgetÚ
isinstancer1   ÚreplaceÚutcÚ
astimezoner   r   Úhourr   Úweather_conditionr   ÚmodelsÚgenerate_contentr   ÚContentÚPartÚjsonÚloadsr)   Ústripr   r   r   r   ÚinfoÚJSONDecodeErrorÚ	Exceptionr   Ústr)'r#   r   Úhistory_rowsÚclassify_resultÚJSTrI   Úcurrent_dateÚcurrent_time_strÚhistory_textÚlast_message_dateÚlast_message_datetimeÚtoday_turn_countÚrowr'   Úmsgr0   Úrow_dtÚcreated_at_strÚcurrent_dailyÚexisting_usernameÚhistory_has_nameÚusername_instructionÚsystem_promptÚusername_displayÚcurrent_hourÚgreeting_wordÚhas_written_diary_todayÚweather_noteÚcondition_flow_instructionÚclientÚhistory_contextÚfull_promptÚresponseÚresultr=   r>   rC   Ú	avg_scoreÚer    r    r!   Ú
chat_basic   s*  €








€



€
þ
ò
#

ý
ýûúùòì ÿý






ý

õ€ÿr}   z/history/{session_id}c              
   Ã   s>   z	t | ƒ}d|iW S  ty } ztdt|ƒd‚d }~ww )NÚhistoryrE   rF   )r
   r\   r   r]   )r   Úrowsr|   r    r    r!   Úget_historyU  s   €
€ÿr€   z/logÚreqc              
   Ã   sH   zt | j| j| jƒ ddiW S  ty# } ztdt|ƒd‚d }~ww )Nr   ÚokrE   rF   )r	   r   r'   r/   r\   r   r]   )r   r|   r    r    r!   Úlog_message_  s   €
€ÿrƒ   z/username/{session_id}c                 Ã   r   )Nr>   )r   )r   r>   r    r    r!   Úget_username_apig  s   €r„   )*r   r   r   Úfastapir   r   Úapp.schemas.schemasr   r   Úapp.models.general_moduler	   r
   r   r   r   Úapp.models.report_db_moduler   r   r   r   Úapp.core.configr   r   Úgoogle.genair   Ú!app.services.goalskill_classifierr   Úapp.models.goalskill_moduler   r   r   r   rW   ÚrouterrL   r]   r"   Úpostr}   r€   rƒ   r„   r    r    r    r!   Ú<module>   s4    þ  :	