Home / Function/ _format_messages() — langchain Function Reference

_format_messages() — langchain Function Reference

Architecture documentation for the _format_messages() function in llms.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  04edfbcc_f913_d95a_6261_c2a81f9f570e["_format_messages()"]
  c95a497f_938f_2be9_842e_087a0766cf00["AnthropicLLM"]
  04edfbcc_f913_d95a_6261_c2a81f9f570e -->|defined in| c95a497f_938f_2be9_842e_087a0766cf00
  e1e4f815_3e2a_75f8_675e_9a5e7f0f868a["_call()"]
  e1e4f815_3e2a_75f8_675e_9a5e7f0f868a -->|calls| 04edfbcc_f913_d95a_6261_c2a81f9f570e
  40512e45_7b9d_dbee_2106_59fc9edca16c["_acall()"]
  40512e45_7b9d_dbee_2106_59fc9edca16c -->|calls| 04edfbcc_f913_d95a_6261_c2a81f9f570e
  cb1cae7d_4a5d_cfbf_994a_88075fe175e2["_stream()"]
  cb1cae7d_4a5d_cfbf_994a_88075fe175e2 -->|calls| 04edfbcc_f913_d95a_6261_c2a81f9f570e
  3f0a5215_29d7_44ca_e135_a3f37294ae0c["_astream()"]
  3f0a5215_29d7_44ca_e135_a3f37294ae0c -->|calls| 04edfbcc_f913_d95a_6261_c2a81f9f570e
  style 04edfbcc_f913_d95a_6261_c2a81f9f570e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/anthropic/langchain_anthropic/llms.py lines 210–247

    def _format_messages(self, prompt: str) -> list[dict[str, str]]:
        """Convert prompt to Messages API format."""
        messages = []

        # Handle legacy prompts that might have HUMAN_PROMPT/AI_PROMPT markers
        if self.HUMAN_PROMPT and self.HUMAN_PROMPT in prompt:
            # Split on human/assistant turns
            parts = prompt.split(self.HUMAN_PROMPT)

            for _, part in enumerate(parts):
                if not part.strip():
                    continue

                if self.AI_PROMPT and self.AI_PROMPT in part:
                    # Split human and assistant parts
                    human_part, assistant_part = part.split(self.AI_PROMPT, 1)
                    if human_part.strip():
                        messages.append({"role": "user", "content": human_part.strip()})
                    if assistant_part.strip():
                        messages.append(
                            {"role": "assistant", "content": assistant_part.strip()}
                        )
                # Just human content
                elif part.strip():
                    messages.append({"role": "user", "content": part.strip()})
        else:
            # Handle modern format or plain text
            # Clean prompt for Messages API
            content = re.sub(r"^\n*Human:\s*", "", prompt)
            content = re.sub(r"\n*Assistant:\s*.*$", "", content)
            if content.strip():
                messages.append({"role": "user", "content": content.strip()})

        # Ensure we have at least one message
        if not messages:
            messages = [{"role": "user", "content": prompt.strip() or "Hello"}]

        return messages

Domain

Subdomains

Frequently Asked Questions

What does _format_messages() do?
_format_messages() is a function in the langchain codebase, defined in libs/partners/anthropic/langchain_anthropic/llms.py.
Where is _format_messages() defined?
_format_messages() is defined in libs/partners/anthropic/langchain_anthropic/llms.py at line 210.
What calls _format_messages()?
_format_messages() is called by 4 function(s): _acall, _astream, _call, _stream.

Analyze Your Own Codebase

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

Try Supermodel Free