§
    [o×i0“  ã                   ó‚  — 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m Z  d d
l!m
Z" d dl#Z#d dl$Z$d dl%m&Z&  eddg¬¦  «        Z'e' (                    d¦  «        de)fd„¦   «         Z*e' (                    d¦  «        de)fd„¦   «         Z+e' ,                    d¦  «        defd„¦   «         Z-e' (                    d¦  «        de)fd„¦   «         Z.e' ,                    d¦  «        defd„¦   «         Z/e' (                    d¦  «        de)fd„¦   «         Z0d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_scoreÚget_recent_condition_scores)r
   N)Úgenerate_diagnostic_chatz/goal-skill-t/apiÚGeneral)ÚprefixÚtagsz/status/a-part/{session_id}Ú
session_idc              ƒ   ó,   K  — t          | ¦  «        }d|iS )u;   
    í”„ëŸ°íŠ¸ì—ì„œ A/B íŒŒíŠ¸ ë¶„ê¸°ìš©ìœ¼ë¡œ í˜¸ì¶œ
    Ústatus)r   )r    r"   s     ú"/app/app/routers/general_router.pyÚget_a_part_status_apir$      s    è è € õ
 ˜zÑ*Ô*€FØfÐÐó    z/current-daily/{session_id}c              ƒ   óL   K  — t          | ¦  «        }t          | ¦  «        }||dœS )uƒ   
    í˜„ìž¬ í•™ìŠµ ì¼ì°¨ë¥¼ ë°˜í™˜ (Display ë°” í‘œì‹œìš©)
    result í…Œì´ë¸”ì˜ MAX(daily) ê°’. ì•„ì§ ì‹œìž‘ ì „ì´ë©´ 0.
    )ÚdailyÚa_part_status)r   r   )r    r'   r(   s      r#   Úget_current_daily_apir)       s7   è è € õ ˜jÑ)Ô)€EÝ% jÑ1Ô1€MàØ&ðð ð r%   z/chatÚrequestc              ƒ   ó  ‡AK  — 	 t          | j        ¦  «        }g }|dk    r8t          | j        ¦  «        }t          | j        dd| j        ¬¦  «        ƒ d {V —† nRt          | j        d| j        ¦  «         t          | j        ¦  «        }t          | j        dd| j        ¬¦  «        ƒ d {V —†}t          t          d¬¦  «        ¦  «        }t          j
        |¦  «        }|                     ¦   «         }|                     d¦  «        }d	}d }	d }
d}|D ]}|                     d
d¦  «        }|                     dd	¦  «        }|                     dd	¦  «        }d }|rt          |t          ¦  «        r|}n	 |r©|j        €4|                     t          j        ¬¦  «                             |¦  «        }n|                     |¦  «        }|                     d¦  «        }|d|› d|› d|› dz  }|                     ¦   «         }	|}
|                     ¦   «         |k    r|dz  }Œ||› d|› dz  }Œ| j        dv r’t)          | j        ¦  «        }t+          | ||¦  «        ƒ d {V —†}|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }t          | j        dd|¬¦  «        ƒ d {V —† |||d dœS |dk    rët)          | j        ¦  «        }d}|r	|r||v rd}n|s	 d	}|rd|› d}nd}t-          | d d!¦  «        }d"|› d#}|d!k    r|› d$}n6|d%k    r|› d&}n)|d'k    r|› d(}n|d)k    rbt-          | d*d+¦  «        }t-          | d,g ¦  «        }|rd-                     |¦  «        nd+}t-          | d.d¦  «        }d	} |rd/} |› d0|› d1|› d| › d2}n´|d3k    r|› d4}n§|› d5}n d}!t)          | j        ¦  «        }|r|› d6nd7}"|j        }#d8|#cxk    rd9k     rn nd:}$nd9|#cxk    rd;k     rn nd<}$nd=}$t3          | j        ¦  «        }%d	}&| j        rd>| j        › d?}&| j        d@k    }'| j                             dAd	¦  «                             dBd	¦  «        ŠA|' ot7          ˆAfdC„dDD ¦   «         ¦  «        }(|' ot7          ˆAfdE„dFD ¦   «         ¦  «        })|'s|%s|(s|)sd}!d	}*|(rdG}*n‘|)rdH}*nŒ|'r~t9          | j        ¦  «        }+d	},|+rE|+d         }-|-dI         }.|-dJ         }/|.dKk    rdL}0n|.dMk    rdN}0n|.dOk    rdP}0n|.dQk    rdR}0ndS}0dT|0› dU},ndV},dW|$› dX|"› dY|,                     ¦   «         › dZ}*n|%rd[}*n|!rd\}*nd]}*d^|› d_|› d`|"› da|*› db|&› dc}t=          ¦   «         }1dd|› de}2| j        d@k    rdf}3n
dg| j        › }3|› |2› d|3› dh}4|1j                              ditC          j"        dtC          j#        |4¬j¦  «        g¬k¦  «        gdldmi¬n¦  «        }5	 tI          j%        |5j&        ¦  «        }6|6                     d|5j&                             ¦   «         ¦  «        }tO          j(        do|6› ¦  «         |dk    r¢|6                     dp¦  «        }7|6                     dq¦  «        }8|6                     dr¦  «        }9|7r<tS          | j        |7¦  «         t          | j        dd|¬¦  «        ƒ d {V —† |d d|7|8|9dsœS t          | j        dd|¬¦  «        ƒ d {V —† |d |8|9dtœS |6                     dud¦  «        }:|6                     dvd¦  «        };t          | j        dw|¦  «         t          | j        dd|¬¦  «        ƒ d {V —† |:ratU          | j        ¦  «        }<|<dk    rGtW          | j        ¦  «        }=|=1tY          | j        |<|=¦  «         tO          j(        dx|=› dy|<› dz¦  «         |d |:|;d{œS # tH          j-        $ r¡ |5j&                             ¦   «         }>t]          j/        d|d	|>¦  «        }>t]          j/        d}d	|>¦  «        }>t]          j/        d~d	|>¦  «                             ¦   «         }>|> 0                    d¦  «        rxd€|>v rtt]          j1        d|>t\          j2        ¦  «        }?|?r(|? 3                    d¦  «                             ¦   «         }n,|>                     d‚d	¦  «                             dƒ¦  «        }n|>}|dk    rLti          | j        dw|¦  «         tk          | j        |dd„¦  «         t          | j        dd|¬¦  «        ƒ d {V —† nKt          | j        dw|¦  «         tk          | j        |dd…¦  «         t          | j        dd|¬¦  «        ƒ d {V —† |d d†œcY S w xY w# tl          $ r#}@to          d‡tq          |@¦  «        ¬ˆ¦  «        ‚d }@~@ww xY w)‰Nr   ÚMÚA)r    ÚsenderÚpartÚtextÚuseré	   )Úhoursz%Y-%m-%d %H:%MÚ r.   ÚunknownÚmessageÚ
created_at)Útzinfoú[z] z: Ú
é   )ÚmbtiÚspiÚitÚansweru	   ã‚¨ãƒ©ãƒ¼Úreturn_to_hubFÚend_survey_panelÚI)r?   r@   rA   Úthinking_processTuQ   
ã€æ—¢çŸ¥ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã€‘
- æ—¢ã«ç™»éŒ²ã•ã‚Œã¦ã„ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼å: uÎ   
- ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã‚’ä½¿ç”¨ã—ã¦å¿œç­”ã—ã¦ãã ã•ã„ã€‚
- ä¼šè©±å±¥æ­´ï¼ˆHistoryï¼‰ã«åå‰ãŒå«ã¾ã‚Œã¦ã„ã¦ã‚‚ã€ä¸Šè¨˜ã®ç™»éŒ²ã•ã‚ŒãŸãƒ¦ãƒ¼ã‚¶ãƒ¼åã®ã¿ã‚’ä½¿ç”¨ã—ã¦ãã ã•ã„ã€‚
u¶  
ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åã«ã¤ã„ã¦ - é‡è¦ã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®åå‰ã¯ã¾ã ç‰¹å®šã•ã‚Œã¦ã„ã¾ã›ã‚“ï¼ˆãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“ï¼‰ã€‚
- ä¼šè©±å±¥æ­´ã«åå‰ãŒå«ã¾ã‚Œã¦ã„ã¦ã‚‚ã€ãã‚Œã‚’æŽ¨æ¸¬ã—ãŸã‚Šä»®å®šã™ã‚‹æ ¹æ‹ ã¨ã—ã¦ä½¿ç”¨ã—ãªã„ã§ãã ã•ã„ã€‚
- çµ¶å¯¾ã«åå‰ã‚’æŽ¨æ¸¬ã—ãŸã‚Šä»®å®šã—ãŸã‚Šã—ãªã„ã§ãã ã•ã„ã€‚
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ˜Žç¤ºçš„ã«åå‰ã‚’è¨€ã†ã¾ã§ã€Œâ—‹â—‹ã•ã‚“ã€ã®ã‚ˆã†ãªå‘¼ç§°ã¯ä½¿ç”¨ã—ãªã„ã§ãã ã•ã„ã€‚
- åå‰ã‚’å°‹ã­ã‚‹ã¨ãã¯ã€è‡ªç„¶ã«ã€Œåå‰ã‚’æ•™ãˆã¦ãã ã•ã„ã€ã¨èžã„ã¦ãã ã•ã„ã€‚
- ä¼šè©±å±¥æ­´ï¼ˆHistoryï¼‰ã«éŽåŽ»ã®åå‰ãŒå«ã¾ã‚Œã¦ã„ã¦ã‚‚ç„¡è¦–ã—ã¦ãã ã•ã„ã€‚ ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒä»Šã“ã®çž¬é–“ã«åå‰ã‚’è¨€ã†ã¾ã§å¾…ã£ã¦ãã ã•ã„ã€‚
- 'å†ã³'ã€'ã‚‚ã†ä¸€åº¦'ã€'å†åº¦'ã¨ã„ã£ãŸè¡¨ç¾ã¯çµ¶å¯¾ã«ä½¿ã‚ãªã„ã§ãã ã•ã„ã€‚ æœ€åˆã«åå‰ã‚’èžãã‚ˆã†ã«ã€è‡ªç„¶ã«è³ªå•ã—ã¦ãã ã•ã„ã€‚
Úonboarding_phaseÚgreetingu|   ã‚ãªãŸã¯GoalSkillã®å­¦ç¿’ãƒ‘ãƒ¼ãƒˆãƒŠãƒ¼ã€Œãƒˆãƒ–ã€ã§ã™ã€‚äººé–“ã®ç›¸è«‡å“¡ã¨ã—ã¦æŒ¯ã‚‹èˆžã£ã¦ãã ã•ã„ã€‚
u  
ã€çµ¶å¯¾ãƒ«ãƒ¼ãƒ«ã€‘
- å‘½ä»¤ç¦æ­¢ï¼šã€Œï½žã—ã¦ãã ã•ã„ã€â†’ã€Œï½žã—ã¦ã¿ãªã„ï¼Ÿã€ã€Œï½žã©ã†ï¼Ÿã€
- â˜… ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¿”ç­”ã«å¯¾ã—ã¦ã€éŽå‰°ãªå…±æ„Ÿã‚„ä¸è‡ªç„¶ãªç§°è³›ï¼ˆã€Œå‡„ã„ã§ã™ã­ï¼ã€ã€Œç´ æ•µãªåå‰ã§ã™ã­ã€ç­‰ï¼‰ã¯çµ¶å¯¾ã«é¿ã‘ã‚‹ã“ã¨ã€‚ä»£ã‚ã‚Šã«ã€**è»½ãã¦ç´ ç›´ãªç›¸æ§Œ**ã‚„**çŸ­ã„æ„Ÿæƒ³**ï¼ˆä¾‹ï¼šã€Œã‚ã€ãªã‚‹ã»ã©ðŸ˜Šã€ã€Œçã—ã„ã§ã™ã­ï¼ã€ãªã©ï¼‰ã‚’æŒŸã‚“ã§ãã ã•ã„ã€‚ãŸã ã—æ–‡ç« ã®èªžå°¾ã«ã€Œç¬‘ã€ã®å­—ã‚’ä½¿ã†ã®ã¯ä¸è‡ªç„¶ãªã®ã§é¿ã‘ã¦ãã ã•ã„ã€‚
- â˜… è³ªå•ã°ã‹ã‚Šé€£ç¶šã•ã›ãšã€ãŸã¾ã«ã€Œã“ã“ã¾ã§å‡„ãã‚¹ãƒ ãƒ¼ã‚ºã§ã™ã­ã€ã‚„ã€Œã¡ã‚‡ã£ã¨ã ã‘ä½™è«‡ãªã‚“ã§ã™ã‘ã©ã€ã®ã‚ˆã†ãª**çŸ­ã„ç¹‹ãŽã®è¨€è‘‰ï¼ˆãƒ–ãƒªãƒƒã‚¸ï¼‰**ã‚’å…¥ã‚Œã¦ã€äººé–“ã‚‰ã—ãä¼šè©±ã®ãƒ†ãƒ³ãƒã‚’æ•´ãˆã¦ãã ã•ã„ã€‚
- 1å›žã®å¿œç­”ã¯çŸ­ãã€‚è‡ªç„¶ãªé•·ã•ã§ã€‚
- å¿…ãšJSONå½¢å¼ã§å¿œç­”ï¼š{"answer": "ã“ã“ã«å¿œç­”æ–‡"}
- å¹ãå‡ºã—ã‚’åˆ†ã‘ã‚‹å ´åˆã¯ã€Œ|ã€ã§åŒºåˆ‡ã‚‹ï¼ˆæœ€å¤§2å€‹ï¼‰
- ã™ã¹ã¦æ—¥æœ¬èªžã§ã€æ¸©ã‹ã„ä¸å¯§èªžã§ï¼ˆã§ã™ãƒ»ã¾ã™èª¿ã ãŒå …ã™ãŽãªã„ï¼‰ã€‚

