v1.4.0: 持仓跟踪智能体(产业链上下游深度分析) - 定期跟踪自选股/持仓, RAG采集个股+上游+下游+同业动态, LLM输出产业链深度分析+影响度判定, 重大变化邮件通知, 跟踪页+设置项

This commit is contained in:
2026-08-19 23:26:30 +08:00
parent 8e2e4f0335
commit eaa40bd26b
11 changed files with 956 additions and 4 deletions
+28 -1
View File
@@ -6,7 +6,7 @@
"""
from database import query, execute, query_one
from config import LLM_BASE_URL, LLM_API_KEY, LLM_MODEL, LLM_MAX_TOKENS, \
LLM_TEMPERATURE, LLM_TIMEOUT, MAIL_DEFAULTS, MONITOR_DEFAULTS
LLM_TEMPERATURE, LLM_TIMEOUT, MAIL_DEFAULTS, MONITOR_DEFAULTS, TRACKING_DEFAULTS
def get_setting(key, default=""):
@@ -92,3 +92,30 @@ def set_monitor_state(last_news_id=None, last_scan=None, last_sent=None):
set_setting("monitor_last_scan", last_scan)
if last_sent is not None:
set_setting("monitor_last_sent", last_sent)
# ===================================================================== 持仓跟踪
def tracking_config():
return {
"enabled": get_setting("tracking_enabled", TRACKING_DEFAULTS["tracking_enabled"]) == "1",
"interval_min": max(15, int(get_setting("tracking_interval", TRACKING_DEFAULTS["tracking_interval"]))),
"notify": get_setting("tracking_notify", TRACKING_DEFAULTS["tracking_notify"]) == "1",
"impact_threshold": float(get_setting("tracking_impact_threshold", TRACKING_DEFAULTS["tracking_impact_threshold"])),
}
def tracking_state():
return {
"last_run": get_setting("tracking_last_run", ""),
"last_stock": get_setting("tracking_last_stock", ""),
"last_alert": int(get_setting("tracking_last_alert", "0")),
}
def set_tracking_state(last_run=None, last_stock=None, last_alert=None):
if last_run is not None:
set_setting("tracking_last_run", last_run)
if last_stock is not None:
set_setting("tracking_last_stock", last_stock)
if last_alert is not None:
set_setting("tracking_last_alert", last_alert)