o
    "i                  
   @   s2  d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dl!m"Z" e Z#e	e#j$ ee#j%dZ&e&'e ee#j(Z)ee#j*e#j+e#j,e#j-e#j.dZ/ee#j0e#j1e#j2e#j3e#j4dZ5ee#j6e#j7e#j8e#j9e#j:dZ;ee#j<e#j=e)e#j>dZ?e e#j@e#j=dZAee#jBe#jCe#jDe#jEdZFee/e5e?dZGee/e?eAe)e#jHe#jIe#jJe#jKdZLe"e5e;eFdZMee;dZNe ZOeGeO_PeLeO_QeFeO_ReMeO_SeNeO_TeeO e&Ue e&Vddd ZWe&Vdd d! ZXd"S )#    )FastAPI)routerset_containerServiceContainer)get_settings)configure_logging)MetricsMiddlewaremetrics_response)ClickHouseRepository)MySQLRepository)QdrantRepository)RedisCacheRepository)EmbeddingService)IngestionService)
LLMService)ReportService)RetrievalService)RerankerService)ScoringService)title)hostportcollection_namehttpsapi_key)r   r   userpassworddb)r   r   usernamer   database)
model_namedevice
cache_repo	cache_ttl)r    r!   )base_urlr   modeltimeout_seconds)qdrant_repo
mysql_repoemb_service)r'   r)   reranker_servicer"   retrieval_cache_ttlcandidate_kdefault_top_kkeyword_weight)r(   clickhouse_repollm_service)r/   z/healthc                   C   s   ddiS )Nstatusok r3   r3   r3   app/main.pyhealthZ   s   r5   z/metricsc                   C   s   t  S )N)r	   r3   r3   r3   r4   metrics_   s   r6   N)Yfastapir   app.api.routesr   r   r   app.core.configr   app.core.loggingr   app.core.observabilityr   r	   &app.repositories.clickhouse_repositoryr
   !app.repositories.mysql_repositoryr   "app.repositories.qdrant_repositoryr   app.repositories.redis_cacher   app.services.embedding_servicer   app.services.ingestion_servicer   app.services.llm_servicer   app.services.report_servicer   app.services.retrieval_servicer   app.services.reranker_servicer   app.services.scoring_servicer   settings	log_levelapp_nameappadd_middleware	redis_urlr"   qdrant_hostqdrant_portqdrant_collectionqdrant_httpsqdrant_api_keyr'   
mysql_host
mysql_port
mysql_usermysql_passwordmysql_dbr(   clickhouse_hostclickhouse_portclickhouse_userclickhouse_passwordclickhouse_dbr/   embedding_model_nameembedding_deviceembedding_cache_ttl_secondsembedding_servicereranker_model_namer*   llm_base_urlllm_api_key	llm_modelllm_timeout_secondsr0   ingestion_serviceretrieval_cache_ttl_secondsretrieval_candidate_kretrieval_top_khybrid_keyword_weightretrieval_servicescoring_servicereport_service	container	ingestion	retrievalllmscoringreportinclude_routergetr5   r6   r3   r3   r3   r4   <module>   s    






