Home / Function/ _convert_cached_generations() — langchain Function Reference

_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

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