specimba's picture
Deploy v4 review hardening
621cf5d verified
Raw
History Blame Contribute Delete
34.6 kB
"""Quota-aware helper model rotation for NEXUS Visual Weaver.
The relay mirrors the useful GMR/ModelRelay ideas from NEXUS without copying
the source: pinned creative anchors stay fixed, helper lanes can rotate, and
all decisions carry a compact context packet for fallback continuity.
"""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import asdict, dataclass, field
from datetime import datetime, timedelta, timezone
from typing import Any
PINNED_LANES = {"image_generation", "grounding", "security"}
ROTATABLE_LANES = {
"private_image_research",
"prompt_router",
"taste_judge",
"audio_lore_tts",
"video_repair",
"hf_catalog_research",
"modal_job_runner",
}
PUBLIC_SAFE_LICENSES = {"apache-2.0", "mit", "bsd-3-clause", "gemma", "public_safe", "openrail"}
PRIVATE_LICENSES = {"private_research", "research_noncommercial", "commercial_required", "other", "unknown", "review_required"}
STRATEGY_ALIASES = {
"speed": "latency_first",
"fast": "latency_first",
"safe_public": "license_safe_public",
"public": "license_safe_public",
"private": "private_research",
}
DEFAULT_ROTATION_BUDGET_B = 5.0
def utc_now() -> datetime:
return datetime.now(timezone.utc)
def _iso(value: datetime | None) -> str | None:
return value.isoformat(timespec="seconds") if value else None
@dataclass
class ContextPacket:
lane: str
task: str
public_demo: bool
budget_b: float
metadata: dict[str, Any] = field(default_factory=dict)
def to_dict(self) -> dict[str, Any]:
return asdict(self)
@dataclass
class ModelRecord:
model_id: str
lane: str
provider: str
repo_id: str
license_gate: str
params_b: float
cost_hint: str
rpm_limit: int
rpd_limit: int
cooldown_until: datetime | None = None
health: str = "healthy"
latency_ms: int = 500
quality_score: float = 0.75
fallback_chain: tuple[str, ...] = ()
pinned: bool = False
adult_capable: bool = False
last_failure: str | None = None
success_count: int = 0
failure_count: int = 0
minute_calls: list[datetime] = field(default_factory=list)
day_calls: list[datetime] = field(default_factory=list)
@property
def public_safe(self) -> bool:
return self.license_gate in PUBLIC_SAFE_LICENSES and not self.adult_capable
def in_cooldown(self, now: datetime | None = None) -> bool:
now = now or utc_now()
return bool(self.cooldown_until and self.cooldown_until > now)
def to_dict(self, now: datetime | None = None) -> dict[str, Any]:
now = now or utc_now()
return {
"model_id": self.model_id,
"lane": self.lane,
"provider": self.provider,
"repo_id": self.repo_id,
"license_gate": self.license_gate,
"params_b": self.params_b,
"cost_hint": self.cost_hint,
"rpm_limit": self.rpm_limit,
"rpd_limit": self.rpd_limit,
"cooldown_until": _iso(self.cooldown_until),
"in_cooldown": self.in_cooldown(now),
"health": self.health,
"latency_ms": self.latency_ms,
"quality_score": self.quality_score,
"fallback_chain": list(self.fallback_chain),
"pinned": self.pinned,
"adult_capable": self.adult_capable,
"last_failure": self.last_failure,
"success_count": self.success_count,
"failure_count": self.failure_count,
"rpm_used": len(self.minute_calls),
"rpd_used": len(self.day_calls),
}
@dataclass
class LaneDecision:
lane: str
strategy: str
primary: ModelRecord | None
fallbacks: list[ModelRecord]
reason: str
expected_cost_hint: str
quota_impact: dict[str, Any]
context_packet: ContextPacket
skipped: list[str] = field(default_factory=list)
@property
def pinned(self) -> bool:
return bool(self.primary and self.primary.pinned)
@property
def rotatable(self) -> bool:
return self.lane in ROTATABLE_LANES
def to_dict(self, now: datetime | None = None) -> dict[str, Any]:
now = now or utc_now()
return {
"lane": self.lane,
"strategy": self.strategy,
"primary": self.primary.to_dict(now) if self.primary else None,
"fallbacks": [record.to_dict(now) for record in self.fallbacks],
"reason": self.reason,
"expected_cost_hint": self.expected_cost_hint,
"quota_impact": self.quota_impact,
"context_packet": self.context_packet.to_dict(),
"skipped": self.skipped,
"pinned": self.pinned,
"rotatable": self.rotatable,
}
@dataclass
class _DedupEntry:
value: Any
expires_at: datetime
class WeaverModelRelay:
"""Selects helper models while preserving pinned creative anchors."""
def __init__(
self,
records: list[ModelRecord] | None = None,
now_fn: Callable[[], datetime] = utc_now,
) -> None:
self._now_fn = now_fn
self.records: dict[str, ModelRecord] = {record.model_id: record for record in (records or default_model_records())}
self._dedup: dict[str, _DedupEntry] = {}
self._dedup_hits = 0
def select_lane(
self,
lane: str,
task: str = "",
budget: float | None = None,
public_demo: bool = True,
strategy: str = "quality_first",
) -> LaneDecision:
"""
Selects a helper model for the given lane based on budget, quota, and selection strategy.
Returns:
LaneDecision: A decision containing the selected primary model (if any), fallback
options, the selection strategy used, selection reasoning, expected cost estimate,
quota impact details, and information about skipped ineligible candidates.
"""
lane = self.normalize_lane(lane)
strategy = self.normalize_strategy(strategy)
budget_b = float(budget if budget is not None else (32.0 if lane in PINNED_LANES else DEFAULT_ROTATION_BUDGET_B))
now = self._now()
context = ContextPacket(lane=lane, task=task or lane, public_demo=public_demo, budget_b=budget_b)
lane_records = [record for record in self.records.values() if record.lane == lane]
if lane in PINNED_LANES:
primary = next((record for record in lane_records if record.pinned), None)
fallback_records = [self.records[model_id] for model_id in (primary.fallback_chain if primary else ()) if model_id in self.records]
fallbacks, skipped = self._eligible_records(fallback_records, budget_b, public_demo, strategy, now)
return LaneDecision(
lane=lane,
strategy="pinned",
primary=primary,
fallbacks=fallbacks,
reason="Pinned core lane; rotation disabled for creative identity, grounding, or security.",
expected_cost_hint=primary.cost_hint if primary else "unavailable",
quota_impact=self._quota_impact(primary, now) if primary else {},
context_packet=context,
skipped=skipped if primary else [f"{lane}: no pinned model registered"],
)
candidates, skipped = self._eligible_records(lane_records, budget_b, public_demo, strategy, now)
ordered = sorted(candidates, key=lambda record: self._score(record, strategy, now), reverse=True)
primary = ordered[0] if ordered else None
fallbacks = ordered[1:4]
if primary:
reason = self._decision_reason(primary, strategy, public_demo)
cost_hint = primary.cost_hint
quota_impact = self._quota_impact(primary, now)
else:
reason = "No eligible helper model for lane after budget, license, health, and quota filters."
cost_hint = "blocked"
quota_impact = {"status": "blocked"}
return LaneDecision(
lane=lane,
strategy=strategy,
primary=primary,
fallbacks=fallbacks,
reason=reason,
expected_cost_hint=cost_hint,
quota_impact=quota_impact,
context_packet=context,
skipped=skipped,
)
def record_success(self, model_id: str, latency_ms: int | None = None) -> None:
record = self._require_model(model_id)
now = self._now()
self._prune_calls(record, now)
record.minute_calls.append(now)
record.day_calls.append(now)
record.success_count += 1
record.last_failure = None
record.health = "healthy"
if latency_ms is not None:
record.latency_ms = int((record.latency_ms * 0.7) + (latency_ms * 0.3))
def record_failure(self, model_id: str, error: str = "execution failed") -> None:
record = self._require_model(model_id)
record.failure_count += 1
record.last_failure = error
record.health = "degraded" if record.failure_count < 3 else "unhealthy"
if record.failure_count >= 3:
self.enter_cooldown(model_id, retry_after_seconds=300)
def enter_cooldown(self, model_id: str, retry_after_seconds: int = 60) -> None:
record = self._require_model(model_id)
record.cooldown_until = self._now() + timedelta(seconds=retry_after_seconds)
def metadata_lookup(self, key: str, resolver: Callable[[], Any], ttl_seconds: int = 300) -> Any:
now = self._now()
cached = self._dedup.get(key)
if cached and cached.expires_at > now:
self._dedup_hits += 1
return cached.value
value = resolver()
self._dedup[key] = _DedupEntry(value=value, expires_at=now + timedelta(seconds=ttl_seconds))
return value
def get_rotation_status(self) -> dict[str, Any]:
now = self._now()
for record in self.records.values():
self._prune_calls(record, now)
pinned = {record.lane: record.to_dict(now) for record in self.records.values() if record.pinned}
lanes = {}
for lane in sorted(PINNED_LANES | ROTATABLE_LANES):
lane_records = [record for record in self.records.values() if record.lane == lane]
if not lane_records:
continue
blocked = [record for record in lane_records if self._quota_blocked(record, now) or record.in_cooldown(now)]
lanes[lane] = {
"pinned": lane in PINNED_LANES,
"models": len(lane_records),
"blocked": len(blocked),
"healthy": sum(1 for record in lane_records if record.health == "healthy"),
}
rotation_safe = all(record.health != "unhealthy" and not record.in_cooldown(now) for record in self.records.values() if record.pinned)
return {
"rotation_safe": rotation_safe,
"pinned": pinned,
"lanes": lanes,
"dedup_cache_size": len(self._dedup),
"dedup_hits": self._dedup_hits,
"updated_at": _iso(now),
}
def dashboard_snapshot(self, public_demo: bool = True) -> dict[str, Any]:
status = self.get_rotation_status()
preview_lanes = [
("prompt_router", "strict tool JSON and prompt routing", "latency_first"),
("taste_judge", "taste/profile checkpoint", "quality_first"),
("audio_lore_tts", "optional lore narration, off by default", "license_safe_public" if public_demo else "quality_first"),
("hf_catalog_research", "HF metadata search/cache", "quota_saver"),
("modal_job_runner", "Modal credit jobs and LoRA evaluation", "private_research" if not public_demo else "license_safe_public"),
]
status["decisions"] = [
self.select_lane(lane, task=task, public_demo=public_demo, strategy=strategy).to_dict(self._now())
for lane, task, strategy in preview_lanes
]
return status
@staticmethod
def normalize_strategy(strategy: str) -> str:
lowered = strategy.strip().lower()
normalized = STRATEGY_ALIASES.get(lowered, lowered)
allowed = {"quality_first", "quota_saver", "latency_first", "license_safe_public", "private_research"}
return normalized if normalized in allowed else "quality_first"
@staticmethod
def normalize_lane(lane: str) -> str:
normalized = lane.strip().lower().replace("-", "_").replace(" ", "_")
aliases = {
"image": "image_generation",
"locate": "grounding",
"st3gg": "security",
"router": "prompt_router",
"judge": "taste_judge",
"tts": "audio_lore_tts",
"catalog": "hf_catalog_research",
"modal": "modal_job_runner",
}
return aliases.get(normalized, normalized)
def _eligible_records(
self,
records: list[ModelRecord],
budget_b: float,
public_demo: bool,
strategy: str,
now: datetime,
) -> tuple[list[ModelRecord], list[str]]:
eligible: list[ModelRecord] = []
skipped: list[str] = []
require_public_safe = public_demo or strategy == "license_safe_public"
for record in records:
self._prune_calls(record, now)
if record.pinned:
skipped.append(f"{record.model_id}: pinned lane cannot rotate")
continue
if record.health in {"excluded", "unhealthy"}:
skipped.append(f"{record.model_id}: health={record.health}")
continue
if record.params_b > budget_b:
skipped.append(f"{record.model_id}: {record.params_b:.2f}B exceeds {budget_b:.2f}B helper budget")
continue
if require_public_safe and not record.public_safe:
skipped.append(f"{record.model_id}: license gate {record.license_gate} excluded for public demo")
continue
if record.in_cooldown(now):
skipped.append(f"{record.model_id}: cooldown active until {_iso(record.cooldown_until)}")
continue
if self._quota_blocked(record, now):
record.cooldown_until = now + timedelta(seconds=60)
skipped.append(f"{record.model_id}: quota exhausted, cooldown entered")
continue
eligible.append(record)
return eligible, skipped
def _score(self, record: ModelRecord, strategy: str, now: datetime) -> float:
rpm_headroom = 1.0 - (len(record.minute_calls) / max(record.rpm_limit, 1))
rpd_headroom = 1.0 - (len(record.day_calls) / max(record.rpd_limit, 1))
quota_headroom = max(0.0, (rpm_headroom + rpd_headroom) / 2)
latency_score = 1.0 / max(record.latency_ms, 1)
provider_bonus = 0.06 if record.provider in {"local", "hf_cli", "hf_api"} else 0.0
public_bonus = 0.08 if record.public_safe else 0.0
health_penalty = 0.12 if record.health == "degraded" else 0.0
if strategy == "quota_saver":
return (quota_headroom * 0.46) + (provider_bonus * 2.0) + (latency_score * 40.0) + (record.quality_score * 0.18) - health_penalty
if strategy == "latency_first":
return (latency_score * 250.0) + (record.quality_score * 0.28) + (quota_headroom * 0.20) + provider_bonus - health_penalty
if strategy == "license_safe_public":
return (public_bonus * 2.0) + (record.quality_score * 0.55) + (quota_headroom * 0.25) + (latency_score * 40.0) - health_penalty
if strategy == "private_research":
private_bonus = 0.06 if record.license_gate in PRIVATE_LICENSES else 0.0
return (record.quality_score * 0.88) + (quota_headroom * 0.10) + (latency_score * 5.0) + private_bonus - health_penalty
return (record.quality_score * 0.64) + (quota_headroom * 0.20) + (latency_score * 30.0) + public_bonus - health_penalty
def _decision_reason(self, primary: ModelRecord, strategy: str, public_demo: bool) -> str:
if strategy == "license_safe_public":
return f"{primary.model_id} selected because it is public-demo safe and within helper budget."
if strategy == "quota_saver":
return f"{primary.model_id} selected to preserve provider quota and reuse cheaper metadata paths."
if strategy == "latency_first":
return f"{primary.model_id} selected for fast dashboard feedback."
if strategy == "private_research" and not public_demo:
return f"{primary.model_id} selected for private research quality; public export gates still apply."
return f"{primary.model_id} selected by quality-first helper rotation."
def _quota_impact(self, record: ModelRecord | None, now: datetime) -> dict[str, Any]:
if record is None:
return {"status": "blocked"}
self._prune_calls(record, now)
return {
"status": "ready" if not self._quota_blocked(record, now) and not record.in_cooldown(now) else "limited",
"provider": record.provider,
"rpm_used": len(record.minute_calls),
"rpm_limit": record.rpm_limit,
"rpd_used": len(record.day_calls),
"rpd_limit": record.rpd_limit,
"cooldown_until": _iso(record.cooldown_until),
}
def _quota_blocked(self, record: ModelRecord, now: datetime) -> bool:
self._prune_calls(record, now)
return len(record.minute_calls) >= record.rpm_limit or len(record.day_calls) >= record.rpd_limit
def _prune_calls(self, record: ModelRecord, now: datetime) -> None:
minute_cutoff = now - timedelta(minutes=1)
day_cutoff = now - timedelta(days=1)
record.minute_calls = [stamp for stamp in record.minute_calls if stamp > minute_cutoff]
record.day_calls = [stamp for stamp in record.day_calls if stamp > day_cutoff]
if record.cooldown_until and record.cooldown_until <= now:
record.cooldown_until = None
def _require_model(self, model_id: str) -> ModelRecord:
try:
return self.records[model_id]
except KeyError as exc:
raise KeyError(f"Unknown model_id: {model_id}") from exc
def _now(self) -> datetime:
value = self._now_fn()
if value.tzinfo is None:
return value.replace(tzinfo=timezone.utc)
return value
def default_model_records() -> list[ModelRecord]:
"""
Provides the default registry of helper models across all lanes.
Returns:
list[ModelRecord]: A list of preconfigured model records spanning pinned lanes (image_generation, grounding, security) and rotatable lanes (prompt_router, taste_judge, audio_lore_tts, video_repair, hf_catalog_research, modal_job_runner, private_image_research), each with quota limits, performance metrics, and fallback chains.
"""
return [
ModelRecord(
model_id="flux2-klein-9b-quality",
lane="image_generation",
provider="hf",
repo_id="black-forest-labs/FLUX.2-klein-9B",
license_gate="review_required",
params_b=9.0,
cost_hint="gated_provider_or_private_space",
rpm_limit=6,
rpd_limit=40,
quality_score=0.96,
latency_ms=26000,
pinned=True,
fallback_chain=("flux2-klein-4b-sidecar",),
),
ModelRecord(
model_id="flux2-klein-4b-sidecar",
lane="image_generation",
provider="hf",
repo_id="black-forest-labs/FLUX.2-klein-4B",
license_gate="apache-2.0",
params_b=4.0,
cost_hint="provider_or_local",
rpm_limit=8,
rpd_limit=60,
quality_score=0.92,
latency_ms=21000,
),
ModelRecord(
model_id="flux2-klein-9b-private",
lane="private_image_research",
provider="hf",
repo_id="black-forest-labs/FLUX.2-klein-9B",
license_gate="review_required",
params_b=9.0,
cost_hint="gated_provider_or_private_space",
rpm_limit=6,
rpd_limit=40,
quality_score=0.96,
latency_ms=26000,
),
ModelRecord(
model_id="offellia-gemma4-12b-private-image-judge",
lane="private_image_research",
provider="local",
repo_id="Brunobkr/OFFELLIA_Q4_0_gemma-4-12B-it.gguf",
license_gate="private_research",
params_b=12.0,
cost_hint="local_gpu",
rpm_limit=20,
rpd_limit=200,
quality_score=0.95,
latency_ms=4200,
),
ModelRecord(
model_id="locateanything-3b-anchor",
lane="grounding",
provider="hf_nvidia",
repo_id="nvidia/LocateAnything-3B",
license_gate="review_required",
params_b=3.83,
cost_hint="provider_or_local",
rpm_limit=30,
rpd_limit=300,
quality_score=0.92,
latency_ms=1800,
pinned=True,
),
ModelRecord(
model_id="st3gg-local-scan",
lane="security",
provider="local",
repo_id="ST3GG/local-defensive-scan",
license_gate="internal",
params_b=0.0,
cost_hint="local",
rpm_limit=10000,
rpd_limit=100000,
quality_score=0.9,
latency_ms=20,
pinned=True,
),
ModelRecord(
model_id="functiongemma-270m-router",
lane="prompt_router",
provider="local",
repo_id="onnx-community/functiongemma-270m-it-ONNX",
license_gate="gemma",
params_b=0.27,
cost_hint="local_free",
rpm_limit=240,
rpd_limit=10000,
quality_score=0.74,
latency_ms=80,
fallback_chain=("minicpm5-1b-router", "qwen3-0.6b-router"),
),
ModelRecord(
model_id="minicpm5-1b-router",
lane="prompt_router",
provider="hf",
repo_id="openbmb/MiniCPM5-1B",
license_gate="apache-2.0",
params_b=1.08,
cost_hint="free_tier",
rpm_limit=60,
rpd_limit=1000,
quality_score=0.79,
latency_ms=160,
fallback_chain=("functiongemma-270m-router", "qwen3-0.6b-router"),
),
ModelRecord(
model_id="qwen3-0.6b-router",
lane="prompt_router",
provider="hf",
repo_id="Qwen/Qwen3-0.6B",
license_gate="apache-2.0",
params_b=0.60,
cost_hint="free_tier",
rpm_limit=60,
rpd_limit=1000,
quality_score=0.72,
latency_ms=130,
),
ModelRecord(
model_id="netlify-ai-gateway-helper",
lane="prompt_router",
provider="netlify",
repo_id="netlify/ai-gateway",
license_gate="public_safe",
params_b=0.0,
cost_hint="optional_gateway_secret_required",
rpm_limit=0,
rpd_limit=0,
quality_score=0.76,
latency_ms=320,
health="excluded",
),
ModelRecord(
model_id="cloudflare-agent-helper",
lane="prompt_router",
provider="cloudflare",
repo_id="cloudflare/agents-sdk",
license_gate="public_safe",
params_b=0.0,
cost_hint="optional_post_mvp_agent",
rpm_limit=0,
rpd_limit=0,
quality_score=0.72,
latency_ms=280,
health="excluded",
),
ModelRecord(
model_id="minicpm-v46-visual-judge",
lane="taste_judge",
provider="openbmb",
repo_id="openbmb/MiniCPM-V-4.6",
license_gate="apache-2.0",
params_b=1.30,
cost_hint="sponsor_free_api_secret_required",
rpm_limit=30,
rpd_limit=400,
quality_score=0.90,
latency_ms=1400,
fallback_chain=("smolvlm2-2.2b-judge", "functiongemma-270m-judge-lite"),
),
ModelRecord(
model_id="nemotron-parse-v12-evidence",
lane="taste_judge",
provider="hf_nvidia",
repo_id="nvidia/NVIDIA-Nemotron-Parse-v1.2",
license_gate="review_required",
params_b=0.94,
cost_hint="provider_secret_or_transformers",
rpm_limit=25,
rpd_limit=300,
quality_score=0.87,
latency_ms=1600,
fallback_chain=("nemotron-nano-4b-gguf-evidence",),
),
ModelRecord(
model_id="nemotron-nano-4b-gguf-evidence",
lane="taste_judge",
provider="hf_nvidia",
repo_id="nvidia/NVIDIA-Nemotron-3-Nano-4B-GGUF",
license_gate="review_required",
params_b=3.97,
cost_hint="gguf_provider_or_local",
rpm_limit=20,
rpd_limit=250,
quality_score=0.84,
latency_ms=2200,
),
ModelRecord(
model_id="offellia-gemma4-12b-private",
lane="taste_judge",
provider="local",
repo_id="Brunobkr/OFFELLIA_Q4_0_gemma-4-12B-it.gguf",
license_gate="private_research",
params_b=12.0,
cost_hint="local_gpu",
rpm_limit=20,
rpd_limit=200,
quality_score=0.95,
latency_ms=4200,
fallback_chain=("nemotron-mini-4b-judge", "smolvlm2-2.2b-judge"),
),
ModelRecord(
model_id="nemotron-mini-4b-judge",
lane="taste_judge",
provider="hf_nvidia",
repo_id="nvidia/Nemotron-Mini-4B-Instruct",
license_gate="public_safe",
params_b=4.0,
cost_hint="free_tier_or_provider",
rpm_limit=35,
rpd_limit=600,
quality_score=0.86,
latency_ms=900,
fallback_chain=("smolvlm2-2.2b-judge", "functiongemma-270m-judge-lite"),
),
ModelRecord(
model_id="smolvlm2-2.2b-judge",
lane="taste_judge",
provider="hf",
repo_id="HuggingFaceTB/SmolVLM2-2.2B-Instruct",
license_gate="apache-2.0",
params_b=2.2,
cost_hint="free_tier",
rpm_limit=45,
rpd_limit=800,
quality_score=0.81,
latency_ms=760,
),
ModelRecord(
model_id="functiongemma-270m-judge-lite",
lane="taste_judge",
provider="local",
repo_id="onnx-community/functiongemma-270m-it-ONNX",
license_gate="gemma",
params_b=0.27,
cost_hint="local_free",
rpm_limit=240,
rpd_limit=10000,
quality_score=0.64,
latency_ms=90,
),
ModelRecord(
model_id="dia-1.6b-tts",
lane="audio_lore_tts",
provider="hf",
repo_id="nari-labs/Dia-1.6B",
license_gate="review_required",
params_b=1.6,
cost_hint="free_tier_or_modal",
rpm_limit=25,
rpd_limit=300,
quality_score=0.88,
latency_ms=2100,
),
ModelRecord(
model_id="vibevoice-1.5b-tts",
lane="audio_lore_tts",
provider="hf",
repo_id="microsoft/VibeVoice-1.5B",
license_gate="review_required",
params_b=1.5,
cost_hint="free_tier_or_modal",
rpm_limit=25,
rpd_limit=300,
quality_score=0.85,
latency_ms=1900,
),
ModelRecord(
model_id="qwen3-tts-1.7b",
lane="audio_lore_tts",
provider="hf",
repo_id="Qwen/Qwen3-TTS-1.7B",
license_gate="review_required",
params_b=1.7,
cost_hint="free_tier_or_modal",
rpm_limit=25,
rpd_limit=300,
quality_score=0.84,
latency_ms=1800,
),
ModelRecord(
model_id="voxcpm2-tts",
lane="audio_lore_tts",
provider="hf",
repo_id="openbmb/VoxCPM2",
license_gate="apache-2.0",
params_b=2.4,
cost_hint="free_tier_or_modal",
rpm_limit=25,
rpd_limit=300,
quality_score=0.82,
latency_ms=1700,
),
ModelRecord(
model_id="zonos-tts",
lane="audio_lore_tts",
provider="hf",
repo_id="Zyphra/Zonos-v0.1-transformer",
license_gate="apache-2.0",
params_b=1.6,
cost_hint="free_tier_or_modal",
rpm_limit=25,
rpd_limit=300,
quality_score=0.81,
latency_ms=1600,
),
ModelRecord(
model_id="kokoro-82m-tts",
lane="audio_lore_tts",
provider="local",
repo_id="hexgrad/Kokoro-82M",
license_gate="apache-2.0",
params_b=0.082,
cost_hint="local_free",
rpm_limit=240,
rpd_limit=10000,
quality_score=0.73,
latency_ms=120,
),
ModelRecord(
model_id="chatterbox-tts",
lane="audio_lore_tts",
provider="hf",
repo_id="ResembleAI/chatterbox",
license_gate="mit",
params_b=0.5,
cost_hint="free_tier",
rpm_limit=40,
rpd_limit=800,
quality_score=0.76,
latency_ms=420,
),
ModelRecord(
model_id="higgs-audio-v3-excluded",
lane="audio_lore_tts",
provider="hf",
repo_id="bosonai/higgs-audio-v3",
license_gate="commercial_required",
params_b=4.0,
cost_hint="paid_or_uncleared",
rpm_limit=0,
rpd_limit=0,
quality_score=0.89,
latency_ms=1800,
health="excluded",
),
ModelRecord(
model_id="netflix-void-modal",
lane="video_repair",
provider="modal",
repo_id="Netflix/VOID",
license_gate="private_research",
params_b=1.3,
cost_hint="modal_credits",
rpm_limit=10,
rpd_limit=120,
quality_score=0.84,
latency_ms=12000,
fallback_chain=("void-q5-offline",),
),
ModelRecord(
model_id="void-q5-offline",
lane="video_repair",
provider="local",
repo_id="local/VOID-Q5-video-repair",
license_gate="private_research",
params_b=1.3,
cost_hint="offline",
rpm_limit=20,
rpd_limit=200,
quality_score=0.78,
latency_ms=16000,
),
ModelRecord(
model_id="fal-media-adapter",
lane="video_repair",
provider="fal",
repo_id="fal-ai/optional-media-generation",
license_gate="commercial_required",
params_b=0.0,
cost_hint="optional_external_provider",
rpm_limit=0,
rpd_limit=0,
quality_score=0.8,
latency_ms=6000,
health="excluded",
),
ModelRecord(
model_id="hf-api-metadata-cache",
lane="hf_catalog_research",
provider="hf_api",
repo_id="huggingface/hub-api",
license_gate="public_safe",
params_b=0.0,
cost_hint="free_tier_cached",
rpm_limit=180,
rpd_limit=3000,
quality_score=0.86,
latency_ms=240,
fallback_chain=("hf-cli-model-search", "local-catalog-cache"),
),
ModelRecord(
model_id="hf-cli-model-search",
lane="hf_catalog_research",
provider="hf_cli",
repo_id="huggingface/hub-cli",
license_gate="public_safe",
params_b=0.0,
cost_hint="free_tier_cli",
rpm_limit=60,
rpd_limit=1000,
quality_score=0.84,
latency_ms=600,
),
ModelRecord(
model_id="local-catalog-cache",
lane="hf_catalog_research",
provider="local",
repo_id="local/nexus-weaver-catalog-cache",
license_gate="public_safe",
params_b=0.0,
cost_hint="local_cache",
rpm_limit=10000,
rpd_limit=100000,
quality_score=0.65,
latency_ms=6,
),
ModelRecord(
model_id="modal-lora-eval-runner",
lane="modal_job_runner",
provider="modal",
repo_id="modal/nexus-lora-eval",
license_gate="private_research",
params_b=0.0,
cost_hint="modal_251_credit",
rpm_limit=20,
rpd_limit=180,
quality_score=0.87,
latency_ms=30000,
fallback_chain=("modal-dry-run-planner",),
),
ModelRecord(
model_id="modal-video-repair-batch",
lane="modal_job_runner",
provider="modal",
repo_id="modal/nexus-video-repair-batch",
license_gate="private_research",
params_b=0.0,
cost_hint="modal_251_credit",
rpm_limit=10,
rpd_limit=80,
quality_score=0.82,
latency_ms=45000,
),
ModelRecord(
model_id="modal-dry-run-planner",
lane="modal_job_runner",
provider="local",
repo_id="local/modal-job-dry-run",
license_gate="public_safe",
params_b=0.0,
cost_hint="local_free",
rpm_limit=10000,
rpd_limit=100000,
quality_score=0.58,
latency_ms=12,
),
]