Two students ask 'how do I reset my password' and 'password reset steps' minutes apart. An exact-match cache treats these as unrelated; a semantic cache — matching by embedding similarity, not exact text — serves the cached answer to both.
The threshold decides everything
Set the similarity threshold too low and you save on API calls but occasionally serve last week's answer to a subtly different question. Set it too high and the cache barely fires. Tune it against real near-duplicate pairs from your own logs, not a default.
- Cache the retrieved context and the final answer separately — sometimes only the retrieval step repeats.
- Invalidate on a time-to-live for anything tied to changing data; never cache answers about live numbers indefinitely.
- Log cache hits and periodically spot-check them for correctness, not just for the hit rate.
See LLM cost control and token budgets for where caching fits in a broader cost strategy.





