增加大模型
This commit is contained in:
@@ -13,6 +13,8 @@ from .periods import get_daybefore_period, get_today_period, get_yesterday_perio
|
||||
from .state import get_today_cache, set_today_cache
|
||||
from .funding_store import prefetch_funding
|
||||
from .kline_store import prefetch_symbols
|
||||
from .llm_service import run_interpretation_batch, schedule_interpret_background
|
||||
from .stats import compute_three_day_stats
|
||||
from .wecom import build_markdown, send_wecom_markdown
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -147,6 +149,18 @@ async def job_refresh_today() -> None:
|
||||
_restore_today_from_db()
|
||||
|
||||
|
||||
async def job_llm_interpret() -> None:
|
||||
"""08:05 对三日交集币种逐个大模型解读(每币间隔 3 分钟)。"""
|
||||
logger.info("Job: LLM interpret three-day intersection")
|
||||
if not settings.llm_api_key.strip():
|
||||
logger.info("LLM_API_KEY not set, skip")
|
||||
return
|
||||
try:
|
||||
await run_interpretation_batch()
|
||||
except Exception as e:
|
||||
logger.error("LLM job failed: %s", e)
|
||||
|
||||
|
||||
async def startup_tasks() -> None:
|
||||
init_db()
|
||||
now = now_shanghai()
|
||||
@@ -194,6 +208,12 @@ async def startup_tasks() -> None:
|
||||
except Exception as e:
|
||||
logger.error("Startup catch-up push failed: %s", e)
|
||||
|
||||
if settings.llm_api_key.strip() and settings.llm_auto_on_startup:
|
||||
stats = compute_three_day_stats()
|
||||
if stats.get("ok") and stats.get("symbols"):
|
||||
logger.info("Startup: schedule one LLM interpret batch")
|
||||
schedule_interpret_background()
|
||||
|
||||
|
||||
def start_scheduler() -> None:
|
||||
scheduler.add_job(
|
||||
@@ -208,19 +228,25 @@ def start_scheduler() -> None:
|
||||
id="push_wecom",
|
||||
replace_existing=True,
|
||||
)
|
||||
refresh_hours = max(1, settings.refresh_minutes // 60)
|
||||
scheduler.add_job(
|
||||
job_refresh_today,
|
||||
CronTrigger(minute=f"*/{settings.refresh_minutes}", timezone="Asia/Shanghai"),
|
||||
CronTrigger(hour=f"*/{refresh_hours}", minute=0, timezone="Asia/Shanghai"),
|
||||
id="refresh_today",
|
||||
replace_existing=True,
|
||||
)
|
||||
scheduler.add_job(
|
||||
job_llm_interpret,
|
||||
CronTrigger(hour=8, minute=5, timezone="Asia/Shanghai"),
|
||||
id="llm_interpret",
|
||||
replace_existing=True,
|
||||
)
|
||||
if not scheduler.running:
|
||||
scheduler.start()
|
||||
logger.info(
|
||||
"Scheduler started (today=%s, yesterday=%s, every %d min)",
|
||||
settings.today_data_mode,
|
||||
settings.yesterday_data_mode,
|
||||
settings.refresh_minutes,
|
||||
"Scheduler started (today every %dh, LLM 08:05, interval %ds)",
|
||||
refresh_hours,
|
||||
settings.llm_symbol_interval_sec,
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user