"""Shared cache key helpers for embedding inputs. Current canonical raw-key format: - text: ``embed:norm1:`` / ``embed:norm0:`` - image: ``embed:norm1:`` / ``embed:norm0:`` `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}"