Skip to content

Commit ec56b59

Browse files
committed
feat: add Portfolio Management module with AI monitoring
1 parent bb45248 commit ec56b59

24 files changed

Lines changed: 7939 additions & 89 deletions

‎backend_api_python/app/__init__.py‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,30 @@ def get_reflection_worker():
4343
return _reflection_worker
4444

4545

46+
def start_portfolio_monitor():
47+
"""Start the portfolio monitor service if enabled.
48+
49+
To enable it, set ENABLE_PORTFOLIO_MONITOR=true.
50+
"""
51+
import os
52+
enabled = os.getenv("ENABLE_PORTFOLIO_MONITOR", "true").lower() == "true"
53+
if not enabled:
54+
logger.info("Portfolio monitor is disabled. Set ENABLE_PORTFOLIO_MONITOR=true to enable.")
55+
return
56+
57+
# Avoid running twice with Flask reloader
58+
debug = os.getenv("PYTHON_API_DEBUG", "false").lower() == "true"
59+
if debug:
60+
if os.environ.get("WERKZEUG_RUN_MAIN") != "true":
61+
return
62+
63+
try:
64+
from app.services.portfolio_monitor import start_monitor_service
65+
start_monitor_service()
66+
except Exception as e:
67+
logger.error(f"Failed to start portfolio monitor: {e}")
68+
69+
4670
def start_reflection_worker():
4771
"""
4872
Start the reflection worker if enabled.
@@ -163,6 +187,7 @@ def create_app(config_name='default'):
163187
with app.app_context():
164188
start_pending_order_worker()
165189
start_reflection_worker()
190+
start_portfolio_monitor()
166191
restore_running_strategies()
167192

168193
return app

‎backend_api_python/app/routes/__init__.py‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ def register_routes(app: Flask):
1818
from app.routes.indicator import indicator_bp
1919
from app.routes.dashboard import dashboard_bp
2020
from app.routes.settings import settings_bp
21+
from app.routes.portfolio import portfolio_bp
2122

2223
app.register_blueprint(health_bp)
2324
app.register_blueprint(auth_bp, url_prefix='/api/user') # 兼容前端 /api/user/login
@@ -31,4 +32,5 @@ def register_routes(app: Flask):
3132
app.register_blueprint(credentials_bp, url_prefix='/api/credentials')
3233
app.register_blueprint(dashboard_bp, url_prefix='/api/dashboard')
3334
app.register_blueprint(settings_bp, url_prefix='/api/settings')
35+
app.register_blueprint(portfolio_bp, url_prefix='/api/portfolio')
3436

0 commit comments

Comments
 (0)