
    j%
                     v    d dl mZmZmZmZmZmZ d dlmZ d dl	m
Z
  G d de
          Z G d de
          ZdS )	    )JSONBooleanColumn
ForeignKeyIntegerString)relationship)	BaseModelc                      e Zd ZdZddiZ e ed          d          Z e ed          d          Z e ed	          d          Z	 e ed
          d          Z
 eed          Z e ed          d          Z e ed          d          Z e ed          d          Z eed          Z eed          Z e ed	          d          Z e ed	          d          Z e ed	          d          Z eed          Z eed          Z e ed          d          Z eed          Z eddd          ZdeddfdZdefdZdS )ModelProvidermodel_providersschemapublicd   Fnullable   T2      defaultModelproviderzall, delete-orphan)back_populatescascadeplaintext_keyreturnNc                 \    ddl m} |r|                    |          | _        d S d | _        d S Nr   )encryption_service)app.core.encryptionr    encryptapi_key)selfr   r    s      ;/lsinfo/ai/hellotax_ai/base_platform/app/models/provider.pyset_api_keyzModelProvider.set_api_key   s@    :::::: 	 -55mDDDLLLDLLL    c                 T    ddl m} | j        r|                    | j                  S d S r   )r!   r    r#   decrypt)r$   r    s     r%   get_api_keyzModelProvider.get_api_key%   s9    ::::::< 	<%--dl;;;tr'   ) __name__
__module____qualname____tablename____table_args__r   r   namedescriptioniconcolorr   
configureddefault_base_urlr#   base_urlr   priorityenabledprovider_kindprotocol	auth_typer   capabilitiesis_localhealthcheck_pathextra_configr	   modelsstrr&   r*    r'   r%   r   r      s%       %M)N6&&++...D&t444K6&&**t,,,DF66"::---E///JvffSkkD999fVVC[[4000GvffSkkD111Hvgs+++HfWd+++GF66"::555MvffRjj4000HvvbzzD111I6$...Lvgu---HvffSkkD9996$...L\'*FZ[[[F           S      r'   r   c                      e Zd ZdZddiZ ee ed          d          Z e e	d          dd	          Z
 e e	d          d          Z e e	d
          d          Z eed          Z eed          Z eed          Z eed          Z e e	d          d          Z eed          Z eed          Z eed          Z eed          Z eed          Z eed          Z edd          ZdS )r   r@   r   r   zpublic.model_providers.idFr   r   T)r   uniquer   r   r   r   )r   N)r+   r,   r-   r.   r/   r   r   r   provider_idr   coder0   typer   tags	dimensionr   r8   	is_activeremote_model_idcontext_lengthmax_output_tokenssupports_streamsupports_toolsr7   r?   r	   r   rB   r'   r%   r   r   -   s       M)N&**-H"I"ITYZZZK6&&++d;;;D6&&++...D6&&**u---D6$&&&Dw...IfWd+++Gw---IfVVC[[4888OVGd333Nw666fWd333OVGU333Nvgs+++H6$...L|OHEEEHHHr'   r   N)
sqlalchemyr   r   r   r   r   r   sqlalchemy.ormr	   app.models.baser
   r   r   rB   r'   r%   <module>rS      s    I I I I I I I I I I I I I I I I ' ' ' ' ' ' % % % % % %# # # # #I # # #LF F F F FI F F F F Fr'   