
    @in                        d Z ddlmZ ddlmZmZmZmZ  G d de      Z G d de      Z	 G d d	e      Z
 G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#e      Z G d$ d%e      Zy&)'z5Pydantic schemas for API request/response validation.    )	BaseModel)ListDictAnyOptionalc                   0    e Zd ZU dZeed<   dZee   ed<   y)QueryRequestz"Request schema for query endpoint.queryNiteration_rounds)	__name__
__module____qualname____doc__str__annotations__r   r   int     B   /home/ubuntu/codebase/yexijia/保研/colocation_mvp/web/schemas.pyr	   r	      s    ,J&*hsm*r   r	   c                      e Zd ZU dZeeef   ed<   eeeef      ed<   eeeef      ed<   eed<   e	ed<   e	ed<   dZ
eed	<   d
Zeeeef      ed<   dZeed<   d
Zeeeef      ed<   d
Zee	   ed<   d
Zeeeeef         ed<   y
)QueryResponsez#Response schema for query endpoint.paramspatternsrulesexplanationpattern_count
rule_countF	re_rankedNsimilarity_scoresintent_usedintent_datatotal_roundsiteration_history)r   r   r   r   r   r   r   r   r   r   r   boolr   r   floatr    r!   r"   r#   r   r   r   r   r      s    -cN4S>""S#XOIt48xS%Z 018K,0K$sCx.)0"&L(3-&8<xT#s(^ 45<r   r   c                   6    e Zd ZU dZeed<   ee   ed<   eed<   y)FeedbackRequestz%Request schema for feedback endpoint.
pattern_idpatternfeedbackN)r   r   r   r   r   r   r   r   r   r   r   r'   r'      s    /O#YMr   r'   c                   :    e Zd ZU dZeed<   eed<   eed<   eed<   y)FeedbackResponsez&Response schema for feedback endpoint.statusmessagepositive_countnegative_countNr   r   r   r   r   r   r   r   r   r   r,   r,   $   s    0KLr   r,   c                   b    e Zd ZU dZdZee   ed<   dZee	   ed<   dZ
ee   ed<   dZee	   ed	<   y
)TrainRequestz"Request schema for train endpoint.
   epochsgMbP?learning_rate    
batch_sizeg333333?marginN)r   r   r   r   r5   r   r   r   r6   r%   r8   r9   r   r   r   r3   r3   ,   s=    ,FHSM%*M8E?* "J"!FHUO!r   r3   c                   @    e Zd ZU dZeed<   eed<   ee   ed<   eed<   y)TrainResponsez#Response schema for train endpoint.r-   r.   loss_historyr5   N)	r   r   r   r   r   r   r   r%   r   r   r   r   r;   r;   4   s    -KLu+Kr   r;   c                   ,    e Zd ZU dZeeeef      ed<   y)TrainingHistoryResponsez.Response schema for training history endpoint.	trainingsN)	r   r   r   r   r   r   r   r   r   r   r   r   r>   r>   <   s    8DcN##r   r>   c                   &    e Zd ZU dZeed<   eed<   y)IterationStartRequestz&Request schema for starting iteration.r
   r   Nr1   r   r   r   rA   rA   B   s    0Jr   rA   c                       e Zd ZU dZeed<   eed<   eed<   eeee	f      ed<   eeee	f      ed<   dZ
eeeef      ed<   d	Zeed
<   d	Zeed<   dZeeee	f      ed<   dZeeee	f      ed<   y)IterationStartResponsez$Response schema for iteration start.
session_idroundr"   r   r   Nr   Fis_finalr    r!   r   )r   r   r   r   r   r   r   r   r   r   r   r   r%   rF   r$   r    r!   r   r   r   r   rC   rC   H   s    .OJ4S>""S#X48xS%Z 018HdK,0K$sCx.)0'+FHT#s(^$+r   rC   c                   6    e Zd ZU dZeed<   eeee   f   ed<   y)IterationNextRequestz'Request schema for next iteration step.rD   r*   N)r   r   r   r   r   r   r   r   r   r   r   rH   rH   V   s    1O3S	>""r   rH   c                       e Zd ZU dZeed<   eed<   eeee	f      ed<   eeee	f      ed<   dZ
eeeef      ed<   dZeeee	f      ed<   d	Zeed
<   d	Zeed<   dZeeee	f      ed<   y)IterationNextResponsez(Response schema for next iteration step.rE   r"   r   r   Nr   training_resultFrF   r    r!   )r   r   r   r   r   r   r   r   r   r   r   r   r%   rK   rF   r$   r    r!   r   r   r   rJ   rJ   \   s    2J4S>""S#X48xS%Z 01804OXd38n-4HdK,0K$sCx.)0r   rJ   c                       e Zd ZU dZeed<   y)IterationFinalizeRequestz(Request schema for finalizing iteration.rD   N)r   r   r   r   r   r   r   r   r   rM   rM   i   s
    2Or   rM   c                       e Zd ZU dZeeeef      ed<   eeeef      ed<   dZ	e
eeef      ed<   eed<   eeeef      ed<   dZeed	<   dZe
eeef      ed
<   dZe
eeef      ed<   y)IterationFinalizeResponsez+Response schema for iteration finalization.r   r   Nr   r   r#   Fr    r!   r   )r   r   r   r   r   r   r   r   r   r   r   r%   r    r$   r!   r   r   r   r   rO   rO   n   s    54S>""S#X48xS%Z 018DcN++K,0K$sCx.)0'+FHT#s(^$+r   rO   c                   N    e Zd ZU dZeed<   eed<   eed<   dZee	ee
f      ed<   y)IterationStepRequestz4Request schema for iteration step endpoint (Stage4).r
   current_roundr"   Nmining_params)r   r   r   r   r   r   r   rS   r   r   r   r   r   r   rQ   rQ   z   s-    >J.2M8DcN+2r   rQ   c                       e Zd ZU dZeed<   eeee	f      ed<   eeee	f      ed<   eed<   eed<   dZ
eeeef      ed<   eed	<   eed
<   eee	f   ed<   y)IterationStepResponsez5Response schema for iteration step endpoint (Stage4).rE   r   r   total_patternstotal_rulesNr   user_vector_normrF   r   )r   r   r   r   r   r   r   r   r   r   r   r   r%   r$   r   r   r   rU   rU      sn    ?J4S>""S#X48xS%Z 018NcNr   rU   c                   F    e Zd ZU dZee   ed<   ee   ed<   dZee	   ed<   y)IterationFeedbackRequestz8Request schema for iteration feedback endpoint (Stage4).positive_patternsnegative_patterns   training_epochsN)
r   r   r   r   r   r   r   r^   r   r   r   r   r   rZ   rZ      s'    BCy Cy %&OXc]&r   rZ   c                   :    e Zd ZU dZeed<   eed<   eeef   ed<   y)IterationFeedbackResponsez9Response schema for iteration feedback endpoint (Stage4).r-   rX   trainingN)	r   r   r   r   r   r   r%   r   r   r   r   r   r`   r`      s    CK38nr   r`   N)r   pydanticr   typingr   r   r   r   r	   r   r'   r,   r3   r;   r>   rA   rC   rH   rJ   rM   rO   rQ   rU   rZ   r`   r   r   r   <module>rd      s    ;  , ,+9 +=I = i y "9 "I $i $I ,Y ,#9 #
1I 
1y 
	,	 	,39 3
I 
'y '	 r   