
    /siZ                       U d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 ddlmZ  G d d	ee      Zi d
g ddg dg dg dg dg dg dg dg dg dg dg dg dg dg dg Zded<   g Zded<   ej%                         D ]6  \  ZZereD ]  Zej-                  e de         &ej-                  e       8  G d  d!e
      Ze G d" d#             Ze G d$ d%             Ze G d& d'             Zy())    )annotations)	dataclassfield)Enum)Optional)	BaseModel   )ChatMessagec                  (    e Zd ZdZdZdZdZdZdZdZ	y)	InsightTypeqaexpert_opinioncase_analysisregulation_interpretationpractical_tipregulation_changewarningN)
__name__
__module____qualname__QAEXPERT_OPINIONCASE_ANALYSISREGULATION_INTERPRETATIONPRACTICAL_TIPREGULATION_CHANGEWARNING     @/home/jay/projects/insuwiki/scripts/kakao_knowledge/models_v2.pyr   r      s'    	B%N#M ;#M+Gr   r   u   보상)u	   자동차u   일반u   장기u   고지의무u   약관해석u   상품비교u   언더라이팅u   민원처리u   손해사정u   의학지식u   세금/절세u   법률/판례u   영업노하우u   고객관리u   GA운영u   수수료체계u   디지털/ITu   기타zdict[str, list[str]]
CATEGORIES	list[str]ALL_CATEGORIES/c                      e Zd ZU dZded<   ded<   ded<   ded<   ded<   d	ed
<   dZded<   dZded<   g Zd	ed<   g Zd	ed<   dZ	ded<   dZ
ded<   g Zd	ed<   g Zd	ed<   dZded<   dZded<   y)	InsightV2u   v2 인사이트 모델stridtitler   typecategorysummaryr"   
key_points expertmedium
confidencerelated_topicstagssource_datesource_chat
raw_threadparticipantsquestionanswerN)r   r   r   __doc____annotations__r/   r1   r2   r3   r4   r5   r6   r7   r8   r9   r   r   r    r&   r&   4   s     GJ
MLFCJ "NI"D)KKJ	 L)  HcFCr   r&   c                  t    e Zd ZU dZ ee      Zded<   dZded<   dZ	ded<   d	Z
d
ed<    ee      Zded<   y	)ThreadV2u1   개선된 스레드 (주제 기반 분리 지원))default_factoryzlist[ChatMessage]messagesr.   r'   
start_timetopic_labelNzOptional[bool]has_insightr"   insight_types)r   r   r   r:   r   listr?   r;   r@   rA   rB   rC   r   r   r    r=   r=   K   sB    ;"'"=H=JK"&K&$T:M9:r   r=   c                  >    e Zd ZU dZded<   ded<   ded<   dZd	ed
<   y)Stage1Resultu    Stage 1 (Haiku) 필터링 결과r=   threadboolrB   r"   rC   r.   r'   noise_reasonN)r   r   r   r:   r;   rI   r   r   r    rF   rF   V   s!    *L#r   rF   c                  f    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded<   dZ
ded	<   y
)BatchProgressu   배치 처리 진행 상태r   inttotal_threadsprocessed_threadsinsights_foundnoise_filterederrorsllm_call_countN)r   r   r   r:   rM   r;   rN   rO   rP   rQ   rR   r   r   r    rK   rK   `   sA    %M3sNCNCFCONCr   rK   N)
__future__r   dataclassesr   r   enumr   typingr   pydanticr   modelsr
   r'   r   r!   r;   r#   items_cat_subs_subappendr&   r=   rF   rK   r   r   r    <module>r^      s   " (    #t $/$B$ B$ B	$
 r$ B$ B$ B$ R$ R$ r$ B$ $ r$ B$  b!$
  ( 	 ##% $KD% 	4D!!TF!D6"23	4 	d#$	 . ; ; ;      r   