mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-03 02:22:24 +00:00
fix(messages): expose upstream headers to python
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
d404f55802
commit
fb75b91b61
2 changed files with 20 additions and 4 deletions
|
|
@ -9,6 +9,7 @@ from pydantic import TypeAdapter, ValidationError
|
|||
|
||||
import litellm
|
||||
from litellm.litellm_core_utils.core_helpers import normalize_drop_params
|
||||
from litellm.litellm_core_utils.core_helpers import process_response_headers
|
||||
from litellm.llms.anthropic.pass_through.utils import is_reasoning_auto_summary_enabled
|
||||
from litellm.router_utils.add_retry_fallback_headers import _add_headers_to_response
|
||||
from litellm.rust_bridge import failures
|
||||
|
|
@ -54,7 +55,10 @@ def response(
|
|||
) -> AnthropicMessagesResponse:
|
||||
response_value = dict(value)
|
||||
if headers:
|
||||
_add_headers_to_response(response_value, dict(httpx.Headers(list(headers)).items()))
|
||||
_add_headers_to_response(
|
||||
response_value,
|
||||
process_response_headers(httpx.Headers(list(headers))),
|
||||
)
|
||||
return cast( # cast-ok: AnthropicMessagesResponse is a TypedDict over the normalized native payload
|
||||
AnthropicMessagesResponse,
|
||||
response_value,
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
from dataclasses import astuple
|
||||
from types import MappingProxyType
|
||||
from typing import Final
|
||||
|
||||
from litellm.rust_bridge.messages.route_host import arguments, response
|
||||
from litellm.rust_bridge.messages.entrypoints import LiteLLMMessagesRequest
|
||||
from dataclasses import astuple
|
||||
import pytest
|
||||
|
||||
import litellm
|
||||
from litellm.rust_bridge.messages import route_host
|
||||
from litellm.rust_bridge.messages.entrypoints import LiteLLMMessagesRequest
|
||||
from litellm.rust_bridge.messages.route_host import arguments, response
|
||||
|
||||
|
||||
def test_response_is_a_detached_public_messages_dict() -> None:
|
||||
|
|
@ -30,6 +31,17 @@ def test_response_is_a_detached_public_messages_dict() -> None:
|
|||
assert "_hidden_params" not in native
|
||||
|
||||
|
||||
def test_response_projects_upstream_headers_into_hidden_params() -> None:
|
||||
built: Final = response(
|
||||
MappingProxyType({"id": "msg_native"}),
|
||||
(("request-id", "req_upstream_123"), ("x-ratelimit-remaining-requests", "41")),
|
||||
)
|
||||
|
||||
additional: Final = built["_hidden_params"]["additional_headers"]
|
||||
assert additional["llm_provider-request-id"] == "req_upstream_123"
|
||||
assert additional["x-ratelimit-remaining-requests"] == "41"
|
||||
|
||||
|
||||
def test_arguments_are_the_public_kwargs_view() -> None:
|
||||
kwargs: Final = MappingProxyType({"litellm_metadata": {"user_id": "u"}})
|
||||
request: Final = LiteLLMMessagesRequest(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue