diff --git a/ui/litellm-dashboard/public/assets/logos/anthropic.svg b/ui/litellm-dashboard/public/assets/logos/anthropic.svg
new file mode 100644
index 00000000000..a37f591fb76
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/anthropic.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/ui/litellm-dashboard/public/assets/logos/assemblyai_small.png b/ui/litellm-dashboard/public/assets/logos/assemblyai_small.png
new file mode 100644
index 00000000000..19eaf1a126d
Binary files /dev/null and b/ui/litellm-dashboard/public/assets/logos/assemblyai_small.png differ
diff --git a/ui/litellm-dashboard/public/assets/logos/aws.svg b/ui/litellm-dashboard/public/assets/logos/aws.svg
new file mode 100644
index 00000000000..53896fa05f4
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/aws.svg
@@ -0,0 +1,34 @@
+
+
+
diff --git a/ui/litellm-dashboard/public/assets/logos/bedrock.svg b/ui/litellm-dashboard/public/assets/logos/bedrock.svg
new file mode 100644
index 00000000000..e0f929a7a97
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/bedrock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/cerebras.svg b/ui/litellm-dashboard/public/assets/logos/cerebras.svg
new file mode 100644
index 00000000000..426f6430c23
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/cerebras.svg
@@ -0,0 +1,89 @@
+
+
+
diff --git a/ui/litellm-dashboard/public/assets/logos/cohere.svg b/ui/litellm-dashboard/public/assets/logos/cohere.svg
new file mode 100644
index 00000000000..cb1b2a5919e
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/cohere.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/databricks.svg b/ui/litellm-dashboard/public/assets/logos/databricks.svg
new file mode 100644
index 00000000000..cd079ceb224
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/databricks.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/deepseek.svg b/ui/litellm-dashboard/public/assets/logos/deepseek.svg
new file mode 100644
index 00000000000..c4754047da2
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/deepseek.svg
@@ -0,0 +1,25 @@
+
+
+
diff --git a/ui/litellm-dashboard/public/assets/logos/fireworks.svg b/ui/litellm-dashboard/public/assets/logos/fireworks.svg
new file mode 100644
index 00000000000..a23445cf94b
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/fireworks.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/google.svg b/ui/litellm-dashboard/public/assets/logos/google.svg
new file mode 100644
index 00000000000..7bc4a38ce7a
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/google.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/groq.svg b/ui/litellm-dashboard/public/assets/logos/groq.svg
new file mode 100644
index 00000000000..550316a7e0e
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/groq.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/microsoft_azure.svg b/ui/litellm-dashboard/public/assets/logos/microsoft_azure.svg
new file mode 100644
index 00000000000..cd96a7d3724
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/microsoft_azure.svg
@@ -0,0 +1,72 @@
+
+
+
+
diff --git a/ui/litellm-dashboard/public/assets/logos/mistral.svg b/ui/litellm-dashboard/public/assets/logos/mistral.svg
new file mode 100644
index 00000000000..8e03e244bf1
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/mistral.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/ollama.svg b/ui/litellm-dashboard/public/assets/logos/ollama.svg
new file mode 100644
index 00000000000..d7780867b53
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/ollama.svg
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/openai_small.svg b/ui/litellm-dashboard/public/assets/logos/openai_small.svg
new file mode 100644
index 00000000000..52dad8269ec
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/openai_small.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/openrouter.svg b/ui/litellm-dashboard/public/assets/logos/openrouter.svg
new file mode 100644
index 00000000000..c9952c11f6d
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/openrouter.svg
@@ -0,0 +1,39 @@
+
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/perplexity-ai.svg b/ui/litellm-dashboard/public/assets/logos/perplexity-ai.svg
new file mode 100644
index 00000000000..e828b6dfbf1
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/perplexity-ai.svg
@@ -0,0 +1,16 @@
+
+
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/sambanova.svg b/ui/litellm-dashboard/public/assets/logos/sambanova.svg
new file mode 100644
index 00000000000..fba90665e2f
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/sambanova.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/litellm-dashboard/public/assets/logos/togetherai.svg b/ui/litellm-dashboard/public/assets/logos/togetherai.svg
new file mode 100644
index 00000000000..18aa72fc2cf
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/togetherai.svg
@@ -0,0 +1,14 @@
+
diff --git a/ui/litellm-dashboard/public/assets/logos/xai.svg b/ui/litellm-dashboard/public/assets/logos/xai.svg
new file mode 100644
index 00000000000..9491b192fd5
--- /dev/null
+++ b/ui/litellm-dashboard/public/assets/logos/xai.svg
@@ -0,0 +1,28 @@
+
+
diff --git a/ui/litellm-dashboard/src/components/provider_info_helpers.tsx b/ui/litellm-dashboard/src/components/provider_info_helpers.tsx
index a0b2a9b30fb..4c2fb0e5b49 100644
--- a/ui/litellm-dashboard/src/components/provider_info_helpers.tsx
+++ b/ui/litellm-dashboard/src/components/provider_info_helpers.tsx
@@ -2,171 +2,172 @@ import OpenAI from "openai";
import React from "react";
export enum Providers {
- OpenAI = "OpenAI",
- OpenAI_Compatible = "OpenAI-Compatible Endpoints (Together AI, etc.)",
- OpenAI_Text = "OpenAI Text Completion",
- OpenAI_Text_Compatible = "OpenAI-Compatible Text Completion Models (Together AI, etc.)",
- Azure = "Azure",
- Azure_AI_Studio = "Azure AI Foundry (Studio)",
- Anthropic = "Anthropic",
- Vertex_AI = "Vertex AI (Anthropic, Gemini, etc.)",
- Google_AI_Studio = "Google AI Studio",
- Bedrock = "Amazon Bedrock",
- Groq = "Groq",
- MistralAI = "Mistral AI",
- Deepseek = "Deepseek",
- Cohere = "Cohere",
- Databricks = "Databricks",
- Ollama = "Ollama",
- xAI = "xAI",
- AssemblyAI = "AssemblyAI",
- Cerebras = "Cerebras",
- Sambanova = "Sambanova",
- Perplexity = "Perplexity",
- TogetherAI = "TogetherAI",
- Openrouter = "Openrouter",
- FireworksAI = "Fireworks AI"
+ OpenAI = "OpenAI",
+ OpenAI_Compatible = "OpenAI-Compatible Endpoints (Together AI, etc.)",
+ OpenAI_Text = "OpenAI Text Completion",
+ OpenAI_Text_Compatible = "OpenAI-Compatible Text Completion Models (Together AI, etc.)",
+ Azure = "Azure",
+ Azure_AI_Studio = "Azure AI Foundry (Studio)",
+ Anthropic = "Anthropic",
+ Vertex_AI = "Vertex AI (Anthropic, Gemini, etc.)",
+ Google_AI_Studio = "Google AI Studio",
+ Bedrock = "Amazon Bedrock",
+ Groq = "Groq",
+ MistralAI = "Mistral AI",
+ Deepseek = "Deepseek",
+ Cohere = "Cohere",
+ Databricks = "Databricks",
+ Ollama = "Ollama",
+ xAI = "xAI",
+ AssemblyAI = "AssemblyAI",
+ Cerebras = "Cerebras",
+ Sambanova = "Sambanova",
+ Perplexity = "Perplexity",
+ TogetherAI = "TogetherAI",
+ Openrouter = "Openrouter",
+ FireworksAI = "Fireworks AI"
+
+}
- }
-
export const provider_map: Record = {
- OpenAI: "openai",
- OpenAI_Text: "text-completion-openai",
- Azure: "azure",
- Azure_AI_Studio: "azure_ai",
- Anthropic: "anthropic",
- Google_AI_Studio: "gemini",
- Bedrock: "bedrock",
- Groq: "groq",
- MistralAI: "mistral",
- Cohere: "cohere_chat",
- OpenAI_Compatible: "openai",
- OpenAI_Text_Compatible: "text-completion-openai",
- Vertex_AI: "vertex_ai",
- Databricks: "databricks",
- xAI: "xai",
- Deepseek: "deepseek",
- Ollama: "ollama",
- AssemblyAI: "assemblyai",
- Cerebras: "cerebras",
- Sambanova: "sambanova",
- Perplexity: "perplexity",
- TogetherAI: "togetherai",
- Openrouter: "openrouter",
- FireworksAI: "fireworks_ai"
+ OpenAI: "openai",
+ OpenAI_Text: "text-completion-openai",
+ Azure: "azure",
+ Azure_AI_Studio: "azure_ai",
+ Anthropic: "anthropic",
+ Google_AI_Studio: "gemini",
+ Bedrock: "bedrock",
+ Groq: "groq",
+ MistralAI: "mistral",
+ Cohere: "cohere_chat",
+ OpenAI_Compatible: "openai",
+ OpenAI_Text_Compatible: "text-completion-openai",
+ Vertex_AI: "vertex_ai",
+ Databricks: "databricks",
+ xAI: "xai",
+ Deepseek: "deepseek",
+ Ollama: "ollama",
+ AssemblyAI: "assemblyai",
+ Cerebras: "cerebras",
+ Sambanova: "sambanova",
+ Perplexity: "perplexity",
+ TogetherAI: "togetherai",
+ Openrouter: "openrouter",
+ FireworksAI: "fireworks_ai"
};
-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",
- [Providers.Google_AI_Studio]: "https://artificialanalysis.ai/img/logos/google_small.svg",
- [Providers.Bedrock]: "https://artificialanalysis.ai/img/logos/aws_small.png",
- [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.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",
- [Providers.xAI]: "https://artificialanalysis.ai/img/logos/xai_small.svg",
- [Providers.Deepseek]: "https://artificialanalysis.ai/img/logos/deepseek_small.jpg",
- [Providers.AssemblyAI]: "https://artificialanalysis.ai/img/logos/assemblyai_small.png",
- [Providers.Cerebras]: "https://artificialanalysis.ai/img/logos/cerebras_small.png",
- [Providers.Sambanova]: "https://artificialanalysis.ai/img/logos/sambanova_small.webp",
- [Providers.Perplexity]: "https://artificialanalysis.ai/img/logos/perplexity_small.png",
- [Providers.TogetherAI]: "https://artificialanalysis.ai/img/logos/togetherai_small.svg",
- [Providers.Openrouter]: "https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://openrouter.ai/chat&size=256",
- [Providers.FireworksAI]: "https://artificialanalysis.ai/img/logos/fireworks_small_revised.png"
+const asset_logos_folder = '/ui/assets/logos/';
+export const providerLogoMap: Record = {
+ [Providers.Anthropic]: `${asset_logos_folder}anthropic.svg`,
+ [Providers.AssemblyAI]: `${asset_logos_folder}assemblyai_small.png`,
+ [Providers.Azure]: `${asset_logos_folder}microsoft_azure.svg`,
+ [Providers.Azure_AI_Studio]: `${asset_logos_folder}microsoft_azure.svg`,
+ [Providers.Bedrock]: `${asset_logos_folder}bedrock.svg`,
+ [Providers.Cerebras]: `${asset_logos_folder}cerebras.svg`,
+ [Providers.Cohere]: `${asset_logos_folder}cohere.svg`,
+ [Providers.Databricks]: `${asset_logos_folder}databricks.svg`,
+ [Providers.Deepseek]: `${asset_logos_folder}deepseek.svg`,
+ [Providers.FireworksAI]: `${asset_logos_folder}fireworks.svg`,
+ [Providers.Groq]: `${asset_logos_folder}groq.svg`,
+ [Providers.Google_AI_Studio]: `${asset_logos_folder}google.svg`,
+ [Providers.MistralAI]: `${asset_logos_folder}mistral.svg`,
+ [Providers.Ollama]: `${asset_logos_folder}ollama.svg`,
+ [Providers.OpenAI]: `${asset_logos_folder}openai_small.svg`,
+ [Providers.OpenAI_Text]: `${asset_logos_folder}openai_small.svg`,
+ [Providers.OpenAI_Text_Compatible]: `${asset_logos_folder}openai_small.svg`,
+ [Providers.OpenAI_Compatible]: `${asset_logos_folder}openai_small.svg`,
+ [Providers.Openrouter]: `${asset_logos_folder}openrouter.svg`,
+ [Providers.Perplexity]: `${asset_logos_folder}perplexity-ai.svg`,
+ [Providers.Sambanova]: `${asset_logos_folder}sambanova.svg`,
+ [Providers.TogetherAI]: `${asset_logos_folder}togetherai.svg`,
+ [Providers.Vertex_AI]: `${asset_logos_folder}google.svg`,
+ [Providers.xAI]: `${asset_logos_folder}xai.svg`
};
export const getProviderLogoAndName = (providerValue: string): { logo: string, displayName: string } => {
- if (!providerValue) {
- return { logo: "", displayName: "-" };
- }
-
- // Handle special case for "gemini" provider value
- if (providerValue.toLowerCase() === "gemini") {
- const displayName = Providers.Google_AI_Studio;
- const logo = providerLogoMap[displayName];
- return { logo, displayName };
- }
-
- // Find the enum key by matching provider_map values
- const enumKey = Object.keys(provider_map).find(
- key => provider_map[key].toLowerCase() === providerValue.toLowerCase()
- );
-
- if (!enumKey) {
- return { logo: "", displayName: providerValue };
- }
-
- // Get the display name from Providers enum and logo from map
- const displayName = Providers[enumKey as keyof typeof Providers];
- const logo = providerLogoMap[displayName as keyof typeof providerLogoMap];
+ if (!providerValue) {
+ return { logo: "", displayName: "-" };
+ }
+ // Handle special case for "gemini" provider value
+ if (providerValue.toLowerCase() === "gemini") {
+ const displayName = Providers.Google_AI_Studio;
+ const logo = providerLogoMap[displayName];
return { logo, displayName };
+ }
+
+ // Find the enum key by matching provider_map values
+ const enumKey = Object.keys(provider_map).find(
+ key => provider_map[key].toLowerCase() === providerValue.toLowerCase()
+ );
+
+ if (!enumKey) {
+ return { logo: "", displayName: providerValue };
+ }
+
+ // Get the display name from Providers enum and logo from map
+ const displayName = Providers[enumKey as keyof typeof Providers];
+ const logo = providerLogoMap[displayName as keyof typeof providerLogoMap];
+
+ return { logo, displayName };
};
export const getPlaceholder = (selectedProvider: string): string => {
- if (selectedProvider === Providers.Vertex_AI) {
- return "gemini-pro";
- } else if (selectedProvider == Providers.Anthropic) {
- return "claude-3-opus";
- } else if (selectedProvider == Providers.Bedrock) {
- return "claude-3-opus";
- } else if (selectedProvider == Providers.Google_AI_Studio) {
- return "gemini-pro";
- } else if (selectedProvider == Providers.Azure_AI_Studio) {
- return "azure_ai/command-r-plus";
- } else if (selectedProvider == Providers.Azure) {
- return "azure/my-deployment";
- } else {
- return "gpt-3.5-turbo";
- }
- };
+ if (selectedProvider === Providers.Vertex_AI) {
+ return "gemini-pro";
+ } else if (selectedProvider == Providers.Anthropic) {
+ return "claude-3-opus";
+ } else if (selectedProvider == Providers.Bedrock) {
+ return "claude-3-opus";
+ } else if (selectedProvider == Providers.Google_AI_Studio) {
+ return "gemini-pro";
+ } else if (selectedProvider == Providers.Azure_AI_Studio) {
+ return "azure_ai/command-r-plus";
+ } else if (selectedProvider == Providers.Azure) {
+ return "azure/my-deployment";
+ } else {
+ return "gpt-3.5-turbo";
+ }
+};
- export const getProviderModels = (provider: Providers, modelMap: any): Array => {
- let providerKey = provider;
- console.log(`Provider key: ${providerKey}`);
- let custom_llm_provider = provider_map[providerKey];
- console.log(`Provider mapped to: ${custom_llm_provider}`);
-
- let providerModels: Array = [];
-
- if (providerKey && typeof modelMap === "object") {
+export const getProviderModels = (provider: Providers, modelMap: any): Array => {
+ let providerKey = provider;
+ console.log(`Provider key: ${providerKey}`);
+ let custom_llm_provider = provider_map[providerKey];
+ console.log(`Provider mapped to: ${custom_llm_provider}`);
+
+ let providerModels: Array = [];
+
+ if (providerKey && typeof modelMap === "object") {
+ Object.entries(modelMap).forEach(([key, value]) => {
+ if (
+ value !== null &&
+ typeof value === "object" &&
+ "litellm_provider" in (value as object) &&
+ ((value as any)["litellm_provider"] === custom_llm_provider ||
+ (value as any)["litellm_provider"].includes(custom_llm_provider))
+ ) {
+ providerModels.push(key);
+ }
+ });
+
+ // Special case for cohere_chat
+ // we need both cohere_chat and cohere models to show on dropdown
+ if (providerKey == Providers.Cohere) {
+ console.log("Adding cohere chat models");
Object.entries(modelMap).forEach(([key, value]) => {
if (
value !== null &&
typeof value === "object" &&
"litellm_provider" in (value as object) &&
- ((value as any)["litellm_provider"] === custom_llm_provider ||
- (value as any)["litellm_provider"].includes(custom_llm_provider))
+ ((value as any)["litellm_provider"] === "cohere")
) {
providerModels.push(key);
}
});
-
- // Special case for cohere_chat
- // we need both cohere_chat and cohere models to show on dropdown
- if (providerKey == Providers.Cohere) {
- console.log("Adding cohere chat models");
- Object.entries(modelMap).forEach(([key, value]) => {
- if (
- value !== null &&
- typeof value === "object" &&
- "litellm_provider" in (value as object) &&
- ((value as any)["litellm_provider"] === "cohere")
- ) {
- providerModels.push(key);
- }
- });
- }
}
-
- return providerModels;
- };
+ }
+
+ return providerModels;
+};
diff --git a/ui/litellm-dashboard/src/global.d.ts b/ui/litellm-dashboard/src/global.d.ts
new file mode 100644
index 00000000000..cdb2b1a9a23
--- /dev/null
+++ b/ui/litellm-dashboard/src/global.d.ts
@@ -0,0 +1,4 @@
+declare module '*.svg' {
+ const content: string;
+ export default content;
+}