From 666690c31cc415317cb981cae00b5664bff40f38 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Mon, 10 Mar 2025 10:18:03 -0700 Subject: [PATCH 01/10] fix atext_completion --- litellm/main.py | 46 +++++++++++----------------------------------- 1 file changed, 11 insertions(+), 35 deletions(-) diff --git a/litellm/main.py b/litellm/main.py index 846a908a8e9..903e0e938b0 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -3900,42 +3900,18 @@ async def atext_completion( ctx = contextvars.copy_context() func_with_context = partial(ctx.run, func) - _, custom_llm_provider, _, _ = get_llm_provider( - model=model, api_base=kwargs.get("api_base", None) - ) - - if ( - custom_llm_provider == "openai" - or custom_llm_provider == "azure" - or custom_llm_provider == "azure_text" - or custom_llm_provider == "custom_openai" - or custom_llm_provider == "anyscale" - or custom_llm_provider == "mistral" - or custom_llm_provider == "openrouter" - or custom_llm_provider == "deepinfra" - or custom_llm_provider == "perplexity" - or custom_llm_provider == "groq" - or custom_llm_provider == "nvidia_nim" - or custom_llm_provider == "cerebras" - or custom_llm_provider == "sambanova" - or custom_llm_provider == "ai21_chat" - or custom_llm_provider == "ai21" - or custom_llm_provider == "volcengine" - or custom_llm_provider == "text-completion-codestral" - or custom_llm_provider == "deepseek" - or custom_llm_provider == "text-completion-openai" - or custom_llm_provider == "huggingface" - or custom_llm_provider == "ollama" - or custom_llm_provider == "vertex_ai" - or custom_llm_provider in litellm.openai_compatible_providers - ): # currently implemented aiohttp calls for just azure and openai, soon all. - # Await normally - response = await loop.run_in_executor(None, func_with_context) - if asyncio.iscoroutine(response): - response = await response + init_response = await loop.run_in_executor(None, func_with_context) + if isinstance(init_response, dict) or isinstance( + init_response, TextCompletionResponse + ): ## CACHING SCENARIO + if isinstance(init_response, dict): + response = TextCompletionResponse(**init_response) + response = init_response + elif asyncio.iscoroutine(init_response): + response = await init_response else: - # Call the synchronous function using run_in_executor - response = await loop.run_in_executor(None, func_with_context) + response = init_response # type: ignore + if ( kwargs.get("stream", False) is True or isinstance(response, TextCompletionStreamWrapper) From 6d537aec48274e8482fbd46389714bef92e22c41 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Mon, 10 Mar 2025 10:36:50 -0700 Subject: [PATCH 02/10] OpenAI_Text --- .../components/add_model/provider_specific_fields.tsx | 3 ++- .../src/components/provider_info_helpers.tsx | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx b/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx index b3da80c7155..365d75dbad6 100644 --- a/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx +++ b/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx @@ -99,7 +99,8 @@ const ProviderSpecificFields: React.FC = ({ {(selectedProviderEnum === Providers.Azure || selectedProviderEnum === Providers.Azure_AI_Studio || - selectedProviderEnum === Providers.OpenAI_Compatible + selectedProviderEnum === Providers.OpenAI_Compatible || + selectedProviderEnum === Providers.OpenAI_Text_Compatible ) && ( = { OpenAI: "openai", + OpenAI_Text: "text-completion-openai", Azure: "azure", Azure_AI_Studio: "azure_ai", Anthropic: "anthropic", @@ -37,6 +41,7 @@ export const provider_map: Record = { MistralAI: "mistral", Cohere: "cohere_chat", OpenAI_Compatible: "openai", + OpenAI_Text_Compatible: "text-completion-openai", Vertex_AI: "vertex_ai", Databricks: "databricks", xAI: "xai", @@ -53,6 +58,9 @@ export const provider_map: Record = { export const providerLogoMap: Record = { [Providers.OpenAI]: "https://artificialanalysis.ai/img/logos/openai_small.svg", + [Providers.OpenAI_Text]: "https://artificialanalysis.ai/img/logos/openai_small.svg", + [Providers.OpenAI_Text_Compatible]: "https://artificialanalysis.ai/img/logos/openai_small.svg", + [Providers.OpenAI_Compatible]: "https://artificialanalysis.ai/img/logos/openai_small.svg", [Providers.Azure]: "https://upload.wikimedia.org/wikipedia/commons/a/a8/Microsoft_Azure_Logo.svg", [Providers.Azure_AI_Studio]: "https://upload.wikimedia.org/wikipedia/commons/a/a8/Microsoft_Azure_Logo.svg", [Providers.Anthropic]: "https://artificialanalysis.ai/img/logos/anthropic_small.svg", @@ -61,7 +69,6 @@ export const providerLogoMap: Record = { [Providers.Groq]: "https://artificialanalysis.ai/img/logos/groq_small.png", [Providers.MistralAI]: "https://artificialanalysis.ai/img/logos/mistral_small.png", [Providers.Cohere]: "https://artificialanalysis.ai/img/logos/cohere_small.png", - [Providers.OpenAI_Compatible]: "https://upload.wikimedia.org/wikipedia/commons/4/4e/OpenAI_Logo.svg", [Providers.Vertex_AI]: "https://artificialanalysis.ai/img/logos/google_small.svg", [Providers.Databricks]: "https://artificialanalysis.ai/img/logos/databricks_small.png", [Providers.Ollama]: "https://artificialanalysis.ai/img/logos/ollama_small.svg", From 51f074682f420e11df5a468c998add1b230a0b4b Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Mon, 10 Mar 2025 10:40:48 -0700 Subject: [PATCH 03/10] show eu api base on openai + text --- .../src/components/add_model/provider_specific_fields.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx b/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx index 365d75dbad6..b7565b0494f 100644 --- a/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx +++ b/ui/litellm-dashboard/src/components/add_model/provider_specific_fields.tsx @@ -23,7 +23,7 @@ const ProviderSpecificFields: React.FC = ({ console.log(`type of selectedProviderEnum: ${typeof selectedProviderEnum}`); return ( <> - {selectedProviderEnum === Providers.OpenAI && ( + {selectedProviderEnum === Providers.OpenAI || selectedProviderEnum === Providers.OpenAI_Text && ( <> Date: Mon, 10 Mar 2025 12:20:37 -0700 Subject: [PATCH 04/10] fix linting error --- ui/litellm-dashboard/src/components/transform_request.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/litellm-dashboard/src/components/transform_request.tsx b/ui/litellm-dashboard/src/components/transform_request.tsx index 879132ef50b..5d405df78f9 100644 --- a/ui/litellm-dashboard/src/components/transform_request.tsx +++ b/ui/litellm-dashboard/src/components/transform_request.tsx @@ -156,7 +156,7 @@ ${formattedBody} }}>

Original Request

-

The request you would send to LiteLLM's `/chat/completions` endpoint.

+

The request you would send to LiteLLM's /chat/completions endpoint.