cache_keys.py 676 Bytes
"""Shared cache key helpers for embedding inputs.

Current canonical raw-key format:
- text:  ``embed:norm1:<text>`` / ``embed:norm0:<text>``
- image: ``embed:norm1:<url>``  / ``embed:norm0:<url>``

`RedisEmbeddingCache` adds the configured key prefix and optional namespace on top.
"""

from __future__ import annotations


def build_text_cache_key(text: str, *, normalize: bool) -> str:
    normalized_text = str(text or "").strip()
    return f"embed:norm{1 if normalize else 0}:{normalized_text}"


def build_image_cache_key(url: str, *, normalize: bool) -> str:
    normalized_url = str(url or "").strip()
    return f"embed:norm{1 if normalize else 0}:{normalized_url}"