
    Xj&                     j   d dl mZ d dlmZmZ d dlmZ  ee          Zdddddd	d
dddgdd
dddddd	dddgdd
dddddd	ddddgdd
ddddd d	d
dddgdd
d!d"d#d$d%d	d
dddgdd
d&d'd(d)d*d	d
dddgdd
d+d,d-d.d/d	d
dddgdd
d0d1d2d3d4d	d
dddgdd
d5d6d7d8d9d	d
dddgdd
d:d;d<d=d>d	d
ddgdd
d?d@dAdBdCd	d
ddDgdd
dEdFdGdHdHdIdJd
ddgdKdKdLdKdMdNdFdOdPdPdIdJd
ddgdKdKdLdKdMdQdFdRdSdSdIdJd
ddDgdKdKdLdKdMdTdUdVdWdWdXdJd
ddgdKdKdLddMdYdZd[d\d d]d^d_g dd
gZ	d`daddbdKdKdcdddeddfdgdKdKdhdidjdDdkdKdKdcdldmddndKdKdcdoZ
dp Zdq ZdrS )s    )Base)SessionLocalengine)
get_loggerOpenAIopenaiz#10a37fzhttps://api.openai.com/v1d   
public_apiopenai_compatiblebearerchat	embeddingF)
nameiconcolordefault_base_urlpriorityprovider_kindprotocol	auth_typecapabilitiesis_local	Anthropic	anthropicz#d4a574zhttps://api.anthropic.comZ   api_keyGooglegooglez#4285f4z0https://generativelanguage.googleapis.com/v1betaP   geminiDeepSeekdeepseekz#1e40afzhttps://api.deepseek.comF   u   阿里云百炼alibabaz#ff6a00z1https://dashscope.aliyuncs.com/compatible-mode/v1<   u   智谱AIzhipuz#4169e1z$https://open.bigmodel.cn/api/paas/v42   Moonshotmoonshotz#7c3aedzhttps://api.moonshot.cn/v1(   u   百度千帆baiduz#2932e1zhttps://qianfan.baidubce.com/v2   Mistralmistralz#f2a73bzhttps://api.mistral.ai/v1   u   火山引擎
volcenginez#f97316z(https://ark.cn-beijing.volces.com/api/v37   Coherecoherez#d946efzhttps://api.cohere.com/v1   rerank   本地 vLLMserverz#6366f1zhttp://localhost:8100/v1
   self_deployedTz/health)r   r   r   r   base_urlr   r   r   r   r   r   
configuredhealthcheck_pathenabled   本地 infinity 向量z#8b5cf6zhttp://localhost:8200/v1   本地 infinity 重排z#a78bfazhttp://localhost:8300/v1
   本地 MLXapplez#374151zhttp://localhost:8400/v1   u	   自定义customz#6b7280 self_hostedcustom_httpnonezlocal-qwen-chatu   Qwen3.5-27B-AWQ (本地)zQwen3.5-27B-AWQ)coder   typeremote_model_idr=   	is_activezlocal-bge-m3u   bge-m3 (本地)i   zbge-m3)rH   r   rI   	dimensionrJ   r=   rK   zlocal-bge-rerankeru   bge-reranker-v2-m3 (本地)zbge-reranker-v2-m3zlocal-mlx-chatu   Qwen3.5-27B MLX (本地)zQwen3.5-27B)r6   r>   r?   r@   c                  B   ddl m fdt          j        j                                        D             } t          j                            t          |            t          	                    d           t                       t          	                    d           d S )Nr   )TenantSchemaManagerc                 0    g | ]}|j         j        v |S  )r   PUBLIC_TABLES).0tablerN   s     6/lsinfo/ai/hellotax_ai/base_platform/app/db/init_db.py
<listcomp>zinit_db.<locals>.<listcomp>  s4       :,::: 	:::    )bindtableszDatabase tables createdz!Database initialization completed)app.db.tenant_schemarN   r   metadatarX   values
create_allr   loggerinfo_seed_providers)tables_to_createrN   s    @rT   init_dbra      s    888888   ])0022  
 	M&1ABBB
KK)***
KK344444rV   c                     ddl m} m} t                      }	 |                    |                              |j                                                  }i }g }|D ]y}|j        |vr|||j        <   |                    |           	                    | j
        |j        k                                              }|dk    r|                    |           z|D ]}|                    |           d |                    |                                          D             }	t          D ]f}
|	                    |
d                   }|r,|
                                D ]\  }}t#          |||           K|                     |di |
           g|                                 d |                    |                                          D             }d |                    |                                           D             }t(                                          D ]\  }}|                    |          }|s|                    |d                   }|rZ|j        |_
        |j        |                    d          k    r|d         |_        d	|v r|d	         |_        d
|v r|d
         |_        |                     | dd|j        i|           |                                 nH# t0          $ r;}|                                 t4                              d|            Y d }~nd }~ww xY w|                                 d S # |                                 w xY w)Nr   )ModelModelProviderc                     i | ]
}|j         |S rP   r   rR   ps     rT   
<dictcomp>z#_seed_providers.<locals>.<dictcomp>  s    EEE!AFAEEErV   r   c                     i | ]
}|j         |S rP   rf   rg   s     rT   ri   z#_seed_providers.<locals>.<dictcomp>&  s    OOOAafaOOOrV   c                     i | ]
}|j         |S rP   )rH   )rR   ms     rT   ri   z#_seed_providers.<locals>.<dictcomp>'  s    DDD161DDDrV   rH   rI   r=   rK   provider_idzProvider seeding failed: rP   )app.models.providerrc   rd   r   queryorder_byidallr   filterrm   countappenddeletePROVIDER_SEEDSgetitemssetattraddcommitMODEL_SEEDSrI   r=   rK   	Exceptionrollbackr]   warningclose)rc   rd   dball_providersby_nameduplicates_to_removerh   model_countdupexistingdataproviderkeyvalueexisting_providersexisting_modelsprovider_name
model_datamodeles                       rT   r_   r_     s   88888888	B,//889IJJNNPP! 	3 	3AvW$$"# hhuoo44U5F!$5NOOUUWW!##(//222' 	 	CIIcNNNNEErxx'>'>'B'B'D'DEEE" 	. 	.D||DL11H ."&**,, 2 2JCHc511112 }},,t,,----
		OO-1H1H1L1L1N1NOOODDbhhuoo.A.A.C.CDDD)4):):)<)< 	E 	E%M:)--m<<H #''
6(:;;E 	E$,K!:!7!777!+F!3EJ
**$.y$9EM*,,&0&=EOuuCCC
CCDDDD
		 8 8 8
6166777777778 	








s0   KK+ *M	 +
L051L+&M	 +L00M	 	MN)app.db.baser   app.db.sessionr   r   common_loggingr   __name__r]   rw   r}   ra   r_   rP   rV   rT   <module>r      s         / / / / / / / / % % % % % %	H		 7%'-  7%  N%-  6%'-  "O%'-  B%'-  8%'-  =%'-  7%'-  F%'  7%'!
  6.('% " )6.('$% " )6.('!
% " 6.('% " &! KQh "*,  !#  %-/  !*( 5" "J5 5 50 0 0 0 0rV   