text: side!'Let's now show an example of similarity cachingfrom gptcache import Cachefrom gptcache.adapter.api import init_similar_cachefrom langchain.cache import GPTCacheimport hashlibdef get_hashed_name(name):    return hashlib.sha256(name.encode()).hexdigest()def init_gptcache(cache_obj: Cache, llm: str):    hashed_llm = get_hashed_name(llm)    init_similar_cache(cache_obj=cache_obj, data_dir=f"similar_cache_{hashed_llm}")langchain.llm_cache = GPTCache(init_gptcache)# The first time, it is not yet in cache, so it should take longerllm("Tell me a joke")    CPU times: user 1.42 s, sys: 279 ms, total: 1.7 s    Wall time: 8.44 s    '\n\nWhy did the chicken cross the road?\n\nTo get to the other side.'# This is an exact match, so it finds it in the cachellm("Tell me a joke")    CPU times: user 866 ms, sys: 20 ms, total: 886 ms    Wall time: 226 ms    '\n\nWhy did the chicken cross the road?\n\nTo get to the other side.'# This is not an exact match, but semantically within distance so it hits!llm("Tell me joke")    CPU times: user 853 ms, sys: 14.8 ms, total: 868 ms    Wall time: 224 ms    '\n\nWhy did the chicken cross the road?\n\nTo get to the other side.'Momento Cacheâ€‹Use Momento to cache prompts and responses.Requires momento to use, uncomment below to install:# !pip install momentoYou'll need