MCPcopy
hub / github.com/OpenBMB/ChatDev / _invoke_provider

Method _invoke_provider

runtime/node/executor/agent_executor.py:341–373  ·  view source on GitHub ↗

Invoke provider with logging + token tracking.

(
        self,
        provider: ModelProvider,
        client: Any,
        conversation: List[Message],
        timeline: List[Any],
        call_options: Dict[str, Any],
        tool_specs: List[ToolSpec] | None,
        node: Node,
    )

Source from the content-addressed store, hash-verified

339 return invoke
340
341 def _invoke_provider(
342 self,
343 provider: ModelProvider,
344 client: Any,
345 conversation: List[Message],
346 timeline: List[Any],
347 call_options: Dict[str, Any],
348 tool_specs: List[ToolSpec] | None,
349 node: Node,
350 ) -> ModelResponse:
351 """Invoke provider with logging + token tracking."""
352 self._ensure_not_cancelled()
353 if self.context.token_tracker:
354 self.context.token_tracker.current_node_id = node.id
355
356 agent_config = node.as_config(AgentConfig)
357 retry_policy = self._resolve_retry_policy(node, agent_config)
358
359 def _call_provider() -> ModelResponse:
360 return provider.call_model(
361 client,
362 conversation=conversation,
363 timeline=timeline,
364 tool_specs=tool_specs or None,
365 **call_options,
366 )
367
368 last_input = ''.join(msg.text_content() for msg in conversation) if conversation else ""
369 self._record_model_call(node, last_input, None, CallStage.BEFORE)
370 response = self._execute_with_retry(node, retry_policy, _call_provider)
371 self.log_manager.debug(response.str_raw_response())
372 self._record_model_call(node, last_input, response, CallStage.AFTER)
373 return response
374
375 def _record_model_call(
376 self,

Callers 3

executeMethod · 0.95
invokeMethod · 0.95
_handle_tool_callsMethod · 0.95

Calls 8

_resolve_retry_policyMethod · 0.95
_record_model_callMethod · 0.95
_execute_with_retryMethod · 0.95
_ensure_not_cancelledMethod · 0.80
text_contentMethod · 0.80
str_raw_responseMethod · 0.80
as_configMethod · 0.45
debugMethod · 0.45

Tested by

no test coverage detected