Skip to content

ccproxy.utils.model_mapper

ccproxy.utils.model_mapper

Utilities for applying provider-specific model mapping rules.

MappingMatch dataclass

MappingMatch(original, mapped, rule)

Result of applying a mapping rule to a model identifier.

ModelMapper

ModelMapper(rules=None)

Apply ordered mapping rules to model identifiers.

Source code in ccproxy/utils/model_mapper.py
def __init__(self, rules: Sequence[ModelMappingRule] | None = None) -> None:
    self._rules = list(rules or [])
    self._compiled = [self._compile_rule(rule) for rule in self._rules]

map

map(model_name)

Return mapped model and matching rule, or passthrough if none match.

Source code in ccproxy/utils/model_mapper.py
def map(self, model_name: str) -> MappingMatch:
    """Return mapped model and matching rule, or passthrough if none match."""
    for rule, compiled in zip(self._rules, self._compiled, strict=False):
        if self._matches(rule, compiled, model_name):
            return MappingMatch(original=model_name, mapped=rule.target, rule=rule)
    return MappingMatch(original=model_name, mapped=model_name, rule=None)

iter_rules

iter_rules()

Expose rules for diagnostics and testing.

Source code in ccproxy/utils/model_mapper.py
def iter_rules(self) -> Iterable[ModelMappingRule]:
    """Expose rules for diagnostics and testing."""
    return iter(self._rules)

add_model_alias

add_model_alias(metadata, original, mapped)

Record a model alias mapping on the request metadata.

Source code in ccproxy/utils/model_mapper.py
def add_model_alias(metadata: dict[str, object], original: str, mapped: str) -> None:
    """Record a model alias mapping on the request metadata."""

    if original == mapped:
        return

    alias_map = metadata.setdefault(_ALIAS_METADATA_KEY, {})
    if isinstance(alias_map, dict):
        alias_map[mapped] = original

restore_model_aliases

restore_model_aliases(payload, metadata)

Restore aliased model identifiers in response payloads.

Source code in ccproxy/utils/model_mapper.py
def restore_model_aliases(payload: object, metadata: Mapping[str, object]) -> object:
    """Restore aliased model identifiers in response payloads."""

    alias_map = metadata.get(_ALIAS_METADATA_KEY)
    if not isinstance(alias_map, Mapping) or not alias_map:
        return payload

    _restore_models(payload, alias_map)
    return payload