From 7cb49268dfd71df071d63f2610776bcdfd427aaa Mon Sep 17 00:00:00 2001 From: Abhi Ram Salammagari Date: Sat, 30 May 2026 15:05:51 -0700 Subject: [PATCH] Address review feedback for Parasail provider - Add provider_endpoints_support.json entry (fixes the code-quality provider-documentation check). - Expand supported OpenAI params (user, seed, parallel_tool_calls, stream_options, max_completion_tokens). - Make the provider-info test hermetic by patching get_secret_str instead of os.environ. --- litellm/llms/parasail/chat/transformation.py | 5 +++++ provider_endpoints_support.json | 18 ++++++++++++++++++ .../chat/test_parasail_chat_transformation.py | 8 +++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/litellm/llms/parasail/chat/transformation.py b/litellm/llms/parasail/chat/transformation.py index f5ea63eafa6..8da32e0b48f 100644 --- a/litellm/llms/parasail/chat/transformation.py +++ b/litellm/llms/parasail/chat/transformation.py @@ -40,10 +40,13 @@ class ParasailConfig(OpenAIGPTConfig): def get_supported_openai_params(self, model: str) -> list: return [ "max_tokens", + "max_completion_tokens", "n", "temperature", "top_p", + "seed", "stream", + "stream_options", "logprobs", "top_logprobs", "frequency_penalty", @@ -53,4 +56,6 @@ class ParasailConfig(OpenAIGPTConfig): "logit_bias", "tools", "tool_choice", + "parallel_tool_calls", + "user", ] diff --git a/provider_endpoints_support.json b/provider_endpoints_support.json index 388752b032e..89df9c7d404 100644 --- a/provider_endpoints_support.json +++ b/provider_endpoints_support.json @@ -32,6 +32,24 @@ } }, "providers": { + "parasail": { + "display_name": "Parasail (`parasail`)", + "url": "https://docs.litellm.ai/docs/providers/parasail", + "endpoints": { + "chat_completions": true, + "messages": true, + "responses": true, + "embeddings": false, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": false, + "a2a": true, + "interactions": true + } + }, "a2a": { "display_name": "A2A (Agent-to-Agent) (`a2a`)", "url": "https://docs.litellm.ai/docs/providers/a2a", diff --git a/tests/test_litellm/llms/parasail/chat/test_parasail_chat_transformation.py b/tests/test_litellm/llms/parasail/chat/test_parasail_chat_transformation.py index 92a34b7be11..4d5b5a52e20 100644 --- a/tests/test_litellm/llms/parasail/chat/test_parasail_chat_transformation.py +++ b/tests/test_litellm/llms/parasail/chat/test_parasail_chat_transformation.py @@ -51,7 +51,13 @@ class TestParasailConfig: assert ParasailConfig.API_BASE_URL == "https://api.parasail.io/v1" def test_get_openai_compatible_provider_info(self): - with patch.dict(os.environ, {"PARASAIL_API_KEY": "sk-secret"}, clear=False): + def fake_secret(name, *args, **kwargs): + return "sk-secret" if name == "PARASAIL_API_KEY" else None + + with patch( + "litellm.llms.parasail.chat.transformation.get_secret_str", + side_effect=fake_secret, + ): api_base, api_key = self.config._get_openai_compatible_provider_info( api_base=None, api_key=None )