33
44from dotenv import load_dotenv
55from pydantic import Field
6- from pydantic_settings import BaseSettings
6+ from pydantic_settings import BaseSettings , SettingsConfigDict
77
88load_dotenv ()
99
1010
1111class Settings (BaseSettings ):
12- openai_api_key : str = Field ("" , env = "OPENAI_API_KEY" )
13- finnhub_api_key : str = Field ("" , env = "FINNHUB_API_KEY" )
14- alpha_vantage_api_key : Optional [str ] = Field (None , env = "ALPHA_VANTAGE_API_KEY" )
15- financial_data_api_key : Optional [str ] = Field (None , env = "FINANCIAL_DATA_API_KEY" )
12+ model_config = SettingsConfigDict (
13+ env_file = ".env" , case_sensitive = False , extra = "ignore"
14+ )
15+
16+ openai_api_key : str = Field (default = "" )
17+ finnhub_api_key : str = Field (default = "" )
18+ alpha_vantage_api_key : Optional [str ] = Field (default = None )
19+ financial_data_api_key : Optional [str ] = Field (default = None )
1620
17- log_level : str = Field ("INFO" , env = "LOG_LEVEL " )
18- max_concurrent_agents : int = Field (5 , env = "MAX_CONCURRENT_AGENTS" )
19- analysis_timeout_seconds : int = Field (30 , env = "ANALYSIS_TIMEOUT_SECONDS" )
21+ log_level : str = Field (default = "INFO " )
22+ max_concurrent_agents : int = Field (default = 5 )
23+ analysis_timeout_seconds : int = Field (default = 30 )
2024
2125 news_sources : List [str ] = Field (
2226 default_factory = lambda : [
@@ -25,8 +29,7 @@ class Settings(BaseSettings):
2529 "yahoo-finance" ,
2630 "marketwatch" ,
2731 "cnbc" ,
28- ],
29- env = "NEWS_SOURCES" ,
32+ ]
3033 )
3134 analysis_depth : str = Field ("detailed" , env = "ANALYSIS_DEPTH" )
3235 default_portfolio_size : float = Field (100000.0 , env = "DEFAULT_PORTFOLIO_SIZE" )
0 commit comments