Coverage for projects/04-llm-adapter-shadow/src/llm_adapter/utils.py: 90%
10 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-09-24 01:32 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-09-24 01:32 +0000
1"""Utility helpers for hashing request payloads."""
3import hashlib
4from typing import Any
7def content_hash(
8 provider: str,
9 prompt: str,
10 options: dict[str, Any] | None = None,
11 max_tokens: int | None = None,
12) -> str:
13 h = hashlib.sha256()
14 h.update(provider.encode())
15 h.update(prompt.encode())
16 h.update(repr(max_tokens).encode())
17 if options:
18 h.update(repr(sorted(options.items())).encode())
19 return h.hexdigest()[:16]