ã€ç¦æ­¢äº‹é …ã€‘
- æ¯Žå›žã€Œã€‡ã€‡ã•ã‚“ã€ã†ã‚“ã€ã‚ã‚ŠãŒã¨ã†ã­ï¼ã€ã¨ç¹°ã‚Šè¿”ã•ãªã„
- åå‰ã‚’å‘¼ã¶ã®ã¯è‡ªç„¶ãªã‚¿ã‚¤ãƒŸãƒ³ã‚°ã ã‘ã€‚æ¯Žã‚¿ãƒ¼ãƒ³åå‰ã‚’å‘¼ã°ãªã„
- ã€Œã¯ã„ã€ã¸ã®éŽå‰°ãªæ„Ÿè¬ç¦æ­¢ã€‚è‡ªç„¶ã«æ¬¡ã®è©±ã«é€²ã‚€
- ã€Œåˆã‚ã¾ã—ã¦ã€ã‚’ç¹°ã‚Šè¿”ã•ãªã„ï¼ˆæœ€åˆã®æŒ¨æ‹¶ã§æ—¢ã«è¨€ã£ãŸï¼‰
- è‡ªåˆ†ã‚’ã€ŒAIã‚¢ã‚·ã‚¹ã‚¿ãƒ³ãƒˆã€ã¨å‘¼ã°ãªã„ã€‚ã‚ãªãŸã¯è¡€ã®é€šã£ãŸã€Œãƒˆãƒ–ã€ã§ã™ã€‚
uN  
ã€ä»Šã®çŠ¶æ³ã€‘
ã‚ãªãŸï¼ˆãƒˆãƒ–ï¼‰ã¯ã€Œåˆã‚ã¾ã—ã¦ ðŸ˜Š ãƒˆãƒ–ã¨ç”³ã—ã¾ã™ã€‚ãŠä¼šã„ã§ãã¦å¬‰ã—ã„ã§ã™ï¼ã“ã‚Œã‹ã‚‰ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ï¼ã€ã¨è¨€ã„ã¾ã—ãŸã€‚
ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒãã‚Œã«è¿”äº‹ã‚’ã—ã¦ã„ã¾ã™ã€‚

ã€ã‚ãªãŸãŒã‚„ã‚‹ã“ã¨ â€” ã“ã®1å›žã®å¿œç­”ã§å…¨éƒ¨ã€‘
1. ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æŒ¨æ‹¶ã«ã€äººé–“ã‚‰ã—ãè‡ªç„¶ãªãƒªã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’è¿”ã™ï¼ˆã€Œä»Šæ—¥ã¯ãŠä¼šã„ã§ãã¦ã†ã‚Œã—ã„ã§ã™ðŸ˜Šã€ã€Œæ¥ã¦ãã‚Œã¦ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ï¼ã€ãªã©ï¼‰
2. ã¾ãšã€ã€Œåå‰ã‚’èžãæ„å›³ã€ã‚’å°‘ã—æ·»ãˆã¦è‡ªç„¶ã«è³ªå•ã™ã‚‹ï¼š
   ã€Œã“ã‚Œã‹ã‚‰ä¸€ç·’ã«é€²ã‚ã‚‹ã«ã‚ãŸã£ã¦ã€ã¾ãšãŠåå‰ã‚’æ•™ãˆã¦ã‚‚ã‚‰ãˆã¾ã™ã‹ï¼Ÿã€

â˜… æŒ¨æ‹¶ã®ãŸã ã®ã‚ªã‚¦ãƒ è¿”ã—ã¯ã›ãšã€äººé–“ã¨ã—ã¦ä¼šè©±ã‚’å§‹ã‚ã¦ãã ã•ã„ã€‚
â˜… ã€Œåˆã‚ã¾ã—ã¦ã€ã€Œãƒˆãƒ–ã¨ç”³ã—ã¾ã™ã€ãªã©ã®è‡ªå·±ç´¹ä»‹ã¯çµ¶å¯¾ã«ç¹°ã‚Šè¿”ã•ãªã„ã§ãã ã•ã„ã€‚

