
    @in                        S r SSKJr  SSKJrJrJrJr   " S S\5      r " S S\5      r	 " S S	\5      r
 " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S  S!\5      r " S" S#\5      r " S$ S%\5      rg&)'z5Pydantic schemas for API request/response validation.    )	BaseModel)ListDictAnyOptionalc                   8    \ rS rSr% Sr\\S'   Sr\\	   \S'   Sr
g)QueryRequest   z"Request schema for query endpoint.queryNiteration_rounds )__name__
__module____qualname____firstlineno____doc__str__annotations__r   r   int__static_attributes__r       >   /home/ubuntu/codebase/yexijia/保研/iCoLoc/src/web/schemas.pyr	   r	      s    ,J&*hsm*r   r	   c                      \ rS rSr% Sr\\\4   \S'   \	\\\4      \S'   \	\\\4      \S'   \\S'   \
\S'   \
\S'   S	r\\S
'   Sr\\\\4      \S'   S	r\\S'   Sr\\\\4      \S'   Sr\\
   \S'   Sr\\	\\\4         \S'   Srg)QueryResponse   z#Response schema for query endpoint.paramspatternsrulesexplanationpattern_count
rule_countF	re_rankedNsimilarity_scoresintent_usedintent_datatotal_roundsiteration_historyr   )r   r   r   r   r   r   r   r   r   r   r   r"   boolr#   r   floatr$   r%   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                   >    \ rS rSr% Sr\\S'   \\   \S'   \\S'   Sr	g)FeedbackRequest   z%Request schema for feedback endpoint.
pattern_idpatternfeedbackr   N)
r   r   r   r   r   r   r   r   r   r   r   r   r   r+   r+      s    /O#YMr   r+   c                   B    \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   Srg)	FeedbackResponse$   z&Response schema for feedback endpoint.statusmessagepositive_countnegative_countr   N	r   r   r   r   r   r   r   r   r   r   r   r   r1   r1   $   s    0KLr   r1   c                   j    \ rS rSr% SrSr\\   \S'   Sr	\\
   \S'   Sr\\   \S'   S	r\\
   \S
'   Srg)TrainRequest,   z"Request schema for train endpoint.
   epochsgMbP?learning_rate    
batch_sizeg333333?marginr   N)r   r   r   r   r   r<   r   r   r   r=   r)   r?   r@   r   r   r   r   r9   r9   ,   s=    ,FHSM%*M8E?* "J"!FHUO!r   r9   c                   H    \ rS rSr% Sr\\S'   \\S'   \\   \S'   \	\S'   Sr
g)	TrainResponse4   z#Response schema for train endpoint.r3   r4   loss_historyr<   r   N)r   r   r   r   r   r   r   r   r)   r   r   r   r   r   rB   rB   4   s    -KLu+Kr   rB   c                   4    \ rS rSr% Sr\\\\4      \	S'   Sr
g)TrainingHistoryResponse<   z.Response schema for training history endpoint.	trainingsr   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   rF   rF   <   s    8DcN##r   rF   c                   .    \ rS rSr% Sr\\S'   \\S'   Srg)IterationStartRequestB   z&Request schema for starting iteration.r   r   r   Nr7   r   r   r   rJ   rJ   B   s    0Jr   rJ   c                       \ rS rSr% Sr\\S'   \\S'   \\S'   \\	\\
4      \S'   \\	\\
4      \S'   Sr\\	\\4      \S	'   S
r\\S'   S
r\\S'   Sr\\	\\
4      \S'   Sr\\	\\
4      \S'   Srg)IterationStartResponseH   z$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#   r   r)   rQ   r(   r$   r%   r   r   r   r   r   rM   rM   H   s    .OJ4S>""S#X48xS%Z 018HdK,0K$sCx.)0'+FHT#s(^$+r   rM   c                   >    \ rS rSr% Sr\\S'   \\\\   4   \S'   Sr	g)IterationNextRequestV   z'Request schema for next iteration step.rO   r/   r   N)
r   r   r   r   r   r   r   r   r   r   r   r   r   rS   rS   V   s    1O3S	>""r   rS   c                       \ rS rSr% Sr\\S'   \\S'   \\\	\
4      \S'   \\\	\
4      \S'   Sr\\\	\4      \S'   Sr\\\	\
4      \S	'   S
r\\S'   S
r\\S'   Sr\\\	\
4      \S'   Srg)IterationNextResponse\   z(Response schema for next iteration step.rP   r&   r   r   Nr#   training_resultFrQ   r$   r%   r   )r   r   r   r   r   r   r   r   r   r   r   r#   r   r)   rX   rQ   r(   r$   r%   r   r   r   r   rV   rV   \   s    2J4S>""S#X48xS%Z 01804OXd38n-4HdK,0K$sCx.)0r   rV   c                   $    \ rS rSr% Sr\\S'   Srg)IterationFinalizeRequesti   z(Request schema for finalizing iteration.rO   r   N)r   r   r   r   r   r   r   r   r   r   r   rZ   rZ   i   s
    2Or   rZ   c                       \ rS rSr% Sr\\\\4      \	S'   \\\\4      \	S'   Sr
\\\\4      \	S'   \\	S'   \\\\4      \	S'   S	r\\	S
'   Sr\\\\4      \	S'   Sr\\\\4      \	S'   Srg)IterationFinalizeResponsen   z+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   r   r   r   r]   r]   n   s    54S>""S#X48xS%Z 018DcN++K,0K$sCx.)0'+FHT#s(^$+r   r]   c                   V    \ rS rSr% Sr\\S'   \\S'   \\S'   Sr\	\
\\4      \S'   Srg)	IterationStepRequestz   z4Request schema for iteration step endpoint (Stage4).r   current_roundr&   Nmining_paramsr   )r   r   r   r   r   r   r   r   rc   r   r   r   r   r   r   r   r`   r`   z   s-    >J.2M8DcN+2r   r`   c                       \ rS rSr% Sr\\S'   \\\	\
4      \S'   \\\	\
4      \S'   \\S'   \\S'   Sr\\\	\4      \S	'   \\S
'   \\S'   \\	\
4   \S'   Srg)IterationStepResponse   z5Response schema for iteration step endpoint (Stage4).rP   r   r   total_patternstotal_rulesNr#   user_vector_normrQ   r   r   )r   r   r   r   r   r   r   r   r   r   r   r#   r   r)   r(   r   r   r   r   re   re      sn    ?J4S>""S#X48xS%Z 018NcNr   re   c                   N    \ rS rSr% Sr\\   \S'   \\   \S'   Sr\	\
   \S'   Srg)	IterationFeedbackRequest   z8Request schema for iteration feedback endpoint (Stage4).positive_patternsnegative_patterns   training_epochsr   N)r   r   r   r   r   r   r   r   rp   r   r   r   r   r   r   rk   rk      s'    BCy Cy %&OXc]&r   rk   c                   B    \ rS rSr% Sr\\S'   \\S'   \\\	4   \S'   Sr
g)IterationFeedbackResponse   z9Response schema for iteration feedback endpoint (Stage4).r3   ri   trainingr   N)r   r   r   r   r   r   r   r)   r   r   r   r   r   r   rr   rr      s    CK38nr   rr   N)r   pydanticr   typingr   r   r   r   r	   r   r+   r1   r9   rB   rF   rJ   rM   rS   rV   rZ   r]   r`   re   rk   rr   r   r   r   <module>rw      s    ;  , ,+9 +=I = i y "9 "I $i $I ,Y ,#9 #
1I 
1y 
	,	 	,39 3
I 
'y '	 r   