
    Yi                        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g)u9   
AI 配置 API

提供 AI 提供商配置的 CRUD 接口
    )	Blueprintjsonifyrequestg)dbAIProviderConfigAIProviderTypeSystemAIConfig)login_requiredadmin_required)AIProviderFactorysystem_ai_configz/api/ai-config)
url_prefixz/admin/systemGET)methodsc                  ~    [         R                  " 5       n [        R                  " 5       [        R                  " 5       [        R
                  " 5       S.n[        SU (       a  U R                  SS9OSU[        R                  " 5       S.5      $ ! [         a#  n[        S[        U5      S.5      S4s SnA$ SnAff = f)	u   获取系统 AI 配置)enabled_providersallow_user_custom_aiforce_system_aiT)include_key_previewN)successsystem_configsettingsall_providersFr   message  )r   get_system_defaultr
   get_enabled_providersr   r   r   to_dictget_all_provider_info	Exceptionstr)r   r   es      M   /Users/yu22x/Desktop/ddd_副本131/ctf/app/routes/api/system_ai_config_api.pyget_system_configr&      s    (;;= "0!E!E!G$2$G$G$I-==?
 P]]22t2Lcg +AAC	
  	  1v
   	s   BB 
B<B71B<7B<POSTc                  @    [         R                  " 5       n SU ;   Ga(  U S   nUR                  S5      nUR                  S5      nU(       a  U(       a  [        R                  R                  SSS9R                  5       nU(       ax  X$l        UR                  U5        UR                  S5      Ul	        UR                  S5      =(       d    [        R                  " U5      Ul        UR                  S	S
5      Ul        OH[        R                  " SUUUR                  S5      UR                  S5      UR                  S	S
5      SS9nSU ;   a  [        R                   " U S   5        SU ;   a  [        R"                  " U S   5        SU ;   a  [        R$                  " U S   5        [&        R(                  R+                  5         [-        SSS.5      $ ! [.         aD  n[&        R(                  R1                  5         [-        SS[3        U5       3S.5      S4s SnA$ SnAff = f)u   更新系统 AI 配置
default_aiprovider_typeapi_keyNT)user_id
is_defaultmodelbase_urlnameu   系统默认)r,   r*   r+   r.   r/   r0   r-   r   r   r   u   系统配置更新成功r   Fu   更新失败: r   )r   get_jsongetr   query	filter_byfirstr*   set_api_keyr.   r	   get_default_base_urlr/   r0   create_configr
   set_enabled_providersset_allow_user_custom_aiset_force_system_air   sessioncommitr   r"   rollbackr#   )dataai_datar*   r+   r   r$   s         r%   update_system_configrA   1   s   :! 4<(G#KK8Mkk),G 0 6 6 @ @ # !A ! %' 
 !2?/!--g6*1++g*>M'-4[[-D-zHkHklyHzM*)0V^)LM& %5$B$B $&3 '%kk'2!(Z!8$[[@#'%M $&006I1JK "T)33D9O4PQ$..t4E/FG


1
  	
  


'Ax0
   	s   GG 
H9HHHz/admin/system/testc                      [         R                  " 5       n U R                  S5      nU R                  S5      nU R                  S5      nU R                  S5      nU(       a  U(       d  [        SSS.5      S4$ [        R
                  " UUUUS	9nUR                  5       n[        S
US.5      $ ! [         a&  n[        SS[        U5       3S.5      S4s SnA$ SnAff = f)u   测试系统 AI 连接r*   r+   r/   r.   Fu#   请提供提供商类型和 API Keyr   i  )r*   r+   r/   r.   T)r   test_resultu   测试失败: r   N)	r   r1   r2   r   r   createtest_connectionr"   r#   )r?   r*   r+   r/   r.   providerresultr$   s           r%   test_system_connectionrH   r   s    "!1((9%88J'!G @    %++'	
 ))+!
  	
  'Ax0
   	s$   A6B. 94B. .
C8CCCN)__doc__flaskr   r   r   r   app.models.databaser   r   r	   r
   app.services.auth.decoratorsr   r   app.services.ai.providersr   __name__system_ai_config_bprouter&   rA   rH        r%   <module>rS      s    1 0 T T G 7 2HIYZ  ?UG<  =6 ?VH=<  ><~ /&B$  C$rR   