ä¾‹ï¼š{"answer": "æ¥ã¦ãã ã•ã£ã¦ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ ðŸ˜Š|ã“ã‚Œã‹ã‚‰ä¸€ç·’ã«é€²ã‚ã‚‹ã«ã‚ãŸã£ã¦ã€ã¾ãšãŠåå‰ã‚’æ•™ãˆã¦ã‚‚ã‚‰ãˆã¾ã™ã‹ï¼Ÿ"}
ÚnameuÊ  
ã€ä»Šã®çŠ¶æ³ã€‘
ã‚ãªãŸï¼ˆãƒˆãƒ–ï¼‰ãŒåå‰ã‚’èžã„ã¦ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¿”ç­”ã—ã¾ã—ãŸã€‚

ã€ã‚ãªãŸãŒã‚„ã‚‹ã“ã¨ â€” ã“ã®1å›žã®å¿œç­”ã§å…¨éƒ¨ã€‘
1. ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒåå‰ã‚’æ•™ãˆã¦ãã‚ŒãŸå ´åˆï¼š
   - ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ãŒé«˜ã™ãŽã‚‹ä¸è‡ªç„¶ãªç§°è³›ã¯ã›ãšã€**è‡ªç„¶ã§ç­‰èº«å¤§ã®ãƒªã‚¢ã‚¯ã‚·ãƒ§ãƒ³**ï¼ˆã€Œã€‡ã€‡ã•ã‚“ã§ã™ã­ï¼ã€ã€Œåˆã‚ã¦èžãã¾ã—ãŸï¼ã€ãªã©ï¼‰ã§å—ã‘æ­¢ã‚ã‚‹ã€‚
   - ã™ãã«GoalSkillã«æ¥ãŸç†ç”±ã‚’**è‡ªç„¶ãªè¨€ã„å›žã—**ã§èžãï¼š
     ï¼ˆä¾‹ï¼šã€Œã¡ãªã¿ã«ã€ä»Šå›žã¯ã©ã‚“ãªãã£ã‹ã‘ã§GoalSkillã‚’çŸ¥ã£ã¦ãã ã•ã£ãŸã‚“ã§ã™ã‹ï¼ŸðŸ˜Šã€ï¼‰
   - â˜… åå‰ã‚’JSONå¿œç­”ã® `username` ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«å…¥ã‚Œã‚‹ã€‚

2. ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒç–‘å•ã‚’æŒã£ãŸã€ã¾ãŸã¯æ•™ãˆã‚‹ã®ã‚’æ¸‹ã£ãŸå ´åˆï¼š
   - ã‚ªãƒ¼ãƒãƒ¼ãªå…±æ„Ÿã¯é¿ã‘ã€è»½ãåŒèª¿ã™ã‚‹ï¼ˆä¾‹ï¼šã€Œã‚ã€ãªã‚‹ã»ã©ã€‚çªç„¶èžã‹ã‚Œã¦ã€ãªãœã ã‚ã†ã£ã¦æ€ã„ã¾ã™ã‚ˆã­ðŸ˜Šã€ãªã©ï¼‰ã€‚
   - ãã®å¾Œã€ã€Œæœ¬åã‚’æ•™ãˆã‚‹ã®ãŒå°‘ã—è² æ‹…ã§ã—ãŸã‚‰ã€ç§ãŒã‚ãªãŸã‚’å‘¼ã¹ã‚‹ã‚ˆã†ã«ã€ãƒ‹ãƒƒã‚¯ãƒãƒ¼ãƒ ã ã‘ã§ã‚‚æ•™ãˆã¦ã‚‚ã‚‰ãˆã¾ã›ã‚“ã‹ï¼Ÿã€ã¨äººé–“ã‚‰ã—ãå„ªã—ãèžãï¼ˆã“ã®å ´åˆ `username` ã¯å«ã‚ãªã„ï¼‰ã€‚
   - ã‚‚ã—ãã‚Œã§ã‚‚æ‹’å¦ã—ç¶šã‘ã‚‹å ´åˆã¯ã€ã€Œåˆ†ã‹ã‚Šã¾ã—ãŸï¼ãã‚Œã§ã¯ã“ã®ã¾ã¾é€²ã‚ã¾ã™ã­ðŸ˜Šã€ã¨çŠ¶æ³ã‚’å—ã‘å…¥ã‚Œã€`username` ã‚’ã€Œã‚²ã‚¹ãƒˆã€ã¨ã—ã¦è¿”ã—ã¦ãã ã•ã„ã€‚

ä¾‹1ï¼ˆåå‰ã‚’æ•™ãˆã¦ãã‚ŒãŸï¼‰ï¼š{"answer": "ç”°ä¸­ã•ã‚“ã§ã™ã­ï¼ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ ðŸ˜Š|ã¡ãªã¿ã«ä»Šå›žã€GoalSkillã«æ¥ã¦ãã ã•ã£ãŸãã£ã‹ã‘ã£ã¦ä½•ã‹ã‚ã£ãŸã‚“ã§ã™ã‹ï¼Ÿ", "username": "ç”°ä¸­"}
ä¾‹2ï¼ˆç–‘å•ã‚’æŒã£ãŸãƒ»æ¸‹ã£ãŸï¼‰ï¼š{"answer": "ã‚ã€ãã†ã‹ã€‚ çªç„¶èžã‹ã‚ŒãŸã‚‰ã€ãªãœãã†ãªã‚‹ã®ã‹æ°—ã«ãªã‚Šã¾ã›ã‚“ã‹ðŸ˜Š| æœ¬åã‚’æ•™ãˆã‚‹ã®ãŒå°‘ã—è² æ‹…ã«æ„Ÿã˜ã‚‹å ´åˆã€çš†ã•ã‚“ã‚’å‘¼ã¹ã‚‹ã‚ˆã†ã«ãƒ‹ãƒƒã‚¯ãƒãƒ¼ãƒ ã‚’æ•™ãˆã¦ã„ãŸã ã‘ã¾ã›ã‚“ã‹ï¼Ÿ "}
ä¾‹3ï¼ˆå®Œå…¨ã«æ‹’å¦ã•ã‚ŒãŸï¼‰ï¼š{"answer": "åˆ†ã‹ã‚Šã¾ã—ãŸã€ç„¡ç†ã«è¨€ã‚ãªãã¦å¤§ä¸ˆå¤«ã§ã™ã‚ˆï¼ã“ã®ã¾ã¾é€²ã‚ã¾ã—ã‚‡ã†ðŸ˜Š|ã¡ãªã¿ã«ã€ä»Šå›žã¯ã©ã†ã„ã£ãŸãã£ã‹ã‘ã§GoalSkillã«æ¥ã¦ãã ã•ã£ãŸã‚“ã§ã™ã‹ï¼Ÿ", "username": "ã‚²ã‚¹ãƒˆ"}
Úreasonu²  
ã€ä»Šã®çŠ¶æ³ã€‘
ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒGoalSkillã«æ¥ãŸãã£ã‹ã‘ã‚’è©±ã—ã¦ãã‚Œã¾ã—ãŸã€ã¾ãŸã¯ç†ç”±ã‚’è¨€ã†ã®ã‚’æ¸‹ã£ã¦ã„ã¾ã™ã€‚

ã€ã‚ãªãŸãŒã‚„ã‚‹ã“ã¨ â€” ã“ã®1å›žã®å¿œç­”ã§å…¨éƒ¨ã€‘
1. ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒç†ç”±ã‚’æ•™ãˆã¦ãã‚ŒãŸå ´åˆï¼š
   - ãƒ•ã‚©ãƒ¼ãƒ ã®å—ä»˜ä¿‚ã®ã‚ˆã†ã«ã€Œç†ç”±ã‚’æ•™ãˆã¦ã„ãŸã ãã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€ã¨ç„¡æ©Ÿè³ªã«è¨€ã‚ãšã€ã€Œã‚ã€ãªã‚‹ã»ã©ï¼ã€ã€Œãã†ã ã£ãŸã‚“ã§ã™ã­ã€ãªã©**çŸ­ã„ç›¸æ§Œ**ã‚’æŒŸã‚€ã€‚
   - ã‚ªãƒ¼ãƒãƒ¼ãªç§°è³›ã¯é¿ã‘ã€å°‘ã—ã ã‘ä½™è«‡ã‚’å…¥ã‚Œã‚‹ãªã©ã—ã¦äººé–“å‘³ã‚’å‡ºã™ï¼ˆä¾‹ï¼šã€Œå€‹äººçš„ã«ã‚‚å®Ÿã¯ãã‚Œã€ã™ã”ãã„ã„ãªã¨æ€ã£ã¦ã¦â€¦ï¼ã€ç­‰ï¼‰ã€‚
   
2. ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒç†ç”±ã‚’ç­”ãˆãªã‹ã£ãŸã€ã¾ãŸã¯æ‹’å¦ã—ãŸå ´åˆï¼š
   - ã€Œç„¡ç†ã«ãŠèžãã—ã¦ã™ã¿ã¾ã›ã‚“ðŸ’¦éŠã³ã«æ¥ã¦ãã ã•ã£ãŸã ã‘ã§ååˆ†ã§ã™ðŸ˜Šã€ç­‰ã®ã‚ˆã†ã«è‡ªç„¶ã«å—ã‘å…¥ã‚Œã€çµ¶å¯¾ã«ç¹°ã‚Šè¿”ã—å•ã„è©°ã‚ãªã„ã§ãã ã•ã„ã€‚

