| """Importable core for the smoke-generate script (kept in the package so it is testable).""" | |
| from __future__ import annotations | |
| from .models import is_promotable, resolve_image_model | |
| from .renderer.backgrounds import background_cache_key, generate_background | |
| def run(labels, *, cache, provider, api_key, model=None) -> list[str]: | |
| """Fill dev for each label (real provider call) then promote to eval. | |
| Returns the list of promoted cache keys. Network happens inside `provider`. | |
| """ | |
| model = resolve_image_model(model) | |
| promoted = [] | |
| for label in labels: | |
| generate_background(label, cache=cache, provider=provider, model=model, api_key=api_key) | |
| key = background_cache_key(label, model=model) | |
| cache.promote(key, is_eligible=is_promotable) | |
| promoted.append(key) | |
| return promoted | |