Home / Function/ awrap_model_call() — langchain Function Reference

awrap_model_call() — langchain Function Reference

Architecture documentation for the awrap_model_call() function in context_editing.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  8ea33785_b55b_c969_ea50_490f985dd1bf["awrap_model_call()"]
  670767f0_01ad_c9dd_6835_d1a9fb775005["ContextEditingMiddleware"]
  8ea33785_b55b_c969_ea50_490f985dd1bf -->|defined in| 670767f0_01ad_c9dd_6835_d1a9fb775005
  eb1539c1_1bd9_cd97_dcd3_ca4a0fa011f2["apply()"]
  8ea33785_b55b_c969_ea50_490f985dd1bf -->|calls| eb1539c1_1bd9_cd97_dcd3_ca4a0fa011f2
  style 8ea33785_b55b_c969_ea50_490f985dd1bf fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/langchain/agents/middleware/context_editing.py lines 257–292

    async def awrap_model_call(
        self,
        request: ModelRequest[ContextT],
        handler: Callable[[ModelRequest[ContextT]], Awaitable[ModelResponse[ResponseT]]],
    ) -> ModelResponse[ResponseT] | AIMessage:
        """Apply context edits before invoking the model via handler.

        Args:
            request: Model request to execute (includes state and runtime).
            handler: Async callback that executes the model request and returns
                `ModelResponse`.

        Returns:
            The result of invoking the handler with potentially edited messages.
        """
        if not request.messages:
            return await handler(request)

        if self.token_count_method == "approximate":  # noqa: S105

            def count_tokens(messages: Sequence[BaseMessage]) -> int:
                return count_tokens_approximately(messages)

        else:
            system_msg = [request.system_message] if request.system_message else []

            def count_tokens(messages: Sequence[BaseMessage]) -> int:
                return request.model.get_num_tokens_from_messages(
                    system_msg + list(messages), request.tools
                )

        edited_messages = deepcopy(list(request.messages))
        for edit in self.edits:
            edit.apply(edited_messages, count_tokens=count_tokens)

        return await handler(request.override(messages=edited_messages))

Domain

Subdomains

Calls

Frequently Asked Questions

What does awrap_model_call() do?
awrap_model_call() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/context_editing.py.
Where is awrap_model_call() defined?
awrap_model_call() is defined in libs/langchain_v1/langchain/agents/middleware/context_editing.py at line 257.
What does awrap_model_call() call?
awrap_model_call() calls 1 function(s): apply.

Analyze Your Own Codebase

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

Try Supermodel Free