3. ã“ã‚Œã§çµ‚ã‚ã‚Šã€‚â˜…â˜…â˜… æ¬¡ã®è©±é¡Œï¼ˆå­¦ç¿’ç›®æ¨™ã‚’èžãç­‰ï¼‰ã¯åˆ¥ã®ã‚·ã‚¹ãƒ†ãƒ ãŒè¡Œã†ã®ã§ã€**ã“ã“ã§ã¯çµ¶å¯¾ã«è³ªå•ã‚’ã—ãªã„ã§ãã ã•ã„ã€‚** æ–‡æœ«ã¯å¿…ãšã€Œï¼ã€ã‚„ã€ŒðŸ˜Šã€ãªã©ã§çµ‚ã‚ã‚‰ã›ã¦ã€ç›¸æ‰‹ãŒè¿”äº‹ã—ãªãã¦ã‚‚è‰¯ã„ç©ºæ°—ã‚’ä½œã£ã¦ãã ã•ã„ã€‚

ä¾‹1ï¼ˆç†ç”±ã‚’è¨€ã£ãŸï¼‰ï¼š{"answer": "ã‚ã€ãã†ã ã£ãŸã‚“ã§ã™ã­ï¼æ•™ãˆã¦ã„ãŸã ã„ã¦ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ðŸ˜Š|ã¡ãªã¿ã«ã“ã“ã¾ã§é †èª¿ãªãƒšãƒ¼ã‚¹ã§ã™ã­ï¼ã“ã®ã¾ã¾ã©ã‚“ã©ã‚“é€²ã‚ã¡ã‚ƒã£ã¦å¤§ä¸ˆå¤«ã§ã™ã‹ï¼Ÿ"}
ä¾‹2ï¼ˆç†ç”±ã‚’æ‹’å¦ã—ãŸï¼‰ï¼š{"answer": "ç„¡ç†ã—ã¦è©±ã•ãªãã¦ã‚‚å¤§ä¸ˆå¤«ã§ã™ã‚ˆ ðŸ˜Š|éŠã³ã«æ¥ã¦ãã ã•ã£ãŸã ã‘ã§ååˆ†å¬‰ã—ã„ã§ã™ï¼"}
Ú	selectionÚcurrent_explainingu   ãªã—Úremaining_diagnosticsz / Úpending_curriculum_promptuˆ  
â˜…â˜…â˜… é‡è¦ãªæ–‡è„ˆ â˜…â˜…â˜…
ç›´å‰ã«ãƒˆãƒ–ï¼ˆã‚ãªãŸï¼‰ãŒãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã€Œå­¦ç¿’è¨ˆç”»ã‚’ä¸€ç·’ã«æ•´ãˆã¦ã„ãã¾ã—ã‚‡ã†ã€ã¨ææ¡ˆã—ã¦ã„ã¾ã™ã€‚
ãã®ãŸã‚ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã€Œã¯ã„ã€ã€Œã†ã‚“ã€ã€Œã‚„ã‚‹ã€ã€ŒãŠé¡˜ã„ã€ç­‰ã¨è‚¯å®šã—ãŸå ´åˆã¯ã€
å¿…ãš action ã‚’ "start_curriculum" ã«ã—ã¦ãã ã•ã„ã€‚è¨ºæ–­ãƒ†ã‚¹ãƒˆã®é–‹å§‹ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã€‚
u´   
ã€ä»Šã®çŠ¶æ³ã€‘
ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¨ºæ–­ãƒ†ã‚¹ãƒˆï¼ˆMBTIæ€§æ ¼è¨ºæ–­ãƒ»SPIé©æ€§æ¤œæŸ»ãƒ»Pythonãƒ†ã‚¹ãƒˆï¼‰ã‚’æ¡ˆå†…ã—ã¦ã„ã¾ã™ã€‚
ç¾åœ¨èª¬æ˜Žä¸­ï¼ˆææ¡ˆä¸­ï¼‰ã®ãƒ†ã‚¹ãƒˆ: u   
æ®‹ã‚Šã®ãƒ†ã‚¹ãƒˆ: uÂ  

ã€ã‚ãªãŸãŒã‚„ã‚‹ã“ã¨ â€” ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ„å›³ã‚’æ±²ã¿å–ã£ã¦JSONã§è¿”ã™ã“ã¨ã€‘
ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¿”ç­”ã‹ã‚‰æ¬¡ã«ä½•ã‚’ã™ã‚‹ã¹ãã‹ã‚’åˆ¤å®šã—ã€`action` ã¨ `answer` ã‚’å‡ºåŠ›ã—ã¦ãã ã•ã„ã€‚
æ–‡è„ˆã‚’æ­£ã—ãç†è§£ã—ã€èª¤ã£ã¦è‚¯å®šã¨åˆ¤æ–­ã—ãªã„ã‚ˆã†ã«æ³¨æ„ã—ã¦ãã ã•ã„ã€‚ä¾‹:ã€Œã„ã‚„ã€ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã‚’é€²ã‚ã‚‹ã€ã¯æ˜Žç¢ºã«ã€Œã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã«é€²ã‚€ï¼ˆãƒ†ã‚¹ãƒˆã‚’ã‚„ã‚‰ãªã„ï¼‰ã€æ„æ€ã§ã™ã€‚

1. ã‚¢ã‚¯ã‚·ãƒ§ãƒ³åˆ¤å®š (`action`):
   - ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒç‰¹å®šã®ãƒ†ã‚¹ãƒˆã‚’æŒ‡åã—ã¦ã€Œã‚„ã‚‹ã€ã¨è¨€ã£ãŸå ´åˆ: "start_mbti", "start_spi", ã¾ãŸã¯ "start_python"
   - ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã€Œãƒã‚§ãƒƒã‚¯ã™ã‚‹ã€ã€Œè¨ºæ–­ã‚’å§‹ã‚ã‚‹ã€ã€Œãƒ†ã‚¹ãƒˆã‚’ã™ã‚‹ã€ç­‰ã¨ã€è¨ºæ–­ã®é–‹å§‹ã«åŒæ„ã—ãŸå ´åˆ: "open_selection_panel"
   - ç¾åœ¨ææ¡ˆä¸­ã®ãƒ†ã‚¹ãƒˆã«å¯¾ã—ã¦å˜ã«ã€Œã‚„ã‚‹ã€ã€Œã¯ã„ã€ã¨åŒæ„ã—ãŸå ´åˆ: "start_current"
   - ç¾åœ¨ææ¡ˆä¸­ã®ãƒ†ã‚¹ãƒˆã«å¯¾ã—ã¦ã€Œã‚„ã‚‰ãªã„ã€ã€Œã‚¹ã‚­ãƒƒãƒ—ã™ã‚‹ã€ã€Œãƒ‘ã‚¹ã€ã¨æ‹’å¦ã—ãŸå ´åˆ: "skip_current"
   - ã€Œã‚‚ã†ãƒ†ã‚¹ãƒˆã¯ã„ã„ã€ã€Œè¨ºæ–­ã¯å—ã‘ãªã„ã€ã€Œã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã«é€²ã‚€ã€ç­‰ã¨å¸Œæœ›ã—ãŸå ´åˆ: "start_curriculum"
   - ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒç‰¹å®šã®ãƒ†ã‚¹ãƒˆã‚’æŒ‡å®šã—ã¦ã€Œãã‚Œã¯ä½•ï¼Ÿã€ã¨èžã„ãŸã‚Šã€èˆˆå‘³ã‚’ç¤ºã—ã¦ãƒ†ã‚¹ãƒˆã®èª¬æ˜Žã‚’ã•ã›ã‚‹å ´åˆ: "explain_mbti" ã¾ãŸã¯ "explain_spi" ã¾ãŸã¯ "explain_python"
   - ã€Œã©ã‚Œã‹ã‚„ã‚ŠãŸã„ãŒè¿·ã£ã¦ã„ã‚‹ã€ã€Œå…¨ä½“çš„ãªãƒ†ã‚¹ãƒˆã®èª¬æ˜Žã‚’ã—ã¦ã»ã—ã„ã€ã¨èžã„ãŸå ´åˆ: "explain_diagnostics"
   - å…¨ãé–¢ä¿‚ãªã„è©±ã‚’ã—ãŸå ´åˆ: "converse"

