
    Yi                     D   S r SSKJrJrJrJr  SSKJrJrJ	r	J
r
  SSKJrJr  SSKJr  \" S\SS9r\R%                  S	S
/S9\S 5       5       r\R%                  S	S/S9\S 5       5       r\R%                  SS/S9\S 5       5       r\R%                  S	S/S9\S 5       5       rg)u9   
AI 配置 API

提供 AI 提供商配置的 CRUD 接口
    )	Blueprintjsonifyrequestg)dbAIProviderConfigAIProviderTypeSystemAIConfig)login_requiredadmin_required)AIProviderFactoryaugment_tokenz/api/ai-config)
url_prefixz/augment/tokenGET)methodsc                     SSK Jn    [        R                  R                  nU R
                  R                  USS9R                  5       nU(       ao  UR                  =(       d    Sn[        U5      S:  a  USS  S	US
S  3nOSn[        SSUUR                  (       a  UR                  R                  5       OSS.5      $ [        SSS.5      $ ! [         a#  n[        S[        U5      S.5      S4s SnA$ SnAff = f)u$   获取用户的 Augment Token 状态r   AugmentSessionTokenFuser_id	is_global    N
   z...iu	   已配置T)success	has_tokenpreview
updated_at)r   r   r   message  )app.models.database.modelsr   r   useridquery	filter_byfirsttokenlenr   r   	isoformat	Exceptionstr)r   r   token_record	token_strr   es         J   /Users/yu22x/Desktop/ddd_副本131/ctf/app/routes/api/augment_token_api.pyget_augment_tokenr1      s    ?&&))*00:: ; 
 %' 	
 $**0bI9~"&s^,C	#$/@A%!"EQE\E\l55??Abf	   "  
  1v
   	s$   B7C  C 
C;C60C;6C;POSTc                  f   SSK Jn   SSKJn  SSKn [        R
                  R                  n[        R                  " 5       nU(       a  SU;  a  [        SSS.5      S	4$ US   R                  5       nU(       d  [        SSS.5      S	4$  UR                  U5        U R                  R                  USS9R                  5       nU(       a  XVl        UR#                  5       Ul        OFU " UUSSUR#                  5       UR#                  5       S9n[&        R(                  R+                  U5        [,        R                  R/                  [,        R0                  U:H  5      R3                  SS05        [,        R                  R                  USS9R                  5       nU(       a$  SUl        SUl        UR#                  5       Ul        OM[-        USSSSSSSUR#                  5       UR#                  5       S9
n[&        R(                  R+                  U5        [&        R(                  R9                  5         [        SSS.5      $ ! UR                   a    [        SS
S.5      S	4s $ f = f! [:         aD  n[&        R(                  R=                  5         [        SS[?        U5       3S.5      S4s SnA$ SnAff = f)u3   保存用户的 Augment Token 并设置为默认 AIr   r   )datetimeNr(   F   Token 不能为空r     u/   Token 格式错误，请确保是有效的 JSONr   u   用户 Token)r   r(   namer   
created_atr   
is_defaultaugment)r   provider_typeTzaugment-clir   zAugment CLI)
r   r;   modelapi_key_encryptedbase_url	is_activer9   r7   r8   r   u3   Token 保存成功，已设置 Augment 为默认 AIu   保存失败: r!   ) r"   r   r4   jsonr   r#   r$   r   get_jsonr   striploadsJSONDecodeErrorr%   r&   r'   r(   utcnowr   r   sessionaddr   filterr   updater?   r9   commitr+   rollbackr,   )	r   r4   r@   r   datar.   r-   augment_configr/   s	            r0   save_augment_tokenrN   <   s    ?!R&&))!wd*u9MNOQTTTM'')	u9MNOQTTT	rJJy!
 +00:: ; 
 %' 	
 !*&.oo&7L#.##??,#??,L JJNN<( 	%%$$/	

&,&
' *//99# : 
 %' 	
 '+N$(,N%(0(9N% .'#"$"#??,#??,N JJNN>*


L
  	s ## 	ru9jklnqqq	r|  


'Ax0
   	sI   AI" )I" 	H< F!I" < II" II" "
J0,9J+%J0+J0z/augment/token/validatec                     SSK Jn    [        R                  " 5       nU(       a  SU;  a  [	        SSS.5      S4$ US   R                  5       nU(       d  [	        SSS.5      S4$ U " U5      n[	        US   US	   UR                  S
5      S.5      $ ! [         a&  n[	        SS[        U5       3S.5      S4s SnA$ SnAff = f)u!   验证 Augment Token 是否有效r   )validate_augment_tokenr(   Fr5   r   r6   validr    
token_info)r   r    rR   u   验证失败: r!   N)	&app.services.ai.helpers.augment_helperrP   r   rA   r   rB   getr+   r,   )rP   rL   r.   resultr/   s        r0   validate_augment_token_apirV      s     N!wd*u9MNOQTTTM'')	u9MNOQTTT (	2gi( **\2
  	  'Ax0
   	s(   1B )B $+B 
C B;5C ;C DELETEc                     SSK Jn    [        R                  R                  nU R
                  R                  USS9R                  5       nU(       aK  [        R                  R                  U5        [        R                  R                  5         [        SSS.5      $ [        SSS.5      S	4$ ! [         aD  n[        R                  R                  5         [        SS
[        U5       3S.5      S4s SnA$ SnAff = f)u   删除用户的 Augment Tokenr   r   Fr   Tu   Token 已删除r   u   Token 不存在i  u   删除失败: r!   N)r"   r   r   r#   r$   r%   r&   r'   r   rF   deleterJ   r   r+   rK   r,   )r   r   r-   r/   s       r0   delete_augment_tokenrZ      s     ?&&))*00:: ; 
 %' 	
 JJl+JJ,  
  ,   
  


'Ax0
   	s$   BB, B, ,
C:69C5/C:5C:N)__doc__flaskr   r   r   r   app.models.databaser   r   r	   r
   app.services.auth.decoratorsr   r   app.services.ai.providersr   __name__augment_token_bprouter1   rN   rV   rZ        r0   <module>re      s    1 0 T T G 7_hCST  (5':#  ;#L (6(;X  <Xv 1F8D  E> (8*=  >rd   