Home / Function/ _get_output_messages() — langchain Function Reference

_get_output_messages() — langchain Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  293dcfbd_674c_d56d_4708_39019a6881d5["_get_output_messages()"]
  f9cb8198_4568_d401_f003_82c579cfa18f["RunnableWithMessageHistory"]
  293dcfbd_674c_d56d_4708_39019a6881d5 -->|defined in| f9cb8198_4568_d401_f003_82c579cfa18f
  9297f3bd_05a3_097d_3fa4_b9184b373e13["_exit_history()"]
  9297f3bd_05a3_097d_3fa4_b9184b373e13 -->|calls| 293dcfbd_674c_d56d_4708_39019a6881d5
  c39acc04_5c83_fe40_f25c_83d4affe2c5d["_aexit_history()"]
  c39acc04_5c83_fe40_f25c_83d4affe2c5d -->|calls| 293dcfbd_674c_d56d_4708_39019a6881d5
  style 293dcfbd_674c_d56d_4708_39019a6881d5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/langchain_core/runnables/history.py lines 481–510

    def _get_output_messages(
        self, output_val: str | BaseMessage | Sequence[BaseMessage] | dict
    ) -> list[BaseMessage]:
        # If dictionary, try to pluck the single key representing messages
        if isinstance(output_val, dict):
            if self.output_messages_key:
                key = self.output_messages_key
            elif len(output_val) == 1:
                key = next(iter(output_val.keys()))
            else:
                key = "output"
            # If you are wrapping a chat model directly
            # The output is actually this weird generations object
            if key not in output_val and "generations" in output_val:
                output_val = output_val["generations"][0][0]["message"]
            else:
                output_val = output_val[key]

        if isinstance(output_val, str):
            return [AIMessage(content=output_val)]
        # If value is a single message, convert to a list
        if isinstance(output_val, BaseMessage):
            return [output_val]
        if isinstance(output_val, (list, tuple)):
            return list(output_val)
        msg = (
            f"Expected str, BaseMessage, list[BaseMessage], or tuple[BaseMessage]. "
            f"Got {output_val}."
        )
        raise ValueError(msg)

Domain

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free