Spaces:
Running
Running
Sync from GitHub (tests passed)
Browse files- worker/tasks.py +16 -2
worker/tasks.py
CHANGED
|
@@ -459,6 +459,7 @@ async def _execute_pipeline_stages_v2(
|
|
| 459 |
# Stage 5: Generate snapshot
|
| 460 |
# -------------------------------------------------------------------------
|
| 461 |
logger.info(f"[run_id={run_id}] Stage 5: Generate snapshot")
|
|
|
|
| 462 |
try:
|
| 463 |
from app.inference import generate_analysis_report, save_analysis_snapshot
|
| 464 |
|
|
@@ -475,6 +476,7 @@ async def _execute_pipeline_stages_v2(
|
|
| 475 |
session.commit()
|
| 476 |
|
| 477 |
result["snapshot_generated"] = True
|
|
|
|
| 478 |
update_run_metrics(session, run_id, snapshot_generated=True)
|
| 479 |
session.commit()
|
| 480 |
else:
|
|
@@ -489,12 +491,24 @@ async def _execute_pipeline_stages_v2(
|
|
| 489 |
# -------------------------------------------------------------------------
|
| 490 |
# Stage 6: Generate commentary (only if snapshot was generated)
|
| 491 |
# -------------------------------------------------------------------------
|
| 492 |
-
if result.get("snapshot_generated"):
|
| 493 |
logger.info(f"[run_id={run_id}] Stage 6: Generate commentary")
|
| 494 |
try:
|
|
|
|
| 495 |
from app.commentary import generate_and_save_commentary
|
| 496 |
|
| 497 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 498 |
session.commit()
|
| 499 |
|
| 500 |
result["commentary_generated"] = True
|
|
|
|
| 459 |
# Stage 5: Generate snapshot
|
| 460 |
# -------------------------------------------------------------------------
|
| 461 |
logger.info(f"[run_id={run_id}] Stage 5: Generate snapshot")
|
| 462 |
+
snapshot_report = None # Will be used by Stage 6
|
| 463 |
try:
|
| 464 |
from app.inference import generate_analysis_report, save_analysis_snapshot
|
| 465 |
|
|
|
|
| 476 |
session.commit()
|
| 477 |
|
| 478 |
result["snapshot_generated"] = True
|
| 479 |
+
snapshot_report = report # Save for Stage 6
|
| 480 |
update_run_metrics(session, run_id, snapshot_generated=True)
|
| 481 |
session.commit()
|
| 482 |
else:
|
|
|
|
| 491 |
# -------------------------------------------------------------------------
|
| 492 |
# Stage 6: Generate commentary (only if snapshot was generated)
|
| 493 |
# -------------------------------------------------------------------------
|
| 494 |
+
if result.get("snapshot_generated") and snapshot_report:
|
| 495 |
logger.info(f"[run_id={run_id}] Stage 6: Generate commentary")
|
| 496 |
try:
|
| 497 |
+
import asyncio
|
| 498 |
from app.commentary import generate_and_save_commentary
|
| 499 |
|
| 500 |
+
# Extract required fields from snapshot
|
| 501 |
+
asyncio.run(generate_and_save_commentary(
|
| 502 |
+
session=session,
|
| 503 |
+
symbol="HG=F",
|
| 504 |
+
current_price=snapshot_report.get("current_price", 0.0),
|
| 505 |
+
predicted_price=snapshot_report.get("predicted_price", 0.0),
|
| 506 |
+
predicted_return=snapshot_report.get("predicted_return", 0.0),
|
| 507 |
+
sentiment_index=snapshot_report.get("sentiment_index", 0.0),
|
| 508 |
+
sentiment_label=snapshot_report.get("sentiment_label", "Neutral"),
|
| 509 |
+
top_influencers=snapshot_report.get("top_influencers", []),
|
| 510 |
+
news_count=snapshot_report.get("data_quality", {}).get("news_count_7d", 0),
|
| 511 |
+
))
|
| 512 |
session.commit()
|
| 513 |
|
| 514 |
result["commentary_generated"] = True
|