1+ # from pydantic import BaseSettings
2+ from pydantic import Field
3+ from pydantic_settings import BaseSettings , SettingsConfigDict
4+
5+
6+ class RAGSettings (BaseSettings ):
7+ """Centralized application settings loaded from environment variables."""
8+
9+ # API service
10+ api_host : str = Field (default = "0.0.0.0" , validation_alias = "API_HOST" )
11+ api_port : int = Field (default = 10000 , validation_alias = "API_PORT" )
12+ api_url : str = Field (default = "http://127.0.0.1:10001" , validation_alias = "API_URL" )
13+
14+ # Upstream LLM service (gomall)
15+ gomall_base_url : str = Field (default = "http://10.208.61.1:32004/api/v1/1504_gomall_qwen3/Qwen3-30B-A3B-Instruct-2507/" , validation_alias = "GOMALL_BASE_URL" )
16+ gomall_api_key : str = Field (default = "" , validation_alias = "GOMALL_API_KEY" )
17+ llm_name : str = Field (default = "Qwen3-30B-A3B-Instruct-2507" , validation_alias = "LLM_NAME" )
18+ # Tool specific
19+ rewriter_api_url : str = Field (default = "http://10.208.61.1:32004/api/v1/1504_gomall_qwen3/Qwen3-30B-A3B-Instruct-2507/" , validation_alias = "REWRITER_API_URL" )
20+
21+ # Local rerank service
22+ rerank_base_url : str | None = Field (default = None , validation_alias = "RERANK_BASE_URL" )
23+ rerank_api_key : str | None = Field (default = None , validation_alias = "RERANK_API_KEY" )
24+
25+
26+ embedding_name : str = Field (default = "G:/pretrained_models/mteb/bge-large-zh-v1.5" , validation_alias = "EMBEDDING_NAME" )
27+ embedding_path : str = Field (default = "G:/pretrained_models/mteb/bge-large-zh-v1.5" , validation_alias = "EMBEDDING_PATH" )
28+
29+ reranker_name : str = Field (default = "G:/pretrained_models/mteb/bge-reranker-large" , validation_alias = "RERANKER_NAME" )
30+ reranker_path : str = Field (default = "G:/pretrained_models/mteb/bge-reranker-large" , validation_alias = "RERANKER_PATH" )
31+ # Paths
32+ docs_path : str = Field (default = "G:/Projects/TrustRAG/data/docs" , validation_alias = "DOCS_PATH" )
33+ index_path : str = Field (default = "G:/Projects/TrustRAG/examples/retrievers/dense_cache" , validation_alias = "INDEX_PATH" )
34+
35+ model_config = SettingsConfigDict (
36+ env_file = ".env" ,
37+ env_file_encoding = "utf-8" ,
38+ case_sensitive = False ,
39+ extra = "ignore" ,
40+ )
0 commit comments