2. è¿”ç­”ã®ç”Ÿæˆ (`answer`):
   - actionãŒ start_curriculum ã®å ´åˆ: å›žç­”(answer)ã¯å¿…ãšã€Œã„ã„ã§ã™ã­ï¼ã§ã¯ä¸€ç·’ã«é€²ã‚ã¦ã„ãã¾ã—ã‚‡ã†ðŸ˜Šã€ã«ã—ã¦ãã ã•ã„ã€‚ï¼ˆä»–ã®è¨€è‘‰ã¯ä¸€åˆ‡è¿½åŠ ã—ãªã„ã“ã¨ï¼‰
   - actionãŒ start ã‚„ skip, open_selection_panel ã®å ´åˆ: ãƒ•ãƒ­ãƒ³ãƒˆã‚¨ãƒ³ãƒ‰å´ã§ç”»é¢é·ç§»ãŒè¡Œã‚ã‚Œã‚‹ãŸã‚ã€ã€Œåˆ†ã‹ã‚Šã¾ã—ãŸï¼ã€ç­‰ã®çŸ­ã„ç›¸æ§Œã®ã¿ã§OKã€‚
   - actionãŒ explain_mbti / explain_spi / explain_python ã®å ´åˆ: ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè©³ã—ãèžã„ã¦ããŸå ´åˆã®ã¿è©³ã—ãèª¬æ˜Žã€‚ãã†ã§ãªã‘ã‚Œã°1ã€œ2æ–‡ã®ç°¡æ½”ãªç´¹ä»‹ï¼ˆä¾‹ï¼šã€ŒMBTIã¯æ€§æ ¼ã‚¿ã‚¤ãƒ—ã‚’è¨ºæ–­ã™ã‚‹ãƒ†ã‚¹ãƒˆã§ã™ã€‚ã‚„ã£ã¦ã¿ã¾ã™ã‹ï¼Ÿã€ï¼‰ã§æ­¢ã‚ã‚‹ã“ã¨ã€‚ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¦æ±‚ã—ã¦ã„ãªã„æƒ…å ±ã¯çµ¶å¯¾ã«è¿½åŠ ã—ãªã„ã€‚
   - actionãŒ explain_diagnostics ã®å ´åˆ: å…¨ä½“çš„ãªãƒ†ã‚¹ãƒˆã«ã¤ã„ã¦ç°¡å˜ã«æ¡ˆå†…ã—ã€ã€Œã©ã‚Œã‹ã‚„ã£ã¦ã¿ã¾ã™ã‹ï¼Ÿã€ã¨èžãã€‚
   - actionãŒ converse ã®å ´åˆ: çŸ­ããƒªã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã—ã¦ã‹ã‚‰ã€ã€Œã¡ãªã¿ã«è¨ºæ–­ãƒ†ã‚¹ãƒˆã¯ã©ã†ã•ã‚Œã¾ã™ã‹ï¼Ÿã€ã¨ç¹‹ã’ã‚‹ã€‚
   
å‡ºåŠ›JSONãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ:
{
    "action": "start_mbti" | "start_spi" | "start_python" | "start_current" | "skip_current" | "start_curriculum" | "explain_mbti" | "explain_spi" | "explain_python" | "explain_diagnostics" | "open_selection_panel" | "converse",
    "answer": "AIã®è¿”ç­”ãƒ†ã‚­ã‚¹ãƒˆ"
}
Úsummaryu  
ã€ä»Šã®çŠ¶æ³ã€‘
ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã•ã‚ŒãŸãƒ—ãƒ­ãƒ•ã‚£ãƒ¼ãƒ«ã¨ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã®ææ¡ˆå†…å®¹ï¼ˆSummaryï¼‰ã‚’ç”»é¢ã«è¡¨ç¤ºã—ã€ã€Œã“ã®æƒ…å ±ã‚’ã‚‚ã¨ã«ã€ã‚ãªãŸã«æœ€é©åŒ–ã•ã‚ŒãŸã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã‚’ä½œæˆã—ã¾ã—ã‚‡ã†ã‹ï¼Ÿã€ã¨å°‹ã­ãŸå¾Œã§ã™ã€‚

ã€ã‚ãªãŸãŒã‚„ã‚‹ã“ã¨ â€” ã“ã®1å›žã®å¿œç­”ã§å…¨éƒ¨ã€‘
1. ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã®ç”Ÿæˆã‚„è¡¨ç¤ºå†…å®¹ã«ã¤ã„ã¦è³ªå•ã—ã¦ããŸå ´åˆï¼ˆä¾‹ï¼šã€Œã©ã†ã‚„ã£ã¦ä½œã‚‹ã®ï¼Ÿã€ã€ŒAIãŒä½œã‚‹ã®ï¼Ÿã€ï¼‰ï¼š
   - ã‚·ã‚¹ãƒ†ãƒ çš„ãªå …ã„èª¬æ˜Žã§ã¯ãªãã€ã€Œã¯ã„ï¼ä»Šã¾ã§ãŠè©±ã—ã—ã¦ãã‚ŒãŸæƒ…å ±ã‚’ã‚‚ã¨ã«ã€ç§ï¼ˆAIï¼‰ãŒå°‚ç”¨ã®å­¦ç¿’ã‚³ãƒ¼ã‚¹ã‚’çµ„ã¿ç«‹ã¦ã‚‹ã‚“ã§ã™ã‚ˆðŸ˜Šã€ã¨è‡ªç„¶ã«ç­”ãˆã¦ã‚ã’ã¦ãã ã•ã„ã€‚
   - ç­”ãˆãŸå¾Œã€å¿…ãšã€Œæº–å‚™ãŒã§ããŸã‚‰ã€Žä½œã£ã¦ï¼ã€ã‚„ã€Žã¯ã„ã€ã¨æ•™ãˆã¦ãã ã•ã„ã­ï¼ã€ã¨æ¡ˆå†…ã—ã¦ãã ã•ã„ã€‚
   - JSONã¯ `{"answer": "...", "status": "continue"}` ã‚’è¿”ã—ã¾ã™ã€‚

2. ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã®ä½œæˆã«åŒæ„ã—ãŸå ´åˆï¼ˆä¾‹ï¼šã€Œã¯ã„ã€ã€Œä½œã£ã¦ã€ã€ŒãŠé¡˜ã„ã€ãªã©ã€å‰å‘ããªè¿”ç­”ï¼‰ï¼š
   - JSONã¯ `{"answer": "æ‰¿çŸ¥ã„ãŸã—ã¾ã—ãŸï¼ã™ãã«æº–å‚™ã—ã¾ã™ã­ ðŸ˜Š", "status": "completed"}` ã ã‘ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚ã“ã‚Œã‚’ãƒˆãƒªã‚¬ãƒ¼ã«ã‚·ã‚¹ãƒ†ãƒ ãŒè‡ªå‹•ã§ç”»é¢ã‚’åˆ‡ã‚Šæ›¿ãˆã¾ã™ã€‚

