[Bug Fix] Perplexity - LiteLLM doesn't support 'web_search_options' for Perplexity' Sonar Pro model (#11983)

* TestPerplexityWebSearch

* use supports_web_search

* Update tests/test_litellm/llms/perplexity/test_perplexity.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Ishaan Jaff
2025-06-23 10:21:50 -07:00
committed by GitHub
co-authored by Copilot
parent 962fd67227
commit ef7f8cce93
2 changed files with 34 additions and 0 deletions
@@ -55,4 +55,13 @@ class PerplexityChatConfig(OpenAIGPTConfig):
base_openai_params.append("reasoning_effort")
except Exception as e:
verbose_logger.debug(f"Error checking if model supports reasoning: {e}")
try:
if litellm.supports_web_search(
model=model, custom_llm_provider=self.custom_llm_provider
):
base_openai_params.append("web_search_options")
except Exception as e:
verbose_logger.debug(f"Error checking if model supports web search: {e}")
return base_openai_params
@@ -0,0 +1,25 @@
import os
import sys
sys.path.insert(0, os.path.abspath("../../.."))
import pytest
class TestPerplexityWebSearch:
"""Test suite for Perplexity web search functionality."""
@pytest.mark.parametrize(
"model",
["perplexity/sonar", "perplexity/sonar-pro"]
)
def test_web_search_options_in_supported_params(self, model):
"""
Test that web_search_options is in the list of supported parameters for Perplexity sonar models
"""
from litellm.llms.perplexity.chat.transformation import PerplexityChatConfig
config = PerplexityChatConfig()
supported_params = config.get_supported_openai_params(model=model)
assert "web_search_options" in supported_params, f"web_search_options should be supported for {model}"