This commit is contained in:
KaiShaoCheng 2026-08-27 16:28:37 -05:00 • committed by GitHub
commit 8adfbcc8cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 131 additions and 0 deletions

View file

@ -829,6 +829,7 @@ openai_compatible_providers: Final[list] = [
"novita",
"meta_llama",
"publicai", # PublicAI - JSON-configured provider
"agione", # AGIone - JSON-configured provider
"synthetic", # Synthetic - JSON-configured provider
"tensormesh", # Tensormesh - JSON-configured provider
"apertis", # Apertis - JSON-configured provider

View file

@ -107,6 +107,12 @@
"api_key_env": "AIHUBMIX_API_KEY",
"api_base_env": "AIHUBMIX_API_BASE"
},
"agione": {
"base_url": "https://agione.pro/hyperone/xapi/api/v1",
"api_key_env": "AGIONE_API_KEY",
"api_base_env": "AGIONE_API_BASE",
"supported_endpoints": ["/v1/chat/completions", "/v1/messages", "/v1/responses"]
},
"crusoe": {
"base_url": "https://managed-inference-api-proxy.crusoecloud.com/v1",
"api_key_env": "CRUSOE_API_KEY",

View file

@ -66,6 +66,23 @@
"a2a": false
}
},
"agione": {
"display_name": "AGIone (`agione`)",
"url": "https://agione.pro",
"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": false
}
},
"aiml": {
"display_name": "AI/ML API (`aiml`)",
"url": "https://docs.litellm.ai/docs/providers/aiml",

View file

@ -3748,6 +3748,7 @@ class LlmProviders(str, Enum):
MODELSCOPE = "modelscope"
MOONSHOT = "moonshot"
PUBLICAI = "publicai"
AGIONE = "agione"
V0 = "v0"
MORPH = "morph"
LAMBDA_AI = "lambda_ai"

View file

@ -66,6 +66,23 @@
"a2a": false
}
},
"agione": {
"display_name": "AGIone (`agione`)",
"url": "https://agione.pro",
"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": false
}
},
"aiml": {
"display_name": "AI/ML API (`aiml`)",
"url": "https://docs.litellm.ai/docs/providers/aiml",

View file

@ -0,0 +1,89 @@
"""Tests for AGIone provider configuration and integration."""
import litellm
class TestAGIoneProviderConfig:
"""Test AGIone provider configuration."""
def test_agione_in_provider_list(self):
from litellm import LlmProviders
assert hasattr(LlmProviders, "AGIONE")
assert LlmProviders.AGIONE.value == "agione"
assert "agione" in litellm.provider_list
def test_agione_json_config_exists(self):
from litellm.llms.openai_like.json_loader import JSONProviderRegistry
assert JSONProviderRegistry.exists("agione")
agione = JSONProviderRegistry.get("agione")
assert agione is not None
assert agione.base_url == "https://agione.pro/hyperone/xapi/api/v1"
assert agione.api_key_env == "AGIONE_API_KEY"
assert agione.api_base_env == "AGIONE_API_BASE"
assert agione.supported_endpoints == [
"/v1/chat/completions",
"/v1/messages",
"/v1/responses",
]
assert JSONProviderRegistry.supports_responses_api("agione") is True
def test_agione_responses_url(self):
from litellm.llms.openai_like.dynamic_config import create_responses_config_class
from litellm.llms.openai_like.json_loader import JSONProviderRegistry
agione = JSONProviderRegistry.get("agione")
assert agione is not None
config_cls = create_responses_config_class(agione)
config = config_cls()
assert config.get_complete_url(api_base=None, litellm_params={}) == "https://agione.pro/hyperone/xapi/api/v1/responses"
def test_agione_provider_resolution(self):
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
model, provider, api_key, api_base = get_llm_provider(
model="agione/deepseek/deepseek-v3.2/0000n",
custom_llm_provider=None,
api_base=None,
api_key=None,
)
assert model == "deepseek/deepseek-v3.2/0000n"
assert provider == "agione"
assert api_base == "https://agione.pro/hyperone/xapi/api/v1"
def test_agione_api_base_override(self):
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
model, provider, api_key, api_base = get_llm_provider(
model="agione/deepseek/deepseek-v3.2/0000n",
custom_llm_provider=None,
api_base="https://custom.example.com/v1",
api_key="test-key",
)
assert provider == "agione"
assert api_base == "https://custom.example.com/v1"
assert api_key == "test-key"
def test_agione_router_config(self):
from litellm import Router
router = Router(
model_list=[
{
"model_name": "agione-chat",
"litellm_params": {
"model": "agione/deepseek/deepseek-v3.2/0000n",
"api_key": "test-key",
},
}
]
)
assert len(router.model_list) == 1
assert router.model_list[0]["model_name"] == "agione-chat"