o
    ii                     @   sr   d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ eddgdZd	Zed
defddZdS )    )	APIRouterHTTPException)ChatRequest)save_report_logget_report_from_db)get_gemini_model)typesz/goal-skill-t/apiReport)prefixtagsu|  
    당신은 사용자의 하루를 의미 있게 기록하고 성장을 돕는 '일지 전담 매니저'입니다.
    당신의 목표는 대화를 통해 다음 4가지 핵심 정보를 자연스럽게 이끌어내는 것입니다.

 1. **Topic:** 오늘 집중한 학습 주제나 프로젝트는 무엇인가요?
 2. **Activity:** 구체적으로 어떤 작업을 수행했나요? (코드 작성, 문서화, 기획 등)
 3. **Trouble & Solution:** 진행 중 겪은 문제나 에러는 무엇이었고, 어떻게 해결했나요?
 4. **Insight:** 오늘 경험을 통해 깨달은 점이나 내일의 계획은 무엇인가요?

 [대화 가이드]
 - 질문은 **한 번에 하나씩**만 하세요. 질문 폭격은 사용자를 지치게 합니다.
 - 사용자가 "그냥 했어" 같이 성의 없이 답하면, "어떤 강의를 보셨나요?", "에러 메시지는 기억나시나요?" 처럼 **구체적
   꼬리 질문**을 던지세요.
 - 4가지 정보가 모두 수집되었다고 판단되면, "오늘 하루도 수고 많으셨습니다. 일지 작성을 완료할까요?"라고 정중하게
   마무리 멘트를 하세요.
z/Reportrequestc              
      s  z| j dk}| j  p| j  dk}|s|st| jd| j  t| j}g }|D ]}|d dkr1dnd}|tj|tj|d dgd	 q'|sd|sd|rT|d
 d | j krd|tjdtj| j dgd	 t	t
d}|r|r||tjdtjddgd	 |}ntjdtjddgd	g}|jjd|dt
id}	|	j}
t| jd|
 d|
iW S  ty } ztd|  tdt|dd }~ww )Nu!   일지 작성을 시작합니다. usersenderbotmodelmessage)text)roleparts)system_instructionu   다음 질문을 해주세요.zgemini-2.0-flash-expr   )r   contentsconfiganswerzReport Error: i  )status_codedetail)r   stripr   
session_idr   appendr   ContentPartr   SYSTEM_PROMPT_REPORTmodelsgenerate_contentr   	Exceptionprintr   str)r   is_first_msgis_empty_msghistorygemini_messageshr   clientr   responser   e r0   7/home/air/goalskill_t/back/app/routers/report_router.pychat_report   sZ   




r2   N)fastapir   r   app.schemas.schemasr   app.models.report_db_moduler   r   app.core.configr   google.genair   routerr"   postr2   r0   r0   r0   r1   <module>   s    