Home / Function/ _convert_chunk_to_generation_chunk() — langchain Function Reference

_convert_chunk_to_generation_chunk() — langchain Function Reference

Architecture documentation for the _convert_chunk_to_generation_chunk() function in base.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  9dd73ff5_bb27_7bf2_5124_b82e93cd60f6["_convert_chunk_to_generation_chunk()"]
  2a683305_667b_3567_cab9_9f77e29d4afa["BaseChatOpenAI"]
  9dd73ff5_bb27_7bf2_5124_b82e93cd60f6 -->|defined in| 2a683305_667b_3567_cab9_9f77e29d4afa
  eee344d5_cb34_d6fa_ca18_010bbd1e6cd0["_stream()"]
  eee344d5_cb34_d6fa_ca18_010bbd1e6cd0 -->|calls| 9dd73ff5_bb27_7bf2_5124_b82e93cd60f6
  47573e6b_689c_1e1b_b035_1aee9c3d3bba["_astream()"]
  47573e6b_689c_1e1b_b035_1aee9c3d3bba -->|calls| 9dd73ff5_bb27_7bf2_5124_b82e93cd60f6
  81a7400d_9d67_48c6_dcb8_b344f5cba3ee["_create_usage_metadata()"]
  9dd73ff5_bb27_7bf2_5124_b82e93cd60f6 -->|calls| 81a7400d_9d67_48c6_dcb8_b344f5cba3ee
  125c7e66_41f8_c4be_7430_7f650e0e9678["_convert_delta_to_message_chunk()"]
  9dd73ff5_bb27_7bf2_5124_b82e93cd60f6 -->|calls| 125c7e66_41f8_c4be_7430_7f650e0e9678
  style 9dd73ff5_bb27_7bf2_5124_b82e93cd60f6 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/openai/langchain_openai/chat_models/base.py lines 1092–1152

    def _convert_chunk_to_generation_chunk(
        self,
        chunk: dict,
        default_chunk_class: type,
        base_generation_info: dict | None,
    ) -> ChatGenerationChunk | None:
        if chunk.get("type") == "content.delta":  # From beta.chat.completions.stream
            return None
        token_usage = chunk.get("usage")
        choices = (
            chunk.get("choices", [])
            # From beta.chat.completions.stream
            or chunk.get("chunk", {}).get("choices", [])
        )

        usage_metadata: UsageMetadata | None = (
            _create_usage_metadata(token_usage, chunk.get("service_tier"))
            if token_usage
            else None
        )
        if len(choices) == 0:
            # logprobs is implicitly None
            generation_chunk = ChatGenerationChunk(
                message=default_chunk_class(content="", usage_metadata=usage_metadata),
                generation_info=base_generation_info,
            )
            if self.output_version == "v1":
                generation_chunk.message.content = []
                generation_chunk.message.response_metadata["output_version"] = "v1"

            return generation_chunk

        choice = choices[0]
        if choice["delta"] is None:
            return None

        message_chunk = _convert_delta_to_message_chunk(
            choice["delta"], default_chunk_class
        )
        generation_info = {**base_generation_info} if base_generation_info else {}

        if finish_reason := choice.get("finish_reason"):
            generation_info["finish_reason"] = finish_reason
            if model_name := chunk.get("model"):
                generation_info["model_name"] = model_name
            if system_fingerprint := chunk.get("system_fingerprint"):
                generation_info["system_fingerprint"] = system_fingerprint
            if service_tier := chunk.get("service_tier"):
                generation_info["service_tier"] = service_tier

        logprobs = choice.get("logprobs")
        if logprobs:
            generation_info["logprobs"] = logprobs

        if usage_metadata and isinstance(message_chunk, AIMessageChunk):
            message_chunk.usage_metadata = usage_metadata

        message_chunk.response_metadata["model_provider"] = "openai"
        return ChatGenerationChunk(
            message=message_chunk, generation_info=generation_info or None
        )

Domain

Subdomains

Frequently Asked Questions

What does _convert_chunk_to_generation_chunk() do?
_convert_chunk_to_generation_chunk() is a function in the langchain codebase, defined in libs/partners/openai/langchain_openai/chat_models/base.py.
Where is _convert_chunk_to_generation_chunk() defined?
_convert_chunk_to_generation_chunk() is defined in libs/partners/openai/langchain_openai/chat_models/base.py at line 1092.
What does _convert_chunk_to_generation_chunk() call?
_convert_chunk_to_generation_chunk() calls 2 function(s): _convert_delta_to_message_chunk, _create_usage_metadata.
What calls _convert_chunk_to_generation_chunk()?
_convert_chunk_to_generation_chunk() is called by 2 function(s): _astream, _stream.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free