Keep bot operational when forecast model is unavailable

This commit is contained in:
Курнат Андрей
2026-07-13 11:57:25 +03:00
parent da53483164
commit 668e606ee2
22 changed files with 706 additions and 73 deletions
+15 -5
View File
@@ -1020,12 +1020,22 @@ def _ensemble_candidate(members: list[dict[str, Any]], seeds: list[int]) -> dict
"context_norm_weight",
"context_norm_bias",
)
result["ensemble_members"] = [
{name: member[name] for name in export_names if name in member}
| {"seed": seeds[index] if index < len(seeds) else index}
for index, member in enumerate(members)
]
result["ensemble_size"] = len(members)
result["ensemble_seeds"] = [seeds[index] if index < len(seeds) else index for index in range(len(members))]
if len(members) > 1:
result["ensemble_members"] = [
{name: member[name] for name in export_names if name in member}
| {"seed": seeds[index] if index < len(seeds) else index}
for index, member in enumerate(members)
]
# Ensemble inference uses the member payloads. Keeping the first
# member at the top level duplicated a complete network in every
# exported symbol and could push an otherwise valid artifact over
# the server upload limit.
for name in export_names:
result.pop(name, None)
else:
result.pop("ensemble_members", None)
symbol_names = sorted(
{
symbol