_convert_cached_generations() — langchain Function Reference
Architecture documentation for the _convert_cached_generations() function in chat_models.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD e506f0b9_d5ab_693a_acbb_b23cdda689ce["_convert_cached_generations()"] 48aa29b8_65e7_522f_a445_a441eeb6baff["BaseChatModel"] e506f0b9_d5ab_693a_acbb_b23cdda689ce -->|defined in| 48aa29b8_65e7_522f_a445_a441eeb6baff 7f734836_7715_c31c_80ea_e14410d37d70["_generate_with_cache()"] 7f734836_7715_c31c_80ea_e14410d37d70 -->|calls| e506f0b9_d5ab_693a_acbb_b23cdda689ce d2cd58bb_554b_a407_049a_8aaad431d049["_agenerate_with_cache()"] d2cd58bb_554b_a407_049a_8aaad431d049 -->|calls| e506f0b9_d5ab_693a_acbb_b23cdda689ce style e506f0b9_d5ab_693a_acbb_b23cdda689ce fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/language_models/chat_models.py lines 740–777
def _convert_cached_generations(self, cache_val: list) -> list[ChatGeneration]:
"""Convert cached Generation objects to ChatGeneration objects.
Handle case where cache contains Generation objects instead of
ChatGeneration objects. This can happen due to serialization/deserialization
issues or legacy cache data (see #22389).
Args:
cache_val: List of cached generation objects.
Returns:
List of ChatGeneration objects.
"""
converted_generations = []
for gen in cache_val:
if isinstance(gen, Generation) and not isinstance(gen, ChatGeneration):
# Convert Generation to ChatGeneration by creating AIMessage
# from the text content
chat_gen = ChatGeneration(
message=AIMessage(content=gen.text),
generation_info=gen.generation_info,
)
converted_generations.append(chat_gen)
else:
# Already a ChatGeneration or other expected type
if hasattr(gen, "message") and isinstance(gen.message, AIMessage):
# We zero out cost on cache hits
gen.message = gen.message.model_copy(
update={
"usage_metadata": {
**(gen.message.usage_metadata or {}),
"total_cost": 0,
}
}
)
converted_generations.append(gen)
return converted_generations
Domain
Subdomains
Source
Frequently Asked Questions
What does _convert_cached_generations() do?
_convert_cached_generations() is a function in the langchain codebase, defined in libs/core/langchain_core/language_models/chat_models.py.
Where is _convert_cached_generations() defined?
_convert_cached_generations() is defined in libs/core/langchain_core/language_models/chat_models.py at line 740.
What calls _convert_cached_generations()?
_convert_cached_generations() is called by 2 function(s): _agenerate_with_cache, _generate_with_cache.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free