fix(responses): suppress duplicate bridge spend log

This commit is contained in:
Simon Sorg 2026-09-24 17:57:25 +02:00
parent 22b36cbcf6
commit 844801bd28
No known key found for this signature in database
2 changed files with 13 additions and 4 deletions

View file

@ -6,6 +6,7 @@ from collections.abc import Coroutine, Mapping
from typing import Final
import litellm
from litellm._internal_context import is_internal_call
from litellm.responses.additional_tools import hoist_additional_tools
from litellm.responses.litellm_completion_transformation.streaming_iterator import (
LiteLLMCompletionStreamingIterator,
@ -113,9 +114,13 @@ class LiteLLMCompletionTransformationHandler:
acompletion_args.update(litellm_completion_request)
acompletion_args["_skip_responses_api_bridge"] = True
litellm_completion_response: Final[ModelResponse | litellm.CustomStreamWrapper] = await litellm.acompletion(
**acompletion_args,
)
token: Final = is_internal_call.set(True)
try:
litellm_completion_response: Final[ModelResponse | litellm.CustomStreamWrapper] = await litellm.acompletion(
**acompletion_args
)
finally:
is_internal_call.reset(token)
if isinstance(litellm_completion_response, ModelResponse):
responses_api_response: Final[ResponsesAPIResponse] = (

View file

@ -21,6 +21,7 @@ import httpx
import pytest
import litellm
from litellm._internal_context import is_internal_call
from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler
from litellm.responses.litellm_completion_transformation.handler import (
LiteLLMCompletionTransformationHandler,
@ -55,12 +56,13 @@ def test_sync_fallback_tags_skip_responses_api_bridge():
@pytest.mark.asyncio
async def test_async_fallback_tags_skip_responses_api_bridge():
async def test_async_fallback_tags_internal_call_and_skip_responses_api_bridge():
handler = LiteLLMCompletionTransformationHandler()
captured: dict = {}
async def fake_acompletion(**kwargs):
captured.update(kwargs)
captured["is_internal_call"] = is_internal_call.get()
raise _StopForwarding()
with patch("litellm.acompletion", fake_acompletion):
@ -75,6 +77,8 @@ async def test_async_fallback_tags_skip_responses_api_bridge():
await coro
assert captured.get("_skip_responses_api_bridge") is True
assert captured["is_internal_call"] is True
assert is_internal_call.get() is False
_CODEX_ADDITIONAL_TOOLS_ITEM = {