summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.env.example15
-rw-r--r--shared/src/shared/config.py12
2 files changed, 27 insertions, 0 deletions
diff --git a/.env.example b/.env.example
index 7a2751f..dcaf9a8 100644
--- a/.env.example
+++ b/.env.example
@@ -22,3 +22,18 @@ HEALTH_PORT=8080
CIRCUIT_BREAKER_THRESHOLD=5
CIRCUIT_BREAKER_TIMEOUT=60
METRICS_AUTH_TOKEN=
+
+# News Collector
+FINNHUB_API_KEY=
+NEWS_POLL_INTERVAL=300
+SENTIMENT_AGGREGATE_INTERVAL=900
+
+# Stock Selector
+SELECTOR_CANDIDATES_TIME=15:00
+SELECTOR_FILTER_TIME=15:15
+SELECTOR_FINAL_TIME=15:30
+SELECTOR_MAX_PICKS=3
+
+# LLM (for stock selector)
+ANTHROPIC_API_KEY=
+ANTHROPIC_MODEL=claude-sonnet-4-20250514
diff --git a/shared/src/shared/config.py b/shared/src/shared/config.py
index 4e8e7f1..7a947b3 100644
--- a/shared/src/shared/config.py
+++ b/shared/src/shared/config.py
@@ -35,4 +35,16 @@ class Settings(BaseSettings):
circuit_breaker_threshold: int = 5
circuit_breaker_timeout: int = 60
metrics_auth_token: str = "" # If set, /health and /metrics require Bearer token
+ # News collector
+ finnhub_api_key: str = ""
+ news_poll_interval: int = 300
+ sentiment_aggregate_interval: int = 900
+ # Stock selector
+ selector_candidates_time: str = "15:00"
+ selector_filter_time: str = "15:15"
+ selector_final_time: str = "15:30"
+ selector_max_picks: int = 3
+ # LLM
+ anthropic_api_key: str = ""
+ anthropic_model: str = "claude-sonnet-4-20250514"
model_config = {"env_file": ".env", "env_file_encoding": "utf-8", "extra": "ignore"}