An end-to-end multi-domain AI forecasting system. Real datasets, two model modes, ChatGPT-style predictions.
Models: separate vs unified
Separate (model_<topic>.pt) — 6 dedicated 2-layer LSTMs, one per topic
Unified (unified_model.pt) — One combined model for all 6 domains: shared LSTM backbone + per-domain embedding + per-domain heads, trained jointly from merged separate models
The unified model merges weights from all 6 trained separate models into a single checkpoint, enabling cross-domain knowledge transfer and a single model that can predict any of the 6 topics.
Prediction engine — runs the LSTM, returns structured metrics: net change, forecast range, current-to-forecast, direction, primary forecast
Response formatter — presents metrics naturally; opens with a one-sentence ChatGPT-style summary; never invents confidence, probability, or values
Multi-topic data pipeline (fetchers + caching)
2-layer LSTM, Huber loss, AdamW, early stopping, temporal split
Per-topic model loader, rollout forecast, chart + text report
Ask it anything (ChatGPT-style)
Interactive chat with natural language queries:
"what will bitcoin do next week?"
"compare all topics"
"predict programming for 14 days"
"predict ai for 3 days"
Example response:
In short, the model expects Bitcoin to stay roughly stable next week, hovering near $63,228.
Bitcoin Forecast
August 18-24, 2026
The model forecasts relatively sideways movement for Bitcoin next week, with an
estimated level around **$63,228**.
Outlook: Sideways
Predicted level (2026-08-24): ~$63,228
Expected change: <0.01%
Forecast range: <0.01%
From latest observed value ($63,229, 2026-08-17): <0.01%
This is a model-generated forecast, and actual market behavior may differ.
Weather for any city
Configure city via environment variables or city registry, then query weather predictions.
Train / refresh
Run training for all topics or individual domains. Outputs: model checkpoints, configs, predictions, charts, and results.
Add a new domain
Add entry to topics configuration (label, unit, asset name)