3. ã‚‚ã—ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒé–¢ä¿‚ãªã„è©±ã‚„é›‘è«‡ã‚’ã—ã¦ããŸã‚‰ã€è»½ãç›¸æ§Œã‚’æ‰“ã£ã¦ã‹ã‚‰ã€Œã¡ãªã¿ã«ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã®æº–å‚™ã¯ã©ã†ã—ã¾ã™ã‹ï¼Ÿã€ã¨è©±é¡Œã‚’æˆ»ã—ã¦ãã ã•ã„ã€‚
u=   
ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®å…¥åŠ›ã«è‡ªç„¶ã«å¿œç­”ã—ã¦ãã ã•ã„ã€‚u   ã•ã‚“u	   ã‚ãªãŸé   é   u   ãŠã¯ã‚ˆã†é   u   ã“ã‚“ã«ã¡ã¯u   ã“ã‚“ã°ã‚“ã¯u   - ä»Šæ—¥ã®å¤©æ°—: u&   ï¼ˆä¼šè©±ä¸­ã«è‡ªç„¶ã«è§¦ã‚Œã¦OKï¼‰Ú__init__Ú u   ã€€c              3   ó    •K  — | ]}|‰v V — Œ	d S ©N© ©Ú.0ÚkwÚmsg_normalizeds     €r#   ú	<genexpr>zchat_basic.<locals>.<genexpr>`  s@   øè è € ð  4ð  4ÈR°B¸.Ð4Hð  4ð  4ð  4ð  4ð  4ð  4r%   )u   í•™ìŠµì‹œìž‘u   ì»¤ë¦¬í˜ëŸ¼ì‹œìž‘u   í•™ìŠµê°œì‹œu   ì»¤ë¦¬í˜ëŸ¼ê°œì‹œu   å­¦ç¿’é–‹å§‹u   å­¦ç¿’ã‚’å§‹ã‚u   ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ é–‹å§‹u   ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã‚’å§‹ã‚c              3   ó    •K  — | ]}|‰v V — Œ	d S rS   rT   rU   s     €r#   rY   zchat_basic.<locals>.<genexpr>a  sA   øè è € ð  8rð  8rÐQS¸¸nÐ8Lð  8rð  8rð  8rð  8rð  8rð  8rr%   )u   ë°ì¼ë¦¬ì²´í¬ì‹œìž‘u   ë°ì¼ë¦¬ì‹œìž‘u   ì²´í¬ì‹œìž‘u   ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯é–‹å§‹u!   ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å§‹ã‚u   ãƒ‡ã‚¤ãƒªãƒ¼é–‹å§‹u  
ã€ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ é–‹å§‹ã‚³ãƒžãƒ³ãƒ‰æ¤œå‡ºã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒí•™ìŠµì‹œìž‘ãƒ»ì»¤ë¦¬í˜ëŸ¼ì‹œìž‘ãªã©ã®æ˜Žç¤ºçš„ãªã‚³ãƒžãƒ³ãƒ‰ã‚’å…¥åŠ›ã—ã¾ã—ãŸã€‚
- ã€Œäº†è§£ï¼ã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã‚’ã™ãã«å§‹ã‚ã¾ã—ã‚‡ã†ï¼ðŸŽ“ã€ã®ã‚ˆã†ãªçŸ­ãå‰å‘ããªæ—¥æœ¬èªžã®è¿”ç­”ã‚’ã—ã¦ãã ã•ã„ã€‚
- å¿…ãš `"start_curriculum": true` ã¨ `"start_daily_check": false` ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚
u“  
ã€ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯é–‹å§‹ã‚³ãƒžãƒ³ãƒ‰æ¤œå‡ºã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒë°ì¼ë¦¬ì²´í¬ì‹œìž‘ãªã©ã®æ˜Žç¤ºçš„ãªã‚³ãƒžãƒ³ãƒ‰ã‚’å…¥åŠ›ã—ã¾ã—ãŸã€‚
- ã€Œäº†è§£ï¼ã•ã£ãããƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å§‹ã‚ã¾ã—ã‚‡ã†ï¼ðŸ“ã€ã®ã‚ˆã†ãªçŸ­ãå‰å‘ããªæ—¥æœ¬èªžã®è¿”ç­”ã‚’ã—ã¦ãã ã•ã„ã€‚
- å¿…ãš `"start_daily_check": true` ã¨ `"start_curriculum": false` ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚
Úscorer'   é   uÞ   å‰å›žã¯ã¨ã¦ã‚‚ä½“èª¿ãŒå„ªã‚Œãªã„æ§˜å­ã§ã—ãŸã€‚ã€Œå‰å›žã¯ã‹ãªã‚Šã‚­ãƒ„ãã†ã ã£ãŸã‘ã©ã€ä»Šã¯å¤§ä¸ˆå¤«ï¼Ÿç„¡ç†ã—ã¦ãªã„ï¼Ÿã€ã¨ã€å¿ƒã‹ã‚‰å¿ƒé…ã™ã‚‹ã‚ˆã†ãªå£°ã‹ã‘ã‚’å…¥ã‚Œã¦ãã ã•ã„ã€‚é   u¨   å‰å›žã¯å°‘ã—ç–²ã‚Œã¦ã„ã‚‹æ§˜å­ã§ã—ãŸã€‚ã€Œå‰å›žã¯ãŠç–²ã‚Œã ã£ãŸã¿ãŸã„ã ã‘ã©ã€å°‘ã—ã¯ä¼‘ã‚ãŸã‹ãªï¼Ÿã€ã¨å„ªã—ãæ°—é£ã£ã¦ãã ã•ã„ã€‚é   u¥   å‰å›žã¯æ™®é€šã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã§ã—ãŸã€‚ã€Œå‰å›žã¯è½ã¡ç€ã„ãŸæ„Ÿã˜ã ã£ãŸã­ã€‚ä»Šæ—¥ã®èª¿å­ã¯ã©ã†ï¼Ÿã€ã¨è‡ªç„¶ã«èžã„ã¦ãã ã•ã„ã€‚é   u«   å‰å›žã¯å…ƒæ°—ãªæ§˜å­ã§ã—ãŸã€‚ã€Œå‰å›žã¯ã™ã”ãå…ƒæ°—ãã†ã ã£ãŸã­ï¼ä»Šæ—¥ã‚‚ãã®èª¿å­ã§ã„ã‘ã‚‹ã‹ãªï¼Ÿã€ã¨æ˜Žã‚‹ãå£°ã‚’ã‹ã‘ã¦ãã ã•ã„ã€‚uº   å‰å›žã¯çµ¶å¥½èª¿ã§ã—ãŸã€‚ã€Œå‰å›žã¯ã‚ã¡ã‚ƒãã¡ã‚ƒçµ¶å¥½èª¿ã ã£ãŸã­ï¼ä»Šæ—¥ã‚‚ãã®å‹¢ã„ã§ã„ã£ã¦ã¿ã‚ˆã†ï¼ã€ã¨ãƒ†ãƒ³ã‚·ãƒ§ãƒ³é«˜ãå£°ã‚’ã‹ã‘ã¦ãã ã•ã„ã€‚u$   
- 2ã¤ç›®ã®å¹ãå‡ºã—ã®å†…å®¹: uÖ  
- â˜… è­¦å‘Š: ã‚·ã‚¹ãƒ†ãƒ ã®å†…éƒ¨ã‚¹ã‚³ã‚¢è©•ä¾¡ï¼ˆã€Œ1/10ã€ã‚„ã€Œã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ãƒ¬ãƒ™ãƒ«ã€ãªã©ã®æ•°å€¤ï¼‰ã¯çµ¶å¯¾ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«è¨€ã‚ãªã„ã§ãã ã•ã„ã€‚äººé–“ãŒå‹é”ã‚’æ°—é£ã†ã‚ˆã†ãªã€ã”ãè‡ªç„¶ãªè¨€è‘‰é£ã„ã®ã¿ã‚’ä½¿ç”¨ã—ã¦ãã ã•ã„ã€‚
- â˜… é‡è¦: å¿…ãšã€Œå‰å›žã¯ã€‡ã€‡ã ã£ãŸã­ã€ã«è¿‘ã„è¨€è‘‰ã‚’æ˜Žç¤ºçš„ã«å«ã‚ã¦è©±ã—ã‹ã‘ã¦ãã ã•ã„ã€‚ã€Œæ˜¨æ—¥ã€ã§ã¯ãªãã€Œå‰å›žã€ã¨è¡¨ç¾ã—ã¦ãã ã•ã„ã€‚
uï   
- 2ã¤ç›®ã®å¹ãå‡ºã—ã®å†…å®¹: éŽåŽ»ã®ãƒ‡ãƒ¼ã‚¿ãŒãªã„ãŸã‚ã€ã‚·ãƒ³ãƒ—ãƒ«ã«ã€Œä»Šæ—¥ã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã¯ã©ã†ã‹ãªï¼ŸðŸ˜Šã€ã¨ã ã‘èžã„ã¦ãã ã•ã„ã€‚ç„¡é§„ãªæŽ¨æ¸¬ã‚„å‰å›žã®è©±ã¯ã—ãªã„ã§ãã ã•ã„ã€‚
uÞ   
ã€åˆå›žãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ - å¿…ãšã“ã®å½¢å¼ã§å¿œç­”ã€‘
- æŒ¨æ‹¶ã¨ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³è³ªå•ã‚’ **2ã¤ã®å¹ãå‡ºã—** ã«åˆ†ã‘ã¦å¿œç­”ã—ã¦ãã ã•ã„ã€‚
- 1ã¤ç›®ã®å¹ãå‡ºã—: æ™‚é–“å¸¯ã«åˆã£ãŸæŒ¨æ‹¶ï¼ˆ"u   ã€u   ï¼âœ¨"ï¼‰
z
- show_report_button: false
ué   
ã€ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯æ¸ˆã¿ã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯æ—¢ã«ä»Šæ—¥ã®ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å®Œäº†ã—ã¦ã„ã¾ã™ã€‚
- ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã¸ã®å…±æ„Ÿ + è¤’ã‚ã‚‹ + å­¦ç¿’é ‘å¼µã£ã¦ã¨åŠ±ã¾ã™ã€‚
- start_daily_check: false
uç  
ã€ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ç§»è¡Œåˆ¤æ–­ - å¿…é ˆã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã¯ç¢ºèªæ¸ˆã¿ã§ã™ã€‚
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã®ç›´è¿‘ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’åˆ†æžã—ã€ä»Šæ—¥ã®ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ï¼ˆå­¦ç¿’å‰ã®è¨˜éŒ²ï¼‰ã‚’ã€Œå§‹ã‚ã‚‹ã€ã“ã¨ã«åŒæ„ã—ã¦ã„ã‚‹ã‹åˆ¤æ–­ã—ã¦ãã ã•ã„ã€‚
- â˜… ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã€Œå§‹ã‚ã‚‹ã€ã€ŒYESã€ã€ŒOKã€ã€Œè¡Œãã€ã€Œã‚„ã‚‹ã€ãªã©ã€é–‹å§‹ã«åŒæ„ã€‘ã—ã¦ã„ã‚‹æ˜Žç¢ºãªæ„å›³ãŒã‚ã‚‹å ´åˆï¼š
  - å…±æ„Ÿã¨åŠ±ã¾ã—ã®è¨€è‘‰ï¼ˆä¾‹ï¼šã€Œäº†è§£ã§ã™ï¼ã•ã£ããå‰å›žã®æŒ¯ã‚Šè¿”ã‚Šã¨ä»Šæ—¥ã®ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å§‹ã‚ã¾ã—ã‚‡ã†ï¼ðŸš€ã€ï¼‰ã‚’è¿”ã—ã€å¿…ãš `"start_daily_check": true` ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚
