mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-26 06:01:49 +00:00
fix(doctor): skip /models health check for providers that don't support it
Xiaomi MiMo's /v1/models endpoint returns 401 even with a valid API key, causing hermes doctor to falsely report 'invalid API key'. Add a `supports_health_check` field to ProviderProfile (default True). Providers whose /models endpoint doesn't support auth verification can set it to False. The doctor's dynamic provider discovery now reads this field instead of hardcoding True. The xiaomi provider plugin sets supports_health_check=False.
This commit is contained in:
parent
a54d4b0e46
commit
0c233e70f8
3 changed files with 4 additions and 1 deletions
|
|
@ -287,7 +287,8 @@ def _build_apikey_providers_list() -> list:
|
||||||
(_pp.models_url or (_pp.base_url.rstrip("/") + "/models"))
|
(_pp.models_url or (_pp.base_url.rstrip("/") + "/models"))
|
||||||
if _pp.base_url else None
|
if _pp.base_url else None
|
||||||
)
|
)
|
||||||
_static.append((_label, _key_vars, _models_url, _base_var, True))
|
_hc = getattr(_pp, "supports_health_check", True)
|
||||||
|
_static.append((_label, _key_vars, _models_url, _base_var, _hc))
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
return _static
|
return _static
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ xiaomi = ProviderProfile(
|
||||||
aliases=("mimo", "xiaomi-mimo"),
|
aliases=("mimo", "xiaomi-mimo"),
|
||||||
env_vars=("XIAOMI_API_KEY",),
|
env_vars=("XIAOMI_API_KEY",),
|
||||||
base_url="https://api.xiaomimimo.com/v1",
|
base_url="https://api.xiaomimimo.com/v1",
|
||||||
|
supports_health_check=False, # /v1/models returns 401 even with valid key
|
||||||
)
|
)
|
||||||
|
|
||||||
register_provider(xiaomi)
|
register_provider(xiaomi)
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ class ProviderProfile:
|
||||||
base_url: str = ""
|
base_url: str = ""
|
||||||
models_url: str = "" # explicit models endpoint; falls back to {base_url}/models
|
models_url: str = "" # explicit models endpoint; falls back to {base_url}/models
|
||||||
auth_type: str = "api_key" # api_key|oauth_device_code|oauth_external|copilot|aws_sdk
|
auth_type: str = "api_key" # api_key|oauth_device_code|oauth_external|copilot|aws_sdk
|
||||||
|
supports_health_check: bool = True # False → doctor skips /models probe for this provider
|
||||||
|
|
||||||
# ── Model catalog ─────────────────────────────────────────
|
# ── Model catalog ─────────────────────────────────────────
|
||||||
# fallback_models: curated list shown in /model picker when live fetch fails.
|
# fallback_models: curated list shown in /model picker when live fetch fails.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue