Timeseries Forecast 是一个基于 Amazon Chronos-2 的时间序列预测系统,提供:
- Zero-shot / Finetune 预测
- 多分位输出(P10/P50/P90 等)
- 指标评估(WQL/WAPE/IC/IR)
- finetune 返回
model_id可复用,模型默认保留 14 天后清理 - 可视化结果展示及预测结果导出
- MCP(Model Context Protocol)工具接入,支持 LLM 调用
- 前端说明:frontend/README.md
- 后端说明:server/README.md
- API 说明:server/app/api/README.md
- 服务层说明:server/app/services/README.md
- MCP 说明:server/app/mcp/README.md
- 模型与数据结构:server/app/models/README.md
- 核心配置/异常:server/app/core/README.md
- 后端:FastAPI / Uvicorn / AutoGluon TimeSeries(Chronos-2)/ PyTorch / Pandas / MCP(FastMCP)
- 前端:React 18 / TypeScript / Vite / Ant Design / ECharts
server/:后端服务与 MCPfrontend/:前端界面scripts/:本地一键启动脚本
pip install -r server/requirements.txt
export CHRONOS_MODEL_PATH=/path/to/chronos_model
uvicorn app.main:app --host 0.0.0.0 --port 5001 --reloadcd frontend
cp .env.example .env
npm install
npm run dev前端默认地址:http://localhost:5173
bash scripts/dev.shdocker compose up -d后端:http://localhost:5001
前端:http://localhost:5173
- 输入为 Markdown,必须包含 ```json 代码块
- 必填字段:
history_data(含timestamp/item_id(or id)/target) - 推荐提供
freq(如 D/H/W/M) - 若开启协变量:必须提供
covariates,且长度 =prediction_length
- Finetune 若
save_model=true会返回model_id,可在后续 finetune 接口中直接传入复用(跳过再次微调) - 已保存的微调模型默认保留 14 天,后台定时任务清理
- 可通过环境变量配置:
FINETUNED_MODEL_RETENTION_DAYSFINETUNED_MODEL_CLEANUP_INTERVAL_HOURS
- WQL/WAPE:由 AutoGluon evaluate 输出
- IC/IR:在历史数据上切分验证区间计算(需要至少
2 * prediction_length的历史长度) - 预测输出保持未来区间 n+1…n+m,不受指标切分影响
后端启动后 MCP SSE 地址:http://localhost:5001/mcp/sse
可用 ollama_client.py 连接并调用工具。
- 当前测试:
server/tests/test_forecast_output.py - 运行方式:
pytest -q- 计划补充:预测接口 e2e 测试
- 新模型:在
server/app/services/中新增预测逻辑并注册路由 - 新接口:在
server/app/api/routes/添加对应 API - 新前端页面:在
frontend/src/components//frontend/src/App.tsx扩展 UI - MCP 集成:在
server/app/mcp/handlers/tools.py注册新工具,在prompt_templates/补充提示词说明文档