Files
stonks-oracle/scripts/check_recent.py
T
Celes Renata 5f6d23888a
ci/woodpecker/push/woodpecker Pipeline failed
Build and Push / lint-and-test (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.adapters.broker_adapter name:broker-adapter]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.aggregation.worker name:aggregation]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.extractor.worker name:extractor]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.ingestion.worker name:ingestion]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.lake_publisher.worker name:lake-publisher]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.parser.worker name:parser]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.recommendation.worker name:recommendation]) (push) Has been cancelled
Build and Push / build-services (map[cmd:python -m services.scheduler.app name:scheduler]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.api.app:app --host 0.0.0.0 --port 8000 name:query-api]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.risk.app:app --host 0.0.0.0 --port 8000 name:risk]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.symbol_registry.app:app --host 0.0.0.0 --port 8000 name:symbol-registry]) (push) Has been cancelled
Build and Push / build-services (map[cmd:uvicorn services.trading.app:app --host 0.0.0.0 --port 8000 name:trading-engine]) (push) Has been cancelled
Build and Push / build-dashboard (push) Has been cancelled
Build and Push / build-superset (push) Has been cancelled
Build and Push / integration-test (push) Has been cancelled
ci: fix lint errors across project, update ruff.toml per-file ignores
2026-04-18 21:02:28 +00:00

36 lines
1.4 KiB
Python

import json
import os
from minio import Minio
mc = Minio(os.environ["MINIO_ENDPOINT"], access_key=os.environ["MINIO_ACCESS_KEY"], secret_key=os.environ["MINIO_SECRET_KEY"], secure=False)
# Get the most recent LLM results
raw_objs = sorted(mc.list_objects("stonks-llm-results", recursive=True), key=lambda o: o.last_modified, reverse=True)
for o in raw_objs[:3]:
data = json.loads(mc.get_object("stonks-llm-results", o.object_name).read())
attempts = data.get("attempts", [])
if not attempts:
continue
last = attempts[-1]
raw_out = last.get("raw_output", "")
ticker = o.object_name.split("/")[1]
doc_id = o.object_name.split("/")[-2]
print(f"=== {ticker} / {doc_id[:8]} ===")
print(f" success: {data.get('success')}")
print(f" duration: {data.get('total_duration_ms')}ms")
try:
parsed = json.loads(raw_out)
print(f" summary: {parsed.get('summary', '')[:120]}")
print(f" confidence: {parsed.get('confidence')}")
print(f" companies: {len(parsed.get('companies', []))}")
print(f" macro_themes: {parsed.get('macro_themes', [])}")
for c in parsed.get("companies", []):
print(f" -> {c.get('ticker')} sent={c.get('sentiment')} impact={c.get('impact_score')} catalyst={c.get('catalyst_type')}")
except:
print(f" raw output: {raw_out[:200]}")
print()