chore: format vertex web search conflict fix

This commit is contained in:
Genmin 2026-04-30 08:21:00 -07:00
parent 92f84d35ab
commit e33fca32b4
2 changed files with 24 additions and 17 deletions

View file

@ -560,9 +560,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig):
}
return any(key in tool for key in search_tool_keys)
def _drop_search_tools_if_mixed_with_functions(
self, optional_params: dict
) -> None:
def _drop_search_tools_if_mixed_with_functions(self, optional_params: dict) -> None:
tools = optional_params.get("tools")
if not isinstance(tools, list) or not self._has_function_declarations_tool(
tools
@ -575,9 +573,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig):
if server_side_tool_invocations:
return
filtered_tools = [
tool for tool in tools if not self._is_search_tool(tool=tool)
]
filtered_tools = [tool for tool in tools if not self._is_search_tool(tool=tool)]
if len(filtered_tools) == len(tools):
return
@ -593,9 +589,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig):
optional_params = super()._add_tools_to_optional_params(
optional_params=optional_params, tools=tools
)
self._drop_search_tools_if_mixed_with_functions(
optional_params=optional_params
)
self._drop_search_tools_if_mixed_with_functions(optional_params=optional_params)
return optional_params
def _map_function( # noqa: PLR0915

View file

@ -3499,7 +3499,12 @@ def test_video_metadata_supported_for_all_gemini_models():
}
]
for model in ["gemini-1.5-pro", "gemini-2.5-flash", "gemini-2.5-pro", "gemini-3-pro-preview"]:
for model in [
"gemini-1.5-pro",
"gemini-2.5-flash",
"gemini-2.5-pro",
"gemini-3-pro-preview",
]:
contents = _gemini_convert_messages_with_history(messages=messages, model=model)
file_part = None
@ -3509,19 +3514,25 @@ def test_video_metadata_supported_for_all_gemini_models():
break
assert file_part is not None, f"{model}: file part should exist"
assert "video_metadata" in file_part, f"{model}: video_metadata should be present"
assert (
"video_metadata" in file_part
), f"{model}: video_metadata should be present"
assert file_part["video_metadata"]["fps"] == 5, f"{model}: fps should be 5"
# Per-part media_resolution is Gemini 3+ only; 2.x uses generation_config global
for model in ["gemini-3-pro-preview"]:
contents = _gemini_convert_messages_with_history(messages=messages, model=model)
file_part = next(p for p in contents[0]["parts"] if "file_data" in p)
assert "media_resolution" in file_part, f"{model}: media_resolution should be present"
assert (
"media_resolution" in file_part
), f"{model}: media_resolution should be present"
for model in ["gemini-1.5-pro", "gemini-2.5-flash", "gemini-2.5-pro"]:
contents = _gemini_convert_messages_with_history(messages=messages, model=model)
file_part = next(p for p in contents[0]["parts"] if "file_data" in p)
assert "media_resolution" not in file_part, f"{model}: per-part media_resolution should not be set"
assert (
"media_resolution" not in file_part
), f"{model}: per-part media_resolution should not be set"
def test_chunk_parser_handles_prompt_feedback_block():
@ -4272,8 +4283,9 @@ def test_vertex_ai_usage_metadata_with_document_tokens_in_prompt():
# DOCUMENT tokens should be included in text_tokens: 8 (TEXT) + 774 (DOCUMENT) = 782
assert result.prompt_tokens_details is not None
assert result.prompt_tokens_details.text_tokens == 782, \
"DOCUMENT modality tokens should be added to text_tokens (8 TEXT + 774 DOCUMENT = 782)"
assert (
result.prompt_tokens_details.text_tokens == 782
), "DOCUMENT modality tokens should be added to text_tokens (8 TEXT + 774 DOCUMENT = 782)"
# Verify completion token details
assert result.completion_tokens_details is not None
@ -4308,8 +4320,9 @@ def test_vertex_ai_usage_metadata_with_document_tokens_cached():
# DOCUMENT cached tokens map to cached_text_tokens, so:
# text_tokens = (8 TEXT + 774 DOCUMENT) - 400 cached = 382
assert result.prompt_tokens_details.text_tokens == 382, \
"text_tokens should be (8 + 774) - 400 cached = 382"
assert (
result.prompt_tokens_details.text_tokens == 382
), "text_tokens should be (8 + 774) - 400 cached = 382"
assert result.prompt_tokens_details.cached_tokens == 400