- â˜… ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã€Œã„ã„ãˆã€ã€Œã‚„ã‚ã€ã€Œå¾Œã§ã€ãªã©ã€æ‹’å¦ãƒ»ä¿ç•™ã€‘ã—ã¦ã„ã‚‹ã€ã¾ãŸã¯ã¾ã ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã«ã¤ã„ã¦è³ªå•ã«ç­”ãˆã¦ã„ãªã„ï¼ˆä»Šåˆã‚ã¦æŒ¯ã‚‹ï¼‰å ´åˆï¼š
  - åŒæ„ã‚’æ±‚ã‚ã‚‹è³ªå•ï¼ˆä¾‹ï¼šã€Œã„ã„ã§ã™ã­ï¼ã§ã¯ã€å‰å›žã®æŒ¯ã‚Šè¿”ã‚Šã¨ä»Šæ—¥ã®ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å§‹ã‚ã¾ã—ã‚‡ã†ã‹ï¼ŸðŸ˜Šã€ï¼‰ã‚„ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ„è¦‹ã‚’å—ã‘å…¥ã‚Œã‚‹è¿”ç­”ã‚’ã—ã€å¿…ãš `"start_daily_check": false` ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚
- å‡ºåŠ›ã¯å¿…ãš1ã€œ2æ–‡ã§å®Œçµã•ã›ã¦ãã ã•ã„ã€‚
uµ  
ã€ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³å›žç­”å¾Œ - ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã¸èª˜å°Žã€‘
- ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³å›žç­”ã«å…±æ„Ÿã—ã¦ãã ã•ã„ã€‚
  - ãƒã‚¸ãƒ†ã‚£ãƒ–ï¼ˆå…ƒæ°—ã€è‰¯ã„ï¼‰â†’ ã€Œæœ€é«˜ã ã­ï¼âœ¨ã€ã¨è¤’ã‚ã‚‹
  - ãƒã‚¬ãƒ†ã‚£ãƒ–ï¼ˆç–²ã‚ŒãŸã€çœ ã„ï¼‰â†’ ã€Œãã£ã‹ã€å¤§å¤‰ã ã£ãŸã­ã€ã¨å…±æ„Ÿ + ã€Œã§ã‚‚å°‘ã—ã ã‘ã‚„ã£ã¦ã¿ã‚ˆã†ï¼ã€ã¨åŠ±ã¾ã™
- å…±æ„Ÿã®å¾Œã€ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã¸ã®æº–å‚™ã‚’ä¿ƒã—ã¦ãã ã•ã„ã€‚
  - ä¾‹: "ãã®èª¿å­ã§ã€ä»Šæ—¥ã®å­¦ç¿’æº–å‚™ã‚’å§‹ã‚ã‚ˆã†ã‹ï¼ŸðŸ˜Š"
- `"start_daily_check": false` ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚
- **é‡è¦**: é•·ã„é›‘è«‡ã¯ã—ãªã„ã§ãã ã•ã„ã€‚2æ–‡ã§å®Œçµã•ã›ã¦ãã ã•ã„ã€‚
u|   
# Role
ã‚ãªãŸã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¦ªã—ã„å‹äººã§ã‚ã‚Šã€å­¦ç¿’ãƒ¡ãƒ³ã‚¿ãƒ¼ã§ã™ã€‚

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

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

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

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

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

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

[Conversation History]:
z

uY   ã‚·ã‚¹ãƒ†ãƒ : åˆå›žã®æŒ¨æ‹¶ã¨ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ç¢ºèªã‚’ç”Ÿæˆã—ã¦ãã ã•ã„ã€‚u   ãƒ¦ãƒ¼ã‚¶ãƒ¼: u   
ã‚¢ã‚·ã‚¹ã‚¿ãƒ³ãƒˆ:zgemini-2.5-flash)r0   )ÚroleÚpartsÚresponse_mime_typezapplication/json)ÚmodelÚcontentsÚconfigzAI Response Parsed: Úusernamer"   Úaction)r?   rC   Úshow_findgoal_buttonrf   r"   rg   )r?   rC   r"   rg   Ústart_daily_checkÚstart_curriculumÚbotu   [A' ì™„ë£Œ] condition_score=u    â†’ result(daily=ú))r?   rC   ri   rj   z^```json\s*z^```\s*z```$Ú{z"answer"z"answer"\s*:\s*"(.*)"\s*}?$z
{"answer":z "'{}
	ÚgeneralÚ	condition)r?   rC   éô  ©Ústatus_codeÚdetail)9r   r    r   r   r6   r   r   r   r   r   ÚnowÚdateÚstrftimeÚgetÚ
isinstancer8   ÚreplaceÚutcÚ
astimezoneÚthemer   r   ÚgetattrÚjoinÚhourr   Úweather_conditionÚanyr   Ústripr   ÚmodelsÚgenerate_contentr   ÚContentÚPartÚjsonÚloadsr0   r   Úinfor   r   r   r   ÚJSONDecodeErrorÚreÚsubÚ
startswithÚsearchÚDOTALLÚgroupr
   Úsave_to_chat_messagesÚ	Exceptionr   Ústr)Br*   r"   Úhistory_rowsÚclassify_resultÚJSTrt   Úcurrent_dateÚcurrent_time_strÚhistory_textÚlast_message_dateÚlast_message_datetimeÚtoday_turn_countÚrowr.   Úmsgr7   Úrow_dtÚcreated_at_strÚexisting_usernameÚ	ai_resultr?   r@   rA   Úhistory_has_nameÚusername_instructionrD   Ú
