Spaces:
Running
Running
| from __future__ import annotations | |
| import hashlib | |
| from dataclasses import dataclass | |
| from pathlib import Path | |
| from typing import Any, Dict | |
| RULES_PATH = Path(__file__).with_name("AI_MODEL_RULES.md") | |
| class ForecastRuleDocument: | |
| path: str | |
| version: str | |
| content: str | |
| default_horizon: int | |
| recommended_context_length: int | |
| default_line_width: int | |
| def to_metadata(self) -> Dict[str, Any]: | |
| return { | |
| "path": self.path, | |
| "version": self.version, | |
| "default_horizon": self.default_horizon, | |
| "recommended_context_length": self.recommended_context_length, | |
| "default_line_width": self.default_line_width, | |
| } | |
| def load_forecast_rule_document(path: Path | None = None) -> ForecastRuleDocument: | |
| rules_path = path or RULES_PATH | |
| content = rules_path.read_text(encoding="utf-8").strip() | |
| version = hashlib.sha256(content.encode("utf-8")).hexdigest()[:12] | |
| return ForecastRuleDocument( | |
| path=str(rules_path), | |
| version=version, | |
| content=content, | |
| default_horizon=10, | |
| recommended_context_length=384, | |
| default_line_width=1, | |
| ) | |
| FORECAST_RULE_DOCUMENT = load_forecast_rule_document() | |