
    UiV                     n    d dl Zd dlmZmZmZ d dlmZ d dlm	Z	m
Z
 dede	fdZde	defd	Zded
efdZdS )    N)A_DB_CONFIGloggerget_gemini_model)types)DictOptional
session_idreturnc                 >   d}dddddddd}	 t          j        j        di t          }|                    d          }d}|                    || f           |                                }|rx|                    d          |d<   |                    d          |d<   |                    d	          |d	<   |                    d
          s*|                    d          s|                    d          rB|                    d
          |                    d          |                    d          d|d<   |                    d          rj|                    d          |                    d          |                    d          |                    d          |                    d          d|d<   |                    d          |d<   |                    d          |d<   ||r)|                                 |                                 S S # t          $ rN}t          j        d|            |cY d}~|r)|                                 |                                 S S d}~ww xY w# |r)|                                 |                                 w w xY w)uS   
    user_profile_summary 테이블에서 모든 데이터를 조회합니다.
    N)usernamegoalmbtispi	studyplanit_levelai_analysisT)
dictionarya  
            SELECT 
                username,
                final_goal,
                mbti,
                spi_language,
                spi_nonverbal,
                spi_personality,
                studyplan_duration,
                studyplan_study_days,
                studyplan_weekday_hours,
                studyplan_weekend_hours,
                studyplan_time_slot,
                it_level,
                ai_analysis
            FROM user_profile_summary
            WHERE session_id = %s
        r   
final_goalr   r   spi_languagespi_nonverbalspi_personality)language_gradenonverbal_gradepersonalityr   studyplan_durationstudyplan_study_daysstudyplan_weekday_hoursstudyplan_weekend_hoursstudyplan_time_slot)duration
study_daysweekday_hoursweekend_hours	time_slotr   r   r   zGet Summary Data Error:  )mysql	connectorconnectr   cursorexecutefetchonegetclose	Exceptionr   error)r	   connsummaryr)   sqlrowes          !/app/app/models/summary_module.pyget_summary_datar6      s    D G<&5555--$ 	sZM***oo 	<"%''*"5"5GJ!ggl33GFO!ggfooGFO ww~&& #''/*B*B cggN_F`F` &)ggn&=&='*ww'?'?#&77+<#=#=" " ww+,,  #(< = ="%''*@"A"A%(WW-F%G%G%(WW-F%G%G!$)>!?!?( ($ #&''*"5"5GJ%(WW]%;%;GM"  	LLNNNJJLLLL		    333444 	LLNNNJJLLLL		  	LLNNNJJLLLL	s0   GH 
I,I'6I,7I/ 'I,,I/ /-Jdatac           	      N  K   	 t                      }g }|                     d          r|                    d| d                     |                     d          r|                    d| d                     |                     d          r| d         }g }|                    d          r|                    d|d                     |                    d          r|                    d	|d                     |                    d
          r|                    d|d
                     |r+|                    dd                    |          z              |                     d          r9| d         }g }|                    d          r|                    d|d                     |                    d          r|                    d|d          d           |                    d          r|                    d|d          d           |                    d          r|                    d|d          d           |                    d          r|                    d|d                     |r+|                    dd                    |          z              |                     d          r|                    d| d                     |rd                    |          nd}d | d!}|j                            d"t          j        d#t          j        |$          g%          gt          j	        d&'          (          }	|	j
                                        }
|
sd)S |
S # t          $ r"}t          j        d*|            Y d+}~d)S d+}~ww xY w),u   
    user_profile_summary 데이터를 기반으로 AI가 유저 분석 코멘트 생성
    
    Args:
        data: user_profile_summary에서 가져온 데이터
    
    Returns:
        AI 분석 코멘트 (일본어)
    r   u   目標: r   zMBTI: r   r   u   言語能力: r   u   非言語能力: r   u   性格分析: zSPI: z / r   r    u   学習期間: r!   u   週の学習日数: u   日r"   u   平日: u   時間r#   u   週末: r$   u   学習時間帯: u   学習計画: r   u   IT基礎レベル: 
u   データなしu   
あなたはキャリアカウンセラーです。
以下のユーザープロフィール情報を基に、この人の特徴を客観的かつ簡潔に分析してください。

【ユーザープロフィール】
u  

【分析の指針】
1. この人の強みや特徴を3〜4文で簡潔にまとめる
2. 目標達成への適性や学習スタイルを評価する
3. 励ましのトーンではなく、客観的な分析トーンで書く
4. 100文字以内で簡潔に

分析コメント:
zgemini-2.5-flashuser)text)rolepartsg?)temperature)modelcontentsconfigu`   プロフィール情報を基に、あなたに最適なカリキュラムを作成します。zAI Analysis Generation Error: N)r   r,   appendjoinmodelsgenerate_contentr   ContentPartGenerateContentConfigr;   stripr.   r   r/   )r7   clientprofile_textr   	spi_partsspsp_partsprofile_summarypromptresponse
ai_commentr4   s               r5   generate_ai_analysisrS   T   s!     Nr!## 88F 	; 94< 9 9:::88F 	9 7f 7 788888E?? 
	Eu+CIww'(( K  !I#6F2G!I!IJJJww()) O  !MS9J5K!M!MNNNww}%% H  !F#m2D!F!FGGG E##Gejj.C.C$CDDD88K   	Mk"BHvvj!! C AJ A ABBBvvl## N Lr,7G L L LMMMvvo&& H F2o+> F F FGGGvvo&& H F2o+> F F FGGGvvk"" G EB{O E EFFF M##$4uzz(7K7K$KLLL88J 	J Hd:6F H HIII5AX$))L111GX
     =11$m
8O8O8O7PQQQR.3??? 2 
 
 ]((**
 	vuu r r r9a99:::qqqqqqrs   M0M8 6M8 8
N$NN$r   c                 
   d }	 t          j        j        di t          }|                                }d}|                    ||| f           |                                 t          j        d|             n.# t          $ r!}t          j
        d|            Y d }~nd }~ww xY w|r*|                                 |                                 d S d S # |r)|                                 |                                 w w xY w)Nzt
            UPDATE user_profile_summary
            SET ai_analysis = %s
            WHERE session_id = %s
        z"Ai Analysis Saved for session_id: zSave AI Analysis Error: r%   )r&   r'   r(   r   r)   r*   commitr   infor.   r/   r-   )r	   r   r0   r)   r2   r4   s         r5   save_ai_analysisrW      s!   D&5555
 	s[*5666EEEFFFF 5 5 5333444444445  	LLNNNJJLLLLL	 	4 	LLNNNJJLLLL	s0   A4A9 8C 9
B$BC B$$C -D)mysql.connectorr&   app.core.configr   r   r   google.genair   typingr   r   strr6   rS   rW   r%       r5   <module>r^      s        A A A A A A A A A A       ! ! ! ! ! ! ! !K K K K K K\XrT Xrc Xr Xr Xr Xrv 3      r]   