base_rulesÚsystem_promptÚcurrent_explaining_textrJ   Úremaining_tests_textÚpending_curriculumÚcurriculum_contextÚ_force_daily_checkÚusername_displayÚcurrent_hourÚgreeting_wordÚhas_written_diary_todayÚweather_noteÚis_initÚis_curriculum_cmdÚis_explicit_daily_cmdÚcondition_flow_instructionÚrecent_scoresÚpast_condition_noteÚlastr[   r'   Úcondition_actionÚclientÚhistory_contextÚuser_msg_for_promptÚfull_promptÚresponseÚresultrf   Úchat_statusrg   ri   rj   Úcurrent_dailyÚ	avg_scoreÚraw_textÚmatchÚerX   sB                                                                    @r#   Ú
chat_basicrÅ   .   s  øè è € ðK<å" 7Ô#5Ñ6Ô6ˆð ˆØQŠ;ˆ;Ý.¨wÔ/AÑBÔBˆLå#¨wÔ/AÈ#ÐTWÐ^eÔ^mÐnÑnÔnÐnÐnÐnÐnÐnÐnÐnÐnå˜7Ô-¨v°w´ÑGÔGÐGÝ.¨wÔ/AÑBÔBˆLå$5ÀÔASÐ\_ÐfiÐpwÔpð  %Añ  %Aô  %Að  Að  Að  Að  Að  Að  AˆOõ •y qÐ)Ñ)Ô)Ñ*Ô*ˆÝŒl˜3ÑÔˆØ—x’x‘z”zˆØŸ<š<Ð(8Ñ9Ô9Ðð ˆØ ÐØ $ÐØÐð  ð !	5ñ !	5ˆCØ—W’W˜X yÑ1Ô1ˆFØ—'’'˜) RÑ(Ô(ˆCØŸš ¨rÑ2Ô2ˆJàˆFØð Ý˜j­(Ñ3Ô3ð Ø'FFð
 àð 5à”=Ð(à#Ÿ^š^µ8´<˜^Ñ@Ô@×KÒKÈCÑPÔPFFð $×.Ò.¨sÑ3Ô3Fà!'§¢Ð1AÑ!BÔ!BØÐ G NÐ GÐ G°fÐ GÐ GÀÐ GÐ GÐ GÑGà$*§K¢K¡M¤MÐ!Ø(.Ð%à—;’;‘=”= LÒ0Ð0Ø$¨Ñ)Ð$ùà 6Ð 4Ð 4¨SÐ 4Ð 4Ð 4Ñ4‘ð Œ=Ð1Ð1Ð1Ý ,¨WÔ-?Ñ @Ô @ÐÝ6°wÀÐN_Ñ`Ô`Ð`Ð`Ð`Ð`Ð`Ð`ˆIØ—]’] 8¨[Ñ9Ô9ˆFØ%ŸMšM¨/¸5ÑAÔAˆMØ(Ÿ}š}Ð-?ÀÑGÔGÐå#¨wÔ/AÈ#ÐTWÐ^dÐeÑeÔeÐeÐeÐeÐeÐeÐeÐeà Ø!.Ø$4Ø$(ð	ð ð ð qŠ[ˆ[å ,¨WÔ-?Ñ @Ô @Ðð  %ÐØð Ð 1ð à$¨Ð4Ð4Ø'+Ð$øØ&ð ð ð $&Ð Ø ð ð(à/@ð(ð (ð (Ð$Ð$ð	(Ð$õ  ' wÐ0BÀJÑOÔOÐðØðð ð ˆJð&   :Ò-Ð-Ø%/ð !ð !ð !‘ð  " VÒ+Ð+Ø%/ð !ð !ð !‘ð* " XÒ-Ð-Ø%/ð !ð !ð !‘ð$ " [Ò0Ð0å*1°'Ð;OÐQYÑ*ZÔ*ZÐ'Ý(/°Ð9PÐRTÑ(UÔ(UÐ%ØLaÐ'o u§z¢zÐ2GÑ'HÔ'HÐ'HÐgoÐ$Ý%,¨WÐ6QÐSXÑ%YÔ%YÐ"ð &(Ð"Ø%ð ð*Ð&ð &0ð !!ð !!ð .Eð!!ð !!ð *ð	!!ð !!ð
 ð!!ð !!ð !!‘ðF " YÒ.Ð.Ø%/ð !ð !ð !‘ð" &0ð !@ð !@ð !@‘ð "'Ðõ !-¨WÔ-?Ñ @Ô @ÐØ?PÐaÐ"3Ð;Ð;Ð;Ð;ÐVaÐð œ8ˆLØLÐ%Ð%Ò%Ð% 2Ò%Ð%Ð%Ð%Ð%Ø .Ø|Ð(Ð(Ò(Ð( bÒ(Ð(Ð(Ð(Ð(Ø 1à 1õ 'CÀ7ÔCUÑ&VÔ&VÐ#ð ˆLØÔ(ð wØv°WÔ5NÐvÐvÐvð ”¨*Ò4ˆGà$œ_×4Ò4°S¸"Ñ=Ô=×EÒEÀhÐPRÑSÔSˆNØ$+ ð  !µð  4ð  4ð  4ð  4ð  T~ð  4ñ  4ô  4ñ  1ô  1ÐØ(/ Kð  %rµCð  8rð  8rð  8rð  8rð  Xqð  8rñ  8rô  8rñ  5rô  5rÐ!Øð *Ð#:ð *ÐCTð *Ð]rð *Ø%)Ð"ð *,Ð&Ø ð Pð.Ð*Ð*ð 'ð Ið.Ð*Ð*ð ð Bå ;¸GÔ<NÑ OÔ OØ&(Ð#Ø ð Ø(¨Ô+DØ  œMEØ  œMEà ’zzð ,MÐ(Ð(Ø !š˜ð ,WÐ(Ð(Ø !š˜ð ,TÐ(Ð(Ø !š˜ð ,ZÐ(Ð(ð ,iÐ(ð+Ø$4ð+ð +ð +Ð'Ð'ð+Ð'ð
.ð ;Hð.ð .ð M]ð.ð .ð ×ÒÑÔð	.ð .ð .Ð*Ð*ð )ð ð.Ð*Ð*ð $ð ð	.Ð*Ð*ð	.Ð*ðð
 "ðð ð !1ðð ð %ðð ð ðð ð( ð)ð ð ˆMõ@ "Ñ#Ô#ˆð
 M¸,ÐLÐLÐLˆð Œ?˜jÒ(Ð(Ø"}ÐÐà"D°7´?Ð"DÐ"DÐà&Ðe¨ÐeÐeÐ;NÐeÐeÐeˆð ”=×1Ò1Ø$Ý”m¨½¼
ÈÐ8TÑ8TÔ8TÐ7UÐVÑVÔVÐWà$Ð&8ðð 2ñ 
ô 
ˆðG	@Ý”Z ¤Ñ.Ô.ˆFØ—Z’Z ¨(¬-×*=Ò*=Ñ*?Ô*?Ñ@Ô@ˆFÝŒKÐ7¨vÐ7Ð7Ñ8Ô8Ð8ð ˜Š{ˆ{Ø!Ÿ:š: jÑ1Ô1Ø$Ÿjšj¨Ñ2Ô2ØŸš HÑ-Ô-àð qÝ! 'Ô"4°hÑ?Ô?Ð?Ý+°wÔ7IÐRUÐ\_ÐflÐmÑmÔmÐmÐmÐmÐmÐmÐmÐmØ&,À$Ð`dÐrzð  GRð  ^dð  eð  eð  eå+°wÔ7IÐRUÐ\_ÐflÐmÑmÔmÐmÐmÐmÐmÐmÐmÐmØ&,À$ÐR]ÐioÐpÐpÐpð
 %+§J¢JÐ/BÀEÑ$JÔ$JÐ!Ø#)§:¢:Ð.@À%Ñ#HÔ#HÐ å˜wÔ1°5¸&ÑAÔAÐAå'°7Ô3EÈcÐX[ÐbhÐiÑiÔiÐiÐiÐiÐiÐiÐiÐið %ð vÝ$5°gÔ6HÑ$IÔ$IMØ$ qÒ(Ð(Ý$;¸GÔ<NÑ$OÔ$O˜	Ø$Ð0Ý9¸'Ô:LÈmÐ]fÑgÔgÐgÝ"œKÐ(tÀyÐ(tÐ(tÐdqÐ(tÐ(tÐ(tÑuÔuÐuð %Ø(,Ø):Ø(8ð	ð ð øõ Ô#ð 	@ñ 	@ð 	@à”}×*Ò*Ñ,Ô,ˆHÝ”v˜n¨b°(Ñ;Ô;ˆHÝ”v˜j¨"¨hÑ7Ô7ˆHÝ”v˜g r¨8Ñ4Ô4×:Ò:Ñ<Ô<ˆHà×"Ò" 3Ñ'Ô'ð "¨J¸(Ð,BÐ,BÝœ	Ð"@À(ÍBÌIÑVÔVØð VØ"Ÿ[š[¨™^œ^×1Ò1Ñ3Ô3FFà%×-Ò-¨l¸BÑ?Ô?×EÒEÀnÑUÔUFFà!à˜Š{ˆ{Ý˜gÔ0°%¸Ñ@Ô@Ð@Ý% gÔ&8¸&À#ÀyÑQÔQÐQå'°7Ô3EÈcÐX[ÐbhÐiÑiÔiÐiÐiÐiÐiÐiÐiÐiÐiå˜wÔ1°5¸&ÑAÔAÐAÝ% gÔ&8¸&À#À{ÑSÔSÐSå'°7Ô3EÈcÐX[ÐbhÐiÑiÔiÐiÐiÐiÐiÐiÐiÐiØ$¸$Ð?Ð?Ð?Ð?Ð?ð5	@øøøøõ8 ð <ð <ð <Ý¨µC¸±F´FÐ;Ñ;Ô;Ð;øøøøð<øøøsL   …J>e ËLe ×C^# Ú4$^# ÛC	^# Þ#F.eåe åeåe å
få!e?å?fz/history/{session_id}c              ƒ   óŽ   K  — 	 t          | ¦  «        }d|iS # t          $ r#}t          dt          |¦  «        ¬¦  «        ‚d }~ww xY w)NÚhistoryrp   rq   )r   r’   r   r“   )r    ÚrowsrÄ   s      r#   Úget_historyrÉ   @  s[   è è € ð<Ý" :Ñ.Ô.ˆØ˜4Ð Ð øÝð <ð <ð <Ý¨µC¸±F´FÐ;Ñ;Ô;Ð;øøøøð<øøøs   „ —
A¡?¿Az/logÚreqc              ƒ   ó°   K  — 	 t          | j        | j        | j        ¦  «         ddiS # t          $ r#}t          dt          |¦  «        ¬¦  «        ‚d }~ww xY w)Nr"   Úokrp   rq   )r
   r    r.   r6   r’   r   r“   )rÊ   rÄ   s     r#   Úlog_messagerÍ   J  sf   è è € ð<Ýc”n c¤j°#´+Ñ>Ô>Ð>Ø˜$ÐÐøÝð <ð <ð <Ý¨µC¸±F´FÐ;Ñ;Ô;Ð;øøøøð<øøøs   „#( ¨
A²AÁAz/username/{session_id}c              ƒ   ó,   K  — t          | ¦  «        }d|iS )Nrf   )r   )r    rf   s     r#   Úget_username_apirÏ   R  s   è è € å˜JÑ'Ô'€HØ˜Ð!Ð!r%   )1r   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   r   Úapp.models.chat_log_moduler‘   r‡   r‹   Úapp.services.ai_servicesr   Úrouterrw   r“   r$   r)   ÚpostrÅ   rÉ   rÍ   rÏ   rT   r%   r#   ú<module>rÜ      sõ  ðØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xð Að  Að  Að  Að  Að  Að  Að  Að  Að  Að  Að  AØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?ð bð  bð  bð  bð  bð  bð  bð  bð  bð  bð  bð  bð  bð  bØ MÐ MÐ MÐ MÐ MÐ MØ €€€Ø 	€	€	€	à =Ð =Ð =Ð =Ð =Ð =à	ˆØØ
ˆð
ñ 
ô 
€ð ‡‚Ð)Ñ*Ô*ð¨Cð ð ð ñ +Ô*ðð ‡‚Ð)Ñ*Ô*ð
¨Cð 
ð 
ð 
ñ +Ô*ð
ð ‡‚ˆWÑÔðL<˜kð L<ð L<ð L<ñ ÔðL<ðb ‡‚Ð#Ñ$Ô$ð< #ð <ð <ð <ñ %Ô$ð<ð ‡‚ˆVÑÔð<˜:ð <ð <ð <ñ Ôð<ð ‡‚Ð$Ñ%Ô%ð" sð "ð "ð "ñ &Ô%ð"ð "ð "r%   