feat(providers): add OrcaRouter as a named gateway provider
Registers OrcaRouter (https://www.orcarouter.ai) as a built-in OpenAI-compatible gateway provider mirroring the OpenRouter wiring: registry spec (sk-orca- key prefix, default base URL), ProvidersConfig field, WebUI icon/brand + deferred model list, docs, and tests.
This commit is contained in:
@@ -3132,6 +3132,10 @@ async def test_settings_api_returns_safe_subset_and_updates_whitelist(
|
||||
assert providers["azure_openai"]["api_key_required"] is False # AAD auth supported; no static key required
|
||||
assert providers["openrouter"]["configured"] is False
|
||||
assert providers["openrouter"]["api_key_required"] is True
|
||||
assert providers["orcarouter"]["label"] == "OrcaRouter"
|
||||
assert providers["orcarouter"]["configured"] is False
|
||||
assert providers["orcarouter"]["api_key_required"] is True
|
||||
assert providers["orcarouter"]["default_api_base"] == "https://api.orcarouter.ai/v1"
|
||||
assert providers["skywork"]["label"] == "Skywork"
|
||||
assert providers["skywork"]["default_api_base"] == "https://api.apifree.ai/agent/v1"
|
||||
assert providers["ant_ling"]["label"] == "Ant Ling"
|
||||
|
||||
@@ -262,6 +262,7 @@ class ProvidersConfig(Base):
|
||||
anthropic: ProviderConfig = Field(default_factory=ProviderConfig)
|
||||
openai: ProviderConfig = Field(default_factory=ProviderConfig)
|
||||
openrouter: ProviderConfig = Field(default_factory=ProviderConfig)
|
||||
orcarouter: ProviderConfig = Field(default_factory=ProviderConfig) # OrcaRouter API gateway
|
||||
assemblyai: ProviderConfig = Field(default_factory=ProviderConfig) # AssemblyAI voice transcription
|
||||
huggingface: ProviderConfig = Field(default_factory=ProviderConfig)
|
||||
skywork: ProviderConfig = Field(default_factory=ProviderConfig) # Skywork / APIFree API gateway
|
||||
|
||||
@@ -199,6 +199,18 @@ PROVIDERS: tuple[ProviderSpec, ...] = (
|
||||
supports_prompt_caching=True,
|
||||
gateway_reasoning_style="reasoning_effort",
|
||||
),
|
||||
# OrcaRouter: global gateway, keys start with "sk-orca-"
|
||||
ProviderSpec(
|
||||
name="orcarouter",
|
||||
keywords=("orcarouter",),
|
||||
env_key="ORCAROUTER_API_KEY",
|
||||
display_name="OrcaRouter",
|
||||
backend="openai_compat",
|
||||
is_gateway=True,
|
||||
detect_by_key_prefix="sk-orca-",
|
||||
detect_by_base_keyword="orcarouter",
|
||||
default_api_base="https://api.orcarouter.ai/v1",
|
||||
),
|
||||
# Eden AI: OpenAI-compatible gateway. Models use the "provider/model"
|
||||
# naming scheme (e.g. "anthropic/claude-sonnet-4-5"); the full id is sent upstream.
|
||||
ProviderSpec(
|
||||
|
||||
Reference in New Issue
Block a user