wrap_model_call() — langchain Function Reference
Architecture documentation for the wrap_model_call() function in context_editing.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD fe7b3bde_4a2b_18e3_bb12_39dc2996869d["wrap_model_call()"] 670767f0_01ad_c9dd_6835_d1a9fb775005["ContextEditingMiddleware"] fe7b3bde_4a2b_18e3_bb12_39dc2996869d -->|defined in| 670767f0_01ad_c9dd_6835_d1a9fb775005 eb1539c1_1bd9_cd97_dcd3_ca4a0fa011f2["apply()"] fe7b3bde_4a2b_18e3_bb12_39dc2996869d -->|calls| eb1539c1_1bd9_cd97_dcd3_ca4a0fa011f2 style fe7b3bde_4a2b_18e3_bb12_39dc2996869d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/langchain/agents/middleware/context_editing.py lines 220–255
def wrap_model_call(
self,
request: ModelRequest[ContextT],
handler: Callable[[ModelRequest[ContextT]], 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 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 handler(request.override(messages=edited_messages))
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does wrap_model_call() do?
wrap_model_call() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/context_editing.py.
Where is wrap_model_call() defined?
wrap_model_call() is defined in libs/langchain_v1/langchain/agents/middleware/context_editing.py at line 220.
What does wrap_model_call() call?
wrap_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