RICS / backend /core /interference.py
StormShadow308's picture
Add demo documentation and Docker setup for v2 report generation system
aad7814
Raw
History Blame Contribute Delete
1.01 kB
"""Interference level resolution for generation depth (minimum / medium / maximum)."""
from __future__ import annotations
from typing import Literal
InterferenceLevel = Literal["minimum", "medium", "maximum"]
_SURVEY_TO_INTERFERENCE: dict[int, InterferenceLevel] = {
1: "minimum",
2: "medium",
3: "maximum",
}
def resolve_interference_level(
explicit: str | None,
survey_level: int = 3,
) -> InterferenceLevel:
"""Resolve the composition path from an explicit level or RICS survey tier."""
if explicit:
level = explicit.strip().lower()
if level in _SURVEY_TO_INTERFERENCE.values():
return level # type: ignore[return-value]
tier = max(1, min(3, int(survey_level or 3)))
return _SURVEY_TO_INTERFERENCE.get(tier, "maximum")
def uses_llm_composition(interference_level: InterferenceLevel) -> bool:
"""Medium and maximum always target the LLM compose/expand path when available."""
return interference_level in ("medium", "maximum")