§
    õVØi‹  ã                   ó‚  — 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_chatÚ Ú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              ƒ   óæ  K  — 	 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$}nº|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}n8|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    }'|'s|%sd}!d	}(|'r~t7          | j        ¦  «        })d	}*|)rE|)d         }+|+dA         },|+dB         }-|,dCk    rdD}.n|,dEk    rdF}.n|,dGk    rdH}.n|,dIk    rdJ}.ndK}.dL|.› dM}*ndN}*dO|$› dP|"› dQ|*                     ¦   «         › dR}(n	|%rdS}(n|!rdT}(dU|› dV|› dW|"› dX|(› dY|&› dZ}t;          ¦   «         }/d[|› d\}0| j        d@k    rd]}1n
d^| j        › }1|› |0› d|1› d_}2|/j                             d`tA          j!        dtA          j"        |2¬a¦  «        g¬b¦  «        gdcddi¬e¦  «        }3	 tG          j$        |3j%        ¦  «        }4|4                     d|3j%                             ¦   «         ¦  «        }tM          j'        df|4› ¦  «         |dk    r¢|4                     dg¦  «        }5|4                     dh¦  «        }6|4                     di¦  «        }7|5r<tQ          | j        |5¦  «         t          | j        dd|¬¦  «        ƒ d {V —† |d d|5|6|7djœS t          | j        dd|¬¦  «        ƒ d {V —† |d |6|7dkœS |4                     dld¦  «        }8t          | j        dm|¦  «         t          | j        dd|¬¦  «        ƒ d {V —† |8ratS          | j        ¦  «        }9|9dk    rGtU          | j        ¦  «        }:|:1tW          | j        |9|:¦  «         tM          j'        dn|:› do|9› dp¦  «         |d |8dqœS # tF          j,        $ r¡ |3j%                             ¦   «         };t[          j.        drd	|;¦  «        };t[          j.        dsd	|;¦  «        };t[          j.        dtd	|;¦  «                             ¦   «         };|; /                    du¦  «        rxdv|;v rtt[          j0        dw|;tZ          j1        ¦  «        }<|<r(|< 2                    d¦  «                             ¦   «         }n,|;                     dxd	¦  «                             dy¦  «        }n|;}|dk    rLtg          | j        dm|¦  «         ti          | j        |ddz¦  «         t          | j        dd|¬¦  «        ƒ d {V —† nKt          | j        dm|¦  «         ti          | j        |dd{¦  «         t          | j        dd|¬¦  «        ƒ d {V —† |d d|œcY S w xY w# tj          $ r#}=tm          d}to          |=¦  «        ¬~¦  «        ‚d }=~=ww xY w)Nr   ÚMÚA)r!   ÚsenderÚpartÚtextÚuseré	   )Úhoursz%Y-%m-%d %H:%Mr   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__Ú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Ù  
ã€ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ç§»è¡Œåˆ¤æ–­ - å¿…é ˆã€‘
ç¾åœ¨ã®ã‚¹ãƒ†ãƒƒãƒ—ï¼šãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ç¢ºèªå¾Œã€œãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯é–‹å§‹ã®åŒæ„ç¢ºèª

ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã®ç›´è¿‘ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’åˆ†æžã—ã€ä»¥ä¸‹ã®[æ¡ä»¶A]ã‹[æ¡ä»¶B]ã®ã©ã¡ã‚‰ã«å½“ã¦ã¯ã¾ã‚‹ã‹åˆ¤æ–­ã—ã¦å¿œç­”ã—ã¦ãã ã•ã„ã€‚

[æ¡ä»¶A]: ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã€Œå­¦ç¿’ã‚’é–‹å§‹ã€ã€Œã‚«ãƒªã‚­ãƒ¥ãƒ©ãƒ ã‚’è¡¨ç¤ºã€ã€ŒYESã€ã€ŒOKã€ã€Œè¡Œãã€ã€Œã‚„ã‚‹ã€ãªã©ã€å…·ä½“çš„ã«ã€å­¦ç¿’ã‚„æ¬¡ã®ã‚¹ãƒ†ãƒƒãƒ—ã‚’å§‹ã‚ã‚‹æ˜Žç¢ºãªæ„æ€ã€‘ã‚’ç¤ºã—ãŸå ´åˆã€‚
ï¼ˆâ€»ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ã®å›žç­”ã‚’çœç•¥ã—ã¦ã€ã„ããªã‚Šè¡Œå‹•ã‚’ä¿ƒã—ã¦ããŸå ´åˆã‚‚ã“ã“ã«å«ã¾ã‚Œã¾ã™ï¼‰
ðŸ‘‰ å¯¾å¿œ: ä½™è¨ˆãªé›‘è«‡ã‚„éŽå‰°ãªç§°è³›ã¯çœãã€ã€Œäº†è§£ã§ã™ï¼ã•ã£ããå‰å›žã®æŒ¯ã‚Šè¿”ã‚Šã¨ä»Šæ—¥ã®ãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å§‹ã‚ã¾ã—ã‚‡ã†ï¼ðŸš€ã€ã®ã‚ˆã†ãªçŸ­ã„è¨€è‘‰ã‚’è¿”ã—ã¦ã€**å¿…ãšJSONã® `"start_daily_check": true` ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚**

[æ¡ä»¶B]: ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã€Œç–²ã‚ŒãŸã€ã€Œå…ƒæ°—ã§ã™ã€ãªã©ä»Šã®çŠ¶æ…‹ã‚’ç­”ãˆãŸã ã‘ã®å ´åˆã€ã¾ãŸã¯ã€Œå¾Œã§ã€ã€Œã„ã‚„ã€ã¨ã€é–‹å§‹ã‚’æ‹’å¦ãƒ»ä¿ç•™ã€‘ã—ã¦ã„ã‚‹å ´åˆã€‚
ðŸ‘‰ å¯¾å¿œ: ã¾ãšãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¨€è‘‰ï¼ˆã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ç­‰ï¼‰ã«1æ–‡ã§è»½ãå…±æ„Ÿã—ã¦ãã ã•ã„ã€‚ãã®å¾Œã€ã€Œã§ã¯ã€ä»Šæ—¥ã®å­¦ç¿’æº–å‚™ï¼ˆãƒ‡ã‚¤ãƒªãƒ¼ãƒã‚§ãƒƒã‚¯ï¼‰ã‚’å§‹ã‚ã‚ˆã†ã‹ï¼ŸðŸ˜Šã€ã¨åŒæ„ã‚’æ±‚ã‚ã‚‹è³ªå•ã‚’ç¶šã‘ã€**å¿…ãšJSONã® `"start_daily_check": false` ã‚’è¿”ã—ã¦ãã ã•ã„ã€‚**

ã€è­¦å‘Šã€‘
ã©ã‚Œã ã‘ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ„æ¬²ãŒé«˜ãã¦ã‚‚ã€æ°¸é ã«ç§°è³›ã‚’ç¶šã‘ã‚‹ã®ã§ã¯ãªãã€[æ¡ä»¶A]ã‚’æº€ãŸã—ãŸå ´åˆã¯é€Ÿã‚„ã‹ã« `true` ã®ãƒ•ãƒ©ã‚°ã‚’ç«‹ã¦ã¦ç”»é¢ã‚’é·ç§»ã•ã›ã‚‹è²¬ä»»ãŒã‚ãªãŸã«ã¯ã‚ã‚Šã¾ã™ã€‚
u|   
# Role
ã‚ãªãŸã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¦ªã—ã„å‹äººã§ã‚ã‚Šã€å­¦ç¿’ãƒ¡ãƒ³ã‚¿ãƒ¼ã§ã™ã€‚

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

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

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

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

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

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

[Conversation History]:
z

uY   ã‚·ã‚¹ãƒ†ãƒ : åˆå›žã®æŒ¨æ‹¶ã¨ã‚³ãƒ³ãƒ‡ã‚£ã‚·ãƒ§ãƒ³ç¢ºèªã‚’ç”Ÿæˆã—ã¦ãã ã•ã„ã€‚u   ãƒ¦ãƒ¼ã‚¶ãƒ¼: u   
ã‚¢ã‚·ã‚¹ã‚¿ãƒ³ãƒˆ:zgemini-2.5-flash)r1   )ÚroleÚpartsÚresponse_mime_typezapplication/json)ÚmodelÚcontentsÚconfigzAI Response Parsed: Úusernamer#   Úaction)r?   rC   Úshow_findgoal_buttonr\   r#   r]   )r?   rC   r#   r]   Ústart_daily_checkÚbotu   [A' ì™„ë£Œ] condition_score=u    â†’ result(daily=ú))r?   rC   r_   z^```json\s*z^```\s*z```$Ú{z"answer"z"answer"\s*:\s*"(.*)"\s*}?$z
{"answer":z "'{}
	ÚgeneralÚ	condition)r?   rC   éô  ©Ústatus_codeÚdetail)8r   r!   r   r   r6   r   r   r   r   r   ÚnowÚdateÚstrftimeÚgetÚ
