This commit is contained in:
Jacopo 2026-06-11 09:26:31 +02:00 • committed by GitHub
commit ee1321f7b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 702 additions and 1 deletions

View file

@ -789,6 +789,7 @@ openai_compatible_endpoints: List = [
"https://ai-gateway.vercel.sh/v1",
"https://api.inference.wandb.ai/v1",
"https://api.clarifai.com/v2/ext/openai/v1",
"https://gateway.uomi.ai/v1",
]
@ -832,6 +833,7 @@ openai_compatible_providers: List = [
"poe", # Poe - JSON-configured provider
"chutes", # Chutes - JSON-configured provider
"parasail", # Parasail - JSON-configured provider
"uomi", # UOMI - JSON-configured provider
"featherless_ai",
"nscale",
"nebius",
@ -873,6 +875,7 @@ openai_text_completion_compatible_providers: List = (
"lambda_ai",
"hyperbolic",
"wandb",
"uomi",
]
)
_openai_like_providers: List = [

View file

@ -385,6 +385,9 @@ def get_llm_provider( # noqa: PLR0915
elif endpoint == "https://api.inference.wandb.ai/v1":
custom_llm_provider = "wandb"
dynamic_api_key = get_secret_str("WANDB_API_KEY")
elif endpoint == "https://gateway.uomi.ai/v1":
custom_llm_provider = "uomi"
dynamic_api_key = get_secret_str("UOMI_API_KEY")
if api_base is not None and not isinstance(api_base, str):
raise Exception(

View file

@ -141,5 +141,13 @@
"special_handling": {
"force_store_false": true
}
},
"uomi": {
"base_url": "https://gateway.uomi.ai/v1",
"api_key_env": "UOMI_API_KEY",
"api_base_env": "UOMI_API_BASE",
"param_mappings": {
"max_completion_tokens": "max_tokens"
}
}
}

View file

@ -29876,6 +29876,279 @@
"supports_tool_choice": true,
"supports_reasoning": true
},
"uomi/deepseek/deepseek-chat-v3-0324": {
"input_cost_per_token": 2.69325e-7,
"litellm_provider": "uomi",
"max_input_tokens": 163840,
"max_output_tokens": 8192,
"max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.00000108675,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/deepseek/deepseek-v3.2": {
"input_cost_per_token": 2.772e-7,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.2588e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/deepseek/deepseek-v4-flash": {
"input_cost_per_token": 7.864e-8,
"litellm_provider": "uomi",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
"max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 1.5728e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/deepseek/deepseek-v4-pro": {
"input_cost_per_token": 0.000001535187,
"litellm_provider": "uomi",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
"max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000030625,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/google/gemma-4-26b-a4b-it": {
"input_cost_per_token": 9.975e-8,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 3.885e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/google/gemma-4-31B-it": {
"input_cost_per_token": 1.435e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 4.13e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/minimax/minimax-m2.5": {
"input_cost_per_token": 2.93563e-7,
"litellm_provider": "uomi",
"max_input_tokens": 204800,
"max_output_tokens": 8192,
"max_tokens": 204800,
"mode": "chat",
"output_cost_per_token": 0.0000013195,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/minimax/minimax-m2.7": {
"input_cost_per_token": 3.9375e-7,
"litellm_provider": "uomi",
"max_input_tokens": 204800,
"max_output_tokens": 8192,
"max_tokens": 204800,
"mode": "chat",
"output_cost_per_token": 0.000001575,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/mistralai/mistral-nemo": {
"input_cost_per_token": 2.8e-8,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8.4e-8,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/nvidia/nemotron-3-super-120b-a12b": {
"input_cost_per_token": 9.45e-8,
"litellm_provider": "uomi",
"max_input_tokens": 1000000,
"max_output_tokens": 8192,
"max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 4.725e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/openai/gpt-oss-120b": {
"input_cost_per_token": 5.25e-8,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.725e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3-235b-a22b-2507": {
"input_cost_per_token": 1.365e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 6.195e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3.5-397b-a17b": {
"input_cost_per_token": 5.355e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000003507,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3.6-27b": {
"input_cost_per_token": 2.3120000000000003e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000192,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3.6-35b-a3b": {
"input_cost_per_token": 1.1200000000000002e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 8e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/xiaomi/mimo-v2-flash": {
"input_cost_per_token": 1.05e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 3.15e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/xiaomi/mimo-v2.5": {
"input_cost_per_token": 1.47e-7,
"litellm_provider": "uomi",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
"max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 2.94e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-4.5-air": {
"input_cost_per_token": 1.6275e-7,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 9.835e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-4.7": {
"input_cost_per_token": 5.145e-7,
"litellm_provider": "uomi",
"max_input_tokens": 202752,
"max_output_tokens": 8192,
"max_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.000002134125,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-5": {
"input_cost_per_token": 9.38437e-7,
"litellm_provider": "uomi",
"max_input_tokens": 202752,
"max_output_tokens": 8192,
"max_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.000002888812,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-5.1": {
"input_cost_per_token": 0.000001379318,
"litellm_provider": "uomi",
"max_input_tokens": 202752,
"max_output_tokens": 8192,
"max_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.000004373727,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"qwen.qwen3-coder-480b-a35b-v1:0": {
"input_cost_per_token": 2.2e-07,
"litellm_provider": "bedrock_converse",
@ -42131,4 +42404,4 @@
"supports_reasoning": true,
"source": "https://serverless.tensormesh.ai/v1/models/openrouter"
}
}
}

View file

@ -1818,6 +1818,23 @@
"interactions": true
}
},
"uomi": {
"display_name": "UOMI (`uomi`)",
"url": "https://docs.litellm.ai/docs/providers/uomi",
"endpoints": {
"chat_completions": true,
"messages": false,
"responses": false,
"embeddings": false,
"image_generations": false,
"audio_transcriptions": false,
"audio_speech": false,
"moderations": false,
"batches": false,
"rerank": false,
"a2a": false
}
},
"predibase": {
"display_name": "Predibase (`predibase`)",
"url": "https://docs.litellm.ai/docs/providers/predibase",

View file

@ -3409,6 +3409,7 @@ class LlmProviders(str, Enum):
CHUTES = "chutes"
NEOSANTARA = "neosantara"
PARASAIL = "parasail"
UOMI = "uomi"
XIAOMI_MIMO = "xiaomi_mimo"
TENSORMESH = "tensormesh"
LITELLM_AGENT = "litellm_agent"

View file

@ -29876,6 +29876,279 @@
"supports_tool_choice": true,
"supports_reasoning": true
},
"uomi/deepseek/deepseek-chat-v3-0324": {
"input_cost_per_token": 2.69325e-7,
"litellm_provider": "uomi",
"max_input_tokens": 163840,
"max_output_tokens": 8192,
"max_tokens": 163840,
"mode": "chat",
"output_cost_per_token": 0.00000108675,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/deepseek/deepseek-v3.2": {
"input_cost_per_token": 2.772e-7,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.2588e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/deepseek/deepseek-v4-flash": {
"input_cost_per_token": 7.864e-8,
"litellm_provider": "uomi",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
"max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 1.5728e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/deepseek/deepseek-v4-pro": {
"input_cost_per_token": 0.000001535187,
"litellm_provider": "uomi",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
"max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 0.0000030625,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/google/gemma-4-26b-a4b-it": {
"input_cost_per_token": 9.975e-8,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 3.885e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/google/gemma-4-31B-it": {
"input_cost_per_token": 1.435e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 4.13e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/minimax/minimax-m2.5": {
"input_cost_per_token": 2.93563e-7,
"litellm_provider": "uomi",
"max_input_tokens": 204800,
"max_output_tokens": 8192,
"max_tokens": 204800,
"mode": "chat",
"output_cost_per_token": 0.0000013195,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/minimax/minimax-m2.7": {
"input_cost_per_token": 3.9375e-7,
"litellm_provider": "uomi",
"max_input_tokens": 204800,
"max_output_tokens": 8192,
"max_tokens": 204800,
"mode": "chat",
"output_cost_per_token": 0.000001575,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/mistralai/mistral-nemo": {
"input_cost_per_token": 2.8e-8,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 8.4e-8,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/nvidia/nemotron-3-super-120b-a12b": {
"input_cost_per_token": 9.45e-8,
"litellm_provider": "uomi",
"max_input_tokens": 1000000,
"max_output_tokens": 8192,
"max_tokens": 1000000,
"mode": "chat",
"output_cost_per_token": 4.725e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/openai/gpt-oss-120b": {
"input_cost_per_token": 5.25e-8,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 4.725e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3-235b-a22b-2507": {
"input_cost_per_token": 1.365e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 6.195e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3.5-397b-a17b": {
"input_cost_per_token": 5.355e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.000003507,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3.6-27b": {
"input_cost_per_token": 2.3120000000000003e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 0.00000192,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/qwen/qwen3.6-35b-a3b": {
"input_cost_per_token": 1.1200000000000002e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 8e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/xiaomi/mimo-v2-flash": {
"input_cost_per_token": 1.05e-7,
"litellm_provider": "uomi",
"max_input_tokens": 262144,
"max_output_tokens": 8192,
"max_tokens": 262144,
"mode": "chat",
"output_cost_per_token": 3.15e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/xiaomi/mimo-v2.5": {
"input_cost_per_token": 1.47e-7,
"litellm_provider": "uomi",
"max_input_tokens": 1048576,
"max_output_tokens": 8192,
"max_tokens": 1048576,
"mode": "chat",
"output_cost_per_token": 2.94e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-4.5-air": {
"input_cost_per_token": 1.6275e-7,
"litellm_provider": "uomi",
"max_input_tokens": 131072,
"max_output_tokens": 8192,
"max_tokens": 131072,
"mode": "chat",
"output_cost_per_token": 9.835e-7,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-4.7": {
"input_cost_per_token": 5.145e-7,
"litellm_provider": "uomi",
"max_input_tokens": 202752,
"max_output_tokens": 8192,
"max_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.000002134125,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-5": {
"input_cost_per_token": 9.38437e-7,
"litellm_provider": "uomi",
"max_input_tokens": 202752,
"max_output_tokens": 8192,
"max_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.000002888812,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"uomi/z-ai/glm-5.1": {
"input_cost_per_token": 0.000001379318,
"litellm_provider": "uomi",
"max_input_tokens": 202752,
"max_output_tokens": 8192,
"max_tokens": 202752,
"mode": "chat",
"output_cost_per_token": 0.000004373727,
"source": "https://gateway.uomi.ai/v1/models",
"supports_function_calling": false,
"supports_system_messages": true,
"supports_tool_choice": false
},
"qwen.qwen3-coder-480b-a35b-v1:0": {
"input_cost_per_token": 2.2e-07,
"litellm_provider": "bedrock_converse",

View file

@ -1922,6 +1922,23 @@
"interactions": true
}
},
"uomi": {
"display_name": "UOMI (`uomi`)",
"url": "https://docs.litellm.ai/docs/providers/uomi",
"endpoints": {
"chat_completions": true,
"messages": false,
"responses": false,
"embeddings": false,
"image_generations": false,
"audio_transcriptions": false,
"audio_speech": false,
"moderations": false,
"batches": false,
"rerank": false,
"a2a": false
}
},
"predibase": {
"display_name": "Predibase (`predibase`)",
"url": "https://docs.litellm.ai/docs/providers/predibase",

View file

@ -0,0 +1,106 @@
import json
import os
from pathlib import Path
from unittest.mock import patch
UOMI_API_BASE = "https://gateway.uomi.ai/v1"
UOMI_MODEL = "deepseek/deepseek-v4-flash"
def test_uomi_json_registry():
import litellm
from litellm.llms.openai_like.json_loader import JSONProviderRegistry
assert litellm.LlmProviders.UOMI.value == "uomi"
assert litellm.LlmProviders("uomi") == litellm.LlmProviders.UOMI
assert JSONProviderRegistry.exists("uomi")
config = JSONProviderRegistry.get("uomi")
assert config is not None
assert config.base_url == UOMI_API_BASE
assert config.api_key_env == "UOMI_API_KEY"
assert config.api_base_env == "UOMI_API_BASE"
assert config.param_mappings.get("max_completion_tokens") == "max_tokens"
def test_uomi_listed_in_openai_compatible_providers():
from litellm.constants import (
openai_compatible_providers,
openai_text_completion_compatible_providers,
)
assert "uomi" in openai_compatible_providers
assert "uomi" in openai_text_completion_compatible_providers
def test_uomi_dynamic_config_env_vars():
from litellm.llms.openai_like.dynamic_config import create_config_class
from litellm.llms.openai_like.json_loader import JSONProviderRegistry
config = create_config_class(JSONProviderRegistry.get("uomi"))()
with patch.dict(
os.environ,
{
"UOMI_API_KEY": "test-key",
"UOMI_API_BASE": "https://custom.uomi.test/v1",
},
):
api_base, api_key = config._get_openai_compatible_provider_info(None, None)
assert api_base == "https://custom.uomi.test/v1"
assert api_key == "test-key"
def test_uomi_provider_detection_by_prefix():
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
model, provider, _, api_base = get_llm_provider(f"uomi/{UOMI_MODEL}")
assert model == UOMI_MODEL
assert provider == "uomi"
assert api_base == UOMI_API_BASE
def test_uomi_provider_detection_by_api_base():
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
model, provider, _, api_base = get_llm_provider(
model="custom-uomi-model",
api_base=UOMI_API_BASE,
)
assert model == "custom-uomi-model"
assert provider == "uomi"
assert api_base == UOMI_API_BASE
def test_uomi_chat_complete_url():
from litellm.llms.openai_like.dynamic_config import create_config_class
from litellm.llms.openai_like.json_loader import JSONProviderRegistry
config = create_config_class(JSONProviderRegistry.get("uomi"))()
assert (
config.get_complete_url(
api_base=None,
api_key=None,
model=UOMI_MODEL,
optional_params={},
litellm_params={},
)
== f"{UOMI_API_BASE}/chat/completions"
)
def test_uomi_model_info_contains_catalog_pricing():
repo_root = Path(__file__).parents[4]
model_prices_path = repo_root / "model_prices_and_context_window.json"
model_prices = json.loads(model_prices_path.read_text())
model_info = model_prices[f"uomi/{UOMI_MODEL}"]
assert model_info["litellm_provider"] == "uomi"
assert model_info["max_input_tokens"] == 1048576
assert model_info["max_output_tokens"] == 8192
assert model_info["input_cost_per_token"] == 7.864e-8
assert model_info["output_cost_per_token"] == 1.5728e-7