Home / File/ openai.py — langchain Source File

openai.py — langchain Source File

Architecture documentation for openai.py, a python file in the langchain codebase. 7 imports, 0 dependents.

File python LangChainCore ApiManagement 7 imports 15 functions

Entity Profile

Dependency Diagram

graph LR
  3f58992c_878c_57d1_7412_5e64743aa7ba["openai.py"]
  9d14ea65_8b2e_6721_a947_acc89905651f["json"]
  3f58992c_878c_57d1_7412_5e64743aa7ba --> 9d14ea65_8b2e_6721_a947_acc89905651f
  f3365e3c_fb7a_bb9a_bc79_059b06cb7024["warnings"]
  3f58992c_878c_57d1_7412_5e64743aa7ba --> f3365e3c_fb7a_bb9a_bc79_059b06cb7024
  feec1ec4_6917_867b_d228_b134d0ff8099["typing"]
  3f58992c_878c_57d1_7412_5e64743aa7ba --> feec1ec4_6917_867b_d228_b134d0ff8099
  241c62f2_4ca5_bacf_a24e_88b009b752c7["langchain_core.language_models._utils"]
  3f58992c_878c_57d1_7412_5e64743aa7ba --> 241c62f2_4ca5_bacf_a24e_88b009b752c7
  9444498b_8066_55c7_b3a2_1d90c4162a32["langchain_core.messages"]
  3f58992c_878c_57d1_7412_5e64743aa7ba --> 9444498b_8066_55c7_b3a2_1d90c4162a32
  2bf6d401_816d_d011_3b05_a6114f55ff58["collections.abc"]
  3f58992c_878c_57d1_7412_5e64743aa7ba --> 2bf6d401_816d_d011_3b05_a6114f55ff58
  0fe560dd_848c_7366_0e99_c7427ce20262["langchain_core.messages.block_translators"]
  3f58992c_878c_57d1_7412_5e64743aa7ba --> 0fe560dd_848c_7366_0e99_c7427ce20262
  style 3f58992c_878c_57d1_7412_5e64743aa7ba fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Derivations of standard content blocks from OpenAI content."""

from __future__ import annotations

import json
import warnings
from typing import TYPE_CHECKING, Any, Literal, cast

from langchain_core.language_models._utils import (
    _parse_data_uri,
    is_openai_data_block,
)
from langchain_core.messages import AIMessageChunk
from langchain_core.messages import content as types

if TYPE_CHECKING:
    from collections.abc import Iterator

    from langchain_core.messages import AIMessage


def convert_to_openai_image_block(block: dict[str, Any]) -> dict:
    """Convert `ImageContentBlock` to format expected by OpenAI Chat Completions.

    Args:
        block: The image content block to convert.

    Raises:
        ValueError: If required keys are missing.
        ValueError: If source type is unsupported.

    Returns:
        The formatted image content block.
    """
    if "url" in block:
        return {
            "type": "image_url",
            "image_url": {
                "url": block["url"],
            },
        }
    if "base64" in block or block.get("source_type") == "base64":
        if "mime_type" not in block:
            error_message = "mime_type key is required for base64 data."
            raise ValueError(error_message)
        mime_type = block["mime_type"]
        base64_data = block["data"] if "data" in block else block["base64"]
        return {
            "type": "image_url",
            "image_url": {
                "url": f"data:{mime_type};base64,{base64_data}",
            },
        }
    error_message = "Unsupported source type. Only 'url' and 'base64' are supported."
    raise ValueError(error_message)


def convert_to_openai_data_block(
    block: dict, api: Literal["chat/completions", "responses"] = "chat/completions"
) -> dict:
// ... (976 more lines)

Domain

Subdomains

Dependencies

  • collections.abc
  • json
  • langchain_core.language_models._utils
  • langchain_core.messages
  • langchain_core.messages.block_translators
  • typing
  • warnings

Frequently Asked Questions

What does openai.py do?
openai.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, ApiManagement subdomain.
What functions are defined in openai.py?
openai.py defines 15 function(s): _convert_annotation_to_v1, _convert_from_v03_ai_message, _convert_from_v1_to_chat_completions, _convert_openai_format_to_data_block, _convert_to_v1_from_chat_completions, _convert_to_v1_from_chat_completions_chunk, _convert_to_v1_from_chat_completions_input, _convert_to_v1_from_responses, _explode_reasoning, _register_openai_translator, and 5 more.
What does openai.py depend on?
openai.py imports 7 module(s): collections.abc, json, langchain_core.language_models._utils, langchain_core.messages, langchain_core.messages.block_translators, typing, warnings.
Where is openai.py in the architecture?
openai.py is located at libs/core/langchain_core/messages/block_translators/openai.py (domain: LangChainCore, subdomain: ApiManagement, directory: libs/core/langchain_core/messages/block_translators).

Analyze Your Own Codebase

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

Try Supermodel Free