Home / File/ __init__.py — langchain Source File

__init__.py — langchain Source File

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

File python CoreAbstractions Serialization 9 imports 3 functions

Entity Profile

Dependency Diagram

graph LR
  ae916d82_a9cb_64ec_ef59_5dfca41c9732["__init__.py"]
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  923d222e_e249_1c30_4cfe_3c907f050b78["langchain_core._import_utils"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> 923d222e_e249_1c30_4cfe_3c907f050b78
  87a7e59a_c218_0854_8192_d59035f1c4b0["langchain_core.language_models._utils"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> 87a7e59a_c218_0854_8192_d59035f1c4b0
  a2ee9dce_2c05_f65f_71c7_74ac415394d8["langchain_core.language_models.base"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> a2ee9dce_2c05_f65f_71c7_74ac415394d8
  2312f229_c199_ac88_c29f_62e2a2958404["langchain_core.language_models.chat_models"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> 2312f229_c199_ac88_c29f_62e2a2958404
  e64d87a5_a799_d1b7_53ff_02476794ee20["langchain_core.language_models.fake"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> e64d87a5_a799_d1b7_53ff_02476794ee20
  833aeadc_c3e9_bfcf_db07_ecb37ad3ba24["langchain_core.language_models.fake_chat_models"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> 833aeadc_c3e9_bfcf_db07_ecb37ad3ba24
  89934eed_a823_2184_acf2_039f48eed5f9["langchain_core.language_models.llms"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> 89934eed_a823_2184_acf2_039f48eed5f9
  cb319e4e_a6d4_5fa2_777b_9f966424a8b3["langchain_core.language_models.model_profile"]
  ae916d82_a9cb_64ec_ef59_5dfca41c9732 --> cb319e4e_a6d4_5fa2_777b_9f966424a8b3
  style ae916d82_a9cb_64ec_ef59_5dfca41c9732 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Core language model abstractions.

LangChain has two main classes to work with language models: chat models and
"old-fashioned" LLMs (string-in, string-out).

**Chat models**

Language models that use a sequence of messages as inputs and return chat messages
as outputs (as opposed to using plain text).

Chat models support the assignment of distinct roles to conversation messages, helping
to distinguish messages from the AI, users, and instructions such as system messages.

The key abstraction for chat models is
[`BaseChatModel`][langchain_core.language_models.BaseChatModel]. Implementations should
inherit from this class.

See existing [chat model integrations](https://docs.langchain.com/oss/python/integrations/chat).

**LLMs (legacy)**

Language models that takes a string as input and returns a string.

These are traditionally older models (newer models generally are chat models).

Although the underlying models are string in, string out, the LangChain wrappers also
allow these models to take messages as input. This gives them the same interface as
chat models. When messages are passed in as input, they will be formatted into a string
under the hood before being passed to the underlying model.
"""

from typing import TYPE_CHECKING

from langchain_core._import_utils import import_attr
from langchain_core.language_models._utils import is_openai_data_block

if TYPE_CHECKING:
    from langchain_core.language_models.base import (
        BaseLanguageModel,
        LangSmithParams,
        LanguageModelInput,
        LanguageModelLike,
        LanguageModelOutput,
        get_tokenizer,
    )
    from langchain_core.language_models.chat_models import (
        BaseChatModel,
        SimpleChatModel,
    )
    from langchain_core.language_models.fake import FakeListLLM, FakeStreamingListLLM
    from langchain_core.language_models.fake_chat_models import (
        FakeListChatModel,
        FakeMessagesListChatModel,
        GenericFakeChatModel,
        ParrotFakeChatModel,
    )
    from langchain_core.language_models.llms import LLM, BaseLLM
    from langchain_core.language_models.model_profile import (
        ModelProfile,
        ModelProfileRegistry,
    )

__all__ = (
    "LLM",
    "BaseChatModel",
    "BaseLLM",
    "BaseLanguageModel",
    "FakeListChatModel",
    "FakeListLLM",
    "FakeMessagesListChatModel",
    "FakeStreamingListLLM",
    "GenericFakeChatModel",
    "LangSmithParams",
    "LanguageModelInput",
    "LanguageModelLike",
    "LanguageModelOutput",
    "ModelProfile",
    "ModelProfileRegistry",
    "ParrotFakeChatModel",
    "SimpleChatModel",
    "get_tokenizer",
    "is_openai_data_block",
)

_dynamic_imports = {
    "BaseLanguageModel": "base",
    "LangSmithParams": "base",
    "LanguageModelInput": "base",
    "LanguageModelLike": "base",
    "LanguageModelOutput": "base",
    "get_tokenizer": "base",
    "BaseChatModel": "chat_models",
    "SimpleChatModel": "chat_models",
    "FakeListLLM": "fake",
    "FakeStreamingListLLM": "fake",
    "FakeListChatModel": "fake_chat_models",
    "FakeMessagesListChatModel": "fake_chat_models",
    "GenericFakeChatModel": "fake_chat_models",
    "ParrotFakeChatModel": "fake_chat_models",
    "LLM": "llms",
    "ModelProfile": "model_profile",
    "ModelProfileRegistry": "model_profile",
    "BaseLLM": "llms",
    "is_openai_data_block": "_utils",
}


def __getattr__(attr_name: str) -> object:
    module_name = _dynamic_imports.get(attr_name)
    result = import_attr(attr_name, module_name, __spec__.parent)
    globals()[attr_name] = result
    return result


def __dir__() -> list[str]:
    return list(__all__)

Subdomains

Dependencies

  • langchain_core._import_utils
  • langchain_core.language_models._utils
  • langchain_core.language_models.base
  • langchain_core.language_models.chat_models
  • langchain_core.language_models.fake
  • langchain_core.language_models.fake_chat_models
  • langchain_core.language_models.llms
  • langchain_core.language_models.model_profile
  • typing

Frequently Asked Questions

What does __init__.py do?
__init__.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, Serialization subdomain.
What functions are defined in __init__.py?
__init__.py defines 3 function(s): __dir__, __getattr__, langchain_core.
What does __init__.py depend on?
__init__.py imports 9 module(s): langchain_core._import_utils, langchain_core.language_models._utils, langchain_core.language_models.base, langchain_core.language_models.chat_models, langchain_core.language_models.fake, langchain_core.language_models.fake_chat_models, langchain_core.language_models.llms, langchain_core.language_models.model_profile, and 1 more.
Where is __init__.py in the architecture?
__init__.py is located at libs/core/langchain_core/language_models/__init__.py (domain: CoreAbstractions, subdomain: Serialization, directory: libs/core/langchain_core/language_models).

Analyze Your Own Codebase

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

Try Supermodel Free