Home / Function/ _get_input_messages() — langchain Function Reference

_get_input_messages() — langchain Function Reference

Architecture documentation for the _get_input_messages() function in history.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  1978b1f4_7f00_d1ef_ed53_b27b8e0a8df8["_get_input_messages()"]
  f9cb8198_4568_d401_f003_82c579cfa18f["RunnableWithMessageHistory"]
  1978b1f4_7f00_d1ef_ed53_b27b8e0a8df8 -->|defined in| f9cb8198_4568_d401_f003_82c579cfa18f
  5e360526_b3e5_8866_7151_d23f423330a1["_enter_history()"]
  5e360526_b3e5_8866_7151_d23f423330a1 -->|calls| 1978b1f4_7f00_d1ef_ed53_b27b8e0a8df8
  99a194bc_c69c_05f1_1e52_0e0bce187e74["_aenter_history()"]
  99a194bc_c69c_05f1_1e52_0e0bce187e74 -->|calls| 1978b1f4_7f00_d1ef_ed53_b27b8e0a8df8
  9297f3bd_05a3_097d_3fa4_b9184b373e13["_exit_history()"]
  9297f3bd_05a3_097d_3fa4_b9184b373e13 -->|calls| 1978b1f4_7f00_d1ef_ed53_b27b8e0a8df8
  c39acc04_5c83_fe40_f25c_83d4affe2c5d["_aexit_history()"]
  c39acc04_5c83_fe40_f25c_83d4affe2c5d -->|calls| 1978b1f4_7f00_d1ef_ed53_b27b8e0a8df8
  style 1978b1f4_7f00_d1ef_ed53_b27b8e0a8df8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/langchain_core/runnables/history.py lines 443–479

    def _get_input_messages(
        self, input_val: str | BaseMessage | Sequence[BaseMessage] | dict
    ) -> list[BaseMessage]:
        # If dictionary, try to pluck the single key representing messages
        if isinstance(input_val, dict):
            if self.input_messages_key:
                key = self.input_messages_key
            elif len(input_val) == 1:
                key = next(iter(input_val.keys()))
            else:
                key = "input"
            input_val = input_val[key]

        # If value is a string, convert to a human message
        if isinstance(input_val, str):
            return [HumanMessage(content=input_val)]
        # If value is a single message, convert to a list
        if isinstance(input_val, BaseMessage):
            return [input_val]
        # If value is a list or tuple...
        if isinstance(input_val, (list, tuple)):
            # Handle empty case
            if len(input_val) == 0:
                return list(input_val)
            # If is a list of list, then return the first value
            # This occurs for chat models - since we batch inputs
            if isinstance(input_val[0], list):
                if len(input_val) != 1:
                    msg = f"Expected a single list of messages. Got {input_val}."
                    raise ValueError(msg)
                return input_val[0]
            return list(input_val)
        msg = (
            f"Expected str, BaseMessage, list[BaseMessage], or tuple[BaseMessage]. "
            f"Got {input_val}."
        )
        raise ValueError(msg)

Domain

Subdomains

Frequently Asked Questions

What does _get_input_messages() do?
_get_input_messages() is a function in the langchain codebase, defined in libs/core/langchain_core/runnables/history.py.
Where is _get_input_messages() defined?
_get_input_messages() is defined in libs/core/langchain_core/runnables/history.py at line 443.
What calls _get_input_messages()?
_get_input_messages() is called by 4 function(s): _aenter_history, _aexit_history, _enter_history, _exit_history.

Analyze Your Own Codebase

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

Try Supermodel Free