Home / Function/ before_model() — langchain Function Reference

before_model() — langchain Function Reference

Architecture documentation for the before_model() function in openai_moderation.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  89d607b7_7e05_add5_42e7_2441e93ddb88["before_model()"]
  48713c67_3a9a_ec9e_ec74_46e6955f07bd["OpenAIModerationMiddleware"]
  89d607b7_7e05_add5_42e7_2441e93ddb88 -->|defined in| 48713c67_3a9a_ec9e_ec74_46e6955f07bd
  551a16da_13eb_12e9_2086_b086d1dc2bfc["_moderate_inputs()"]
  89d607b7_7e05_add5_42e7_2441e93ddb88 -->|calls| 551a16da_13eb_12e9_2086_b086d1dc2bfc
  style 89d607b7_7e05_add5_42e7_2441e93ddb88 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/openai/langchain_openai/middleware/openai_moderation.py lines 91–110

    def before_model(
        self, state: AgentState[Any], runtime: Runtime[Any]
    ) -> dict[str, Any] | None:  # type: ignore[override]
        """Moderate user input and tool results before the model is called.

        Args:
            state: Current agent state containing messages.
            runtime: Agent runtime context.

        Returns:
            Updated state with moderated messages, or `None` if no changes.
        """
        if not self.check_input and not self.check_tool_results:
            return None

        messages = list(state.get("messages", []))
        if not messages:
            return None

        return self._moderate_inputs(messages)

Domain

Subdomains

Frequently Asked Questions

What does before_model() do?
before_model() is a function in the langchain codebase, defined in libs/partners/openai/langchain_openai/middleware/openai_moderation.py.
Where is before_model() defined?
before_model() is defined in libs/partners/openai/langchain_openai/middleware/openai_moderation.py at line 91.
What does before_model() call?
before_model() calls 1 function(s): _moderate_inputs.

Analyze Your Own Codebase

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

Try Supermodel Free