isinstancer8   ÚreplaceÚutcÚ
astimezoneÚthemer   r   ÚgetattrÚjoinÚhourr   Úweather_conditionr   Ústripr   ÚmodelsÚgenerate_contentr   ÚContentÚPartÚjsonÚloadsr1   r   Úinfor   r   r   r   ÚJSONDecodeErrorÚreÚsubÚ
startswithÚsearchÚDOTALLÚgroupr
   Úsave_to_chat_messagesÚ	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/   Ú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Úcondition_flow_instructionÚrecent_scoresÚpast_condition_noteÚlastrQ   r(   Úcondition_actionÚclientÚhistory_contextÚuser_msg_for_promptÚfull_promptÚresponseÚresultr\   Úchat_statusr]   r_   Úcurrent_dailyÚ	avg_scoreÚraw_textÚmatchÚes>                                                                 r$   Ú
chat_basicr·   .   sü  è è € ðr<å" 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Øð *Ð#:ð *Ø%)Ð"ð *,Ð&Øð =å ;¸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ñ 
ô 
ˆðE	@Ý”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Ð!å˜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ð %Ø(,Ø):ðð ð øõ Ô#ð 	@ñ 	@ð 	@à”}×*Ò*Ñ,Ô,ˆ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>c ËJc ÕC\ Ø7$\ ÙB2\ ÜF.c â=c â?c ã c ã
c0ãc+ã+c0z/history/{session_id}c              ƒ   óŽ   K  — 	 t          | ¦  «        }d|iS # t          $ r#}t          dt          |¦  «        ¬¦  «        ‚d }~ww xY w)NÚhistoryre   rf   )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#   Úokre   rf   )r
   r!   r/   r6   r†   r   r‡   )r¼   r¶   s     r$   Úlog_messager¿   1  sf   è è € ð<Ýc”n c¤j°#´+Ñ>Ô>Ð>Ø˜$ÐÐøÝð <ð <ð <Ý¨µC¸±F´FÐ;Ñ;Ô;Ð;øøøøð<øøøs   „#( ¨
A²AÁAz/username/{session_id}c              ƒ   ó,   K  — t          | ¦  «        }d|iS )Nr\   )r   )r!   r\   s     r$   Úget_username_apirÁ   9  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   Úrouterrl   r‡   r%   r*   Úpostr·   r»   r¿   rÁ   © 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ÑÔðs<˜kð s<ð s<ð s<ñ Ôðs<ðp ‡‚Ð#Ñ$Ô$ð< #ð <ð <ð <ñ %Ô$ð<ð ‡‚ˆVÑÔð<˜:ð <ð <ð <ñ Ôð<ð ‡‚Ð$Ñ%Ô%ð" sð "ð "ð "ñ &Ô%ð"ð "ð "r&   