
    id%                    b    d Z ddlmZ ddlmZ ddlmZmZ  G d de          Z e            Z	dS )u   
全局配置中心 —— 从环境变量 / .env 文件加载所有配置项，提供开发环境默认值。
Application settings loaded from environment variables with sensible defaults.
    )annotations)Path)BaseSettingsSettingsConfigDictc                     e Zd ZU dZ e e ee                                          j	        j	        dz            ddd          Z
dZded	<   d
Zded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded <   d!Zded"<   d#Zded$<   d!Zded%<   d&Zded'<   d(Zded)<   dZded*<   dZded+<   d,Z ded-<   dZ!ded.<   dZ"ded/<   dZ#ded0<   d1Z$ded2<   d3Z%ded4<   d5Z&ded6<   d7Z'ded8<   d9Z(ded:<   d;Z)ded<<   d=Z*ded><   d?Z+ded@<   dAZ,dedB<   dCZ-dedD<   dEZ.dedF<   dGZ/dHedI<   dJZ0dedK<   dLZ1dedM<   dAZ2dedN<   dCZ3dedO<   dPZ4dedQ<   dRZ5dedS<   dTZ6dedU<   dVZ7dedW<   dXZ8dedY<    edZ          Z9d[ed\<   e:dd^            Z;d_Z<d`eda<   dbZ=dedc<   dLZ>dedd<   deZ?dedf<   dgZ@dedh<   diZAdedj<   g dkZBdledm<   dLZCdedn<   doZDdedp<   dLZEdedq<   drZFdeds<   deZGdedt<   duZHdedv<   dLZIdedw<   d7ZJdedx<   dyZKdedz<   dyZLded{<   dyZMded|<   d}ZNded~<   dyZOded<   dZPded<   diZQded<   dZRded<   dZSded<   dZTded<   dZUded<   dZVded<   dZWded<   dZXded<   ddgZYdled<   dS )Settingsu|  后端全局配置类，涵盖 ES、Neo4j、Redis、LLM、Embedding 等所有基础设施连接参数及业务开关。

    Central configuration for the zm-rag backend.

    Values are read from environment variables (case-insensitive) or a `.env`
    file located next to this module.  Every field has a default that matches
    the docker-compose development environment.
    z.envzutf-8Fignore)env_fileenv_file_encodingcase_sensitiveextrazzm-ragstrapp_namez0.1.0app_versionbooldebugzhttp://localhost:9200es_host es_usernamees_passwordgov_doc_chunkses_chunk_indexgov_doc_metaes_meta_indexgov_service_guideses_service_guide_index   intes_request_timeoutes_verify_certsr   es_number_of_replicaszbolt://localhost:7687	neo4j_urineo4j
neo4j_userzm_rag_2024neo4j_passwordneo4j_databasezredis://localhost:6379/0	redis_urli,  redis_permissions_ttlmysql_enabled
mysql_hosti  
mysql_port
mysql_usermysql_passwordmysql_databaseutf8mb4mysql_charset   mysql_connect_timeout   mysql_pool_minsize
   mysql_pool_maxsizemysqlresearch_session_backendi:	 research_session_ttl_secondszredis://localhost:6379/1celery_broker_urlzredis://localhost:6379/2celery_result_backendzhttp://localhost:11434/v1llm_base_urlzno-keyllm_api_keyzqwen2.5:14b	llm_modelg333333?floatllm_temperaturei   llm_max_tokensTllm_enable_thinkingembedding_base_urlembedding_api_keyzbge-m3:latestembedding_modeli   embedding_dimensions   embedding_batch_sizez&zm-rag-dev-secret-change-in-production
jwt_secretHS256jwt_algorithmz/data/filesr   file_storage_pathreturnc                    | j         S )z!Alias for backward compatibility.)rM   )selfs    $D:\work\zm-rag\backend\app\config.pypdf_storage_pathzSettings.pdf_storage_pathk   s     %%    )pdfdocdocxxlsxlsxpptpptxwpsetofdpngjpgjpegtiffbmptxtmdmarkdownztuple[str, ...]supported_file_typesd   max_file_size_mbdocling_ocr_enabledi   docling_max_tokenszhttp://localhost:18800converter_base_urlx   converter_timeout)rU   rW   rY   r[   r\   r]   z	list[str]formats_need_conversiongraph_build_enabledi.  graph_max_content_charssummary_enabledi@  summary_max_content_charssummary_max_tokensiP  analysis_max_content_charsrate_limit_enabledrate_limit_research_max<   rate_limit_research_windowrate_limit_search_maxrate_limit_search_window   rate_limit_default_maxrate_limit_default_windowi  embedding_cache_ttlsearch_cache_ttlgov_doc_ingest_traceses_trace_indexgov_doc_ingest_eventses_event_indexgov_doc_ingest_artifactses_artifact_index   trace_retention_daysZ   event_retention_days artifact_retention_days_standard   artifact_retention_days_debugzhttp://localhost:3000zhttp://localhost:5173cors_originsN)rN   r   )Z__name__
__module____qualname____doc__r   r   r   __file__resolveparentmodel_configr   __annotations__r   r   r   r   r   r   r   r   r   r    r!   r"   r$   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r1   r3   r5   r7   r9   r:   r;   r<   r=   r>   r?   rA   rB   rC   rD   rE   rF   rG   rI   rJ   rL   rM   propertyrR   rf   rh   ri   rj   rk   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rx   ry   rz   r|   r}   r~   r   r   r   r   r   r   r   r   r    rS   rQ   r   r      s          &%TT(^^++--4;fDEE!	  L HKE +G****KK*N****'M''''"66666     !O!!!!!""""" -I,,,,J'N''''!N!!!! 0I////!$$$$$  MJJJNN"M""""!"""""      %,++++(. .... 87777!;;;;; 4L3333  K"I"""" O    N $$$$$ :9999%%%%%*O**** $$$$$ !"!!!! ?J>>>> M     #d=111111& & & X&-    
   !%$$$$!!!!! 76666      *S)R)RRRRR !%$$$$#))))) !O    %*****!!!!!
 '-,,,,  $#####%%%%%&(((((!#####$&&&&&"%%%%%%'''''  $#### 2N11111N111177777 ##### """"",.$....)*!****  78OPLPPPPPPrS   r   N)
r   
__future__r   pathlibr   pydantic_settingsr   r   r   settingsr   rS   rQ   <module>r      s    
 # " " " " "       > > > > > > > >dQ dQ dQ dQ dQ| dQ dQ dQP 8::rS   