Home / File/ __init__.py — langchain Source File

__init__.py — langchain Source File

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

Entity Profile

Dependency Diagram

graph LR
  5c1862ac_9968_a75d_a4f6_cda40327c6b3["__init__.py"]
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  923d222e_e249_1c30_4cfe_3c907f050b78["langchain_core._import_utils"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> 923d222e_e249_1c30_4cfe_3c907f050b78
  17795dda_8689_7308_3ff9_4b900129bd10["langchain_core.tools.base"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> 17795dda_8689_7308_3ff9_4b900129bd10
  32e7bea2_0f8a_4503_4a9c_841f81e51095["langchain_core.tools.convert"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> 32e7bea2_0f8a_4503_4a9c_841f81e51095
  ca5ba58c_877f_7975_369b_ca5e40124948["langchain_core.tools.render"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> ca5ba58c_877f_7975_369b_ca5e40124948
  ea346aba_8d69_0400_e065_511baeaa1d64["langchain_core.tools.retriever"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> ea346aba_8d69_0400_e065_511baeaa1d64
  cdf8b60a_a434_4e87_10e0_a0f069a815dc["langchain_core.tools.simple"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> cdf8b60a_a434_4e87_10e0_a0f069a815dc
  b92c1fb2_4ef7_7241_137f_75491d966733["langchain_core.tools.structured"]
  5c1862ac_9968_a75d_a4f6_cda40327c6b3 --> b92c1fb2_4ef7_7241_137f_75491d966733
  style 5c1862ac_9968_a75d_a4f6_cda40327c6b3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Tools are classes that an Agent uses to interact with the world.

Each tool has a description. Agent uses the description to choose the righ tool for the
job.
"""

from __future__ import annotations

from typing import TYPE_CHECKING

from langchain_core._import_utils import import_attr

if TYPE_CHECKING:
    from langchain_core.tools.base import (
        FILTERED_ARGS,
        ArgsSchema,
        BaseTool,
        BaseToolkit,
        InjectedToolArg,
        InjectedToolCallId,
        SchemaAnnotationError,
        ToolException,
        _get_runnable_config_param,
        create_schema_from_function,
    )
    from langchain_core.tools.convert import (
        convert_runnable_to_tool,
        tool,
    )
    from langchain_core.tools.render import (
        ToolsRenderer,
        render_text_description,
        render_text_description_and_args,
    )
    from langchain_core.tools.retriever import (
        RetrieverInput,
        create_retriever_tool,
    )
    from langchain_core.tools.simple import Tool
    from langchain_core.tools.structured import StructuredTool

__all__ = (
    "FILTERED_ARGS",
    "ArgsSchema",
    "BaseTool",
    "BaseToolkit",
    "InjectedToolArg",
    "InjectedToolCallId",
    "RetrieverInput",
    "SchemaAnnotationError",
    "StructuredTool",
    "Tool",
    "ToolException",
    "ToolsRenderer",
    "_get_runnable_config_param",
    "convert_runnable_to_tool",
    "create_retriever_tool",
    "create_schema_from_function",
    "render_text_description",
    "render_text_description_and_args",
    "tool",
)

_dynamic_imports = {
    "FILTERED_ARGS": "base",
    "ArgsSchema": "base",
    "BaseTool": "base",
    "BaseToolkit": "base",
    "InjectedToolArg": "base",
    "InjectedToolCallId": "base",
    "SchemaAnnotationError": "base",
    "ToolException": "base",
    "_get_runnable_config_param": "base",
    "create_schema_from_function": "base",
    "convert_runnable_to_tool": "convert",
    "tool": "convert",
    "ToolsRenderer": "render",
    "render_text_description": "render",
    "render_text_description_and_args": "render",
    "RetrieverInput": "retriever",
    "create_retriever_tool": "retriever",
    "Tool": "simple",
    "StructuredTool": "structured",
}


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.tools.base
  • langchain_core.tools.convert
  • langchain_core.tools.render
  • langchain_core.tools.retriever
  • langchain_core.tools.simple
  • langchain_core.tools.structured
  • 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 AgentOrchestration domain, ToolInterface 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 8 module(s): langchain_core._import_utils, langchain_core.tools.base, langchain_core.tools.convert, langchain_core.tools.render, langchain_core.tools.retriever, langchain_core.tools.simple, langchain_core.tools.structured, typing.
Where is __init__.py in the architecture?
__init__.py is located at libs/core/langchain_core/tools/__init__.py (domain: AgentOrchestration, subdomain: ToolInterface, directory: libs/core/langchain_core/tools).

Analyze Your Own Codebase

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

Try Supermodel Free