mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-02 07:13:02 +00:00
fix(openai): keep web_search_options when a chat completions request bridges to the Responses API
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
6aa546303e
commit
d93d5a466b
3 changed files with 37 additions and 3 deletions
|
|
@ -6048,15 +6048,21 @@ def completion(
|
|||
bridges_to_responses_api: Final = (
|
||||
responses_api_model_info.get("mode") == "responses" and not skip_responses_api_bridge
|
||||
)
|
||||
allowed_openai_params: Final[list[str] | None] = (
|
||||
[*(kwargs.get("allowed_openai_params") or []), "reasoning_effort"]
|
||||
bridge_allowed_params: Final[tuple[str, ...]] = (
|
||||
("reasoning_effort", "web_search_options")
|
||||
if bridges_to_responses_api
|
||||
or reasoning_effort_needs_allowing(
|
||||
else ("reasoning_effort",)
|
||||
if reasoning_effort_needs_allowing(
|
||||
chat_reasoning.effort,
|
||||
model=model,
|
||||
custom_llm_provider=custom_llm_provider,
|
||||
base_model=base_model if isinstance(base_model, str) else None,
|
||||
)
|
||||
else ()
|
||||
)
|
||||
allowed_openai_params: Final[list[str] | None] = (
|
||||
[*(kwargs.get("allowed_openai_params") or []), *bridge_allowed_params]
|
||||
if bridge_allowed_params
|
||||
else kwargs.get("allowed_openai_params")
|
||||
)
|
||||
optional_param_args: Final = {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
from dataclasses import replace
|
||||
from typing import Final
|
||||
|
||||
import pytest
|
||||
from integration._support.client import Gateway
|
||||
from integration._support.provider import SharedProvider
|
||||
from integration.translation.case import TranslationTestCase
|
||||
from integration.translation.chat_completions.bases.openai_responses import GPT_5_6_SOL_TEST_CASE
|
||||
from integration.translation.runner import assert_translation
|
||||
|
||||
GPT_5_6_SOL_WEB_SEARCH_TEST_CASE: Final = replace(
|
||||
GPT_5_6_SOL_TEST_CASE,
|
||||
scenario="web_search_options",
|
||||
litellm_request={**GPT_5_6_SOL_TEST_CASE.litellm_request, "web_search_options": {"search_context_size": "low"}},
|
||||
expected_provider_request={
|
||||
**GPT_5_6_SOL_TEST_CASE.expected_provider_request,
|
||||
"tools": [{"type": "web_search", "search_context_size": "low"}],
|
||||
},
|
||||
)
|
||||
|
||||
CASES: Final = (GPT_5_6_SOL_WEB_SEARCH_TEST_CASE,)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("case", CASES, ids=lambda case: case.id)
|
||||
def test_chat_completions_params_openai_responses_web_search(
|
||||
case: TranslationTestCase, gateway: Gateway, provider: SharedProvider
|
||||
) -> None:
|
||||
assert_translation(case, gateway, provider)
|
||||
Loading…
Add table
Reference in a new issue