_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
Source
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