After #1675 removed ANTHROPIC_BASE_URL env var support, the Anthropic provider base URL was hardcoded to https://api.anthropic.com. Now reads model.base_url from config.yaml as an override, falling back to the default when not set. Also applies to the auxiliary client. Cherry-picked from PR #1949 by @rivercrab26. Co-authored-by: rivercrab26 <rivercrab26@users.noreply.github.com>
This commit is contained in:
parent
e648863d52
commit
67d707e851
2 changed files with 21 additions and 4 deletions
|
|
@ -654,10 +654,23 @@ def _try_anthropic() -> Tuple[Optional[Any], Optional[str]]:
|
||||||
if not token:
|
if not token:
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
|
# Allow base URL override from config.yaml model.base_url
|
||||||
|
base_url = _ANTHROPIC_DEFAULT_BASE_URL
|
||||||
|
try:
|
||||||
|
from hermes_cli.config import load_config
|
||||||
|
cfg = load_config()
|
||||||
|
model_cfg = cfg.get("model")
|
||||||
|
if isinstance(model_cfg, dict):
|
||||||
|
cfg_base_url = (model_cfg.get("base_url") or "").strip().rstrip("/")
|
||||||
|
if cfg_base_url:
|
||||||
|
base_url = cfg_base_url
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
model = _API_KEY_PROVIDER_AUX_MODELS.get("anthropic", "claude-haiku-4-5-20251001")
|
model = _API_KEY_PROVIDER_AUX_MODELS.get("anthropic", "claude-haiku-4-5-20251001")
|
||||||
logger.debug("Auxiliary client: Anthropic native (%s)", model)
|
logger.debug("Auxiliary client: Anthropic native (%s) at %s", model, base_url)
|
||||||
real_client = build_anthropic_client(token, _ANTHROPIC_DEFAULT_BASE_URL)
|
real_client = build_anthropic_client(token, base_url)
|
||||||
return AnthropicAuxiliaryClient(real_client, model, token, _ANTHROPIC_DEFAULT_BASE_URL), model
|
return AnthropicAuxiliaryClient(real_client, model, token, base_url), model
|
||||||
|
|
||||||
|
|
||||||
def _resolve_forced_provider(forced: str) -> Tuple[Optional[OpenAI], Optional[str]]:
|
def _resolve_forced_provider(forced: str) -> Tuple[Optional[OpenAI], Optional[str]]:
|
||||||
|
|
|
||||||
|
|
@ -313,10 +313,14 @@ def resolve_runtime_provider(
|
||||||
"No Anthropic credentials found. Set ANTHROPIC_TOKEN or ANTHROPIC_API_KEY, "
|
"No Anthropic credentials found. Set ANTHROPIC_TOKEN or ANTHROPIC_API_KEY, "
|
||||||
"run 'claude setup-token', or authenticate with 'claude /login'."
|
"run 'claude setup-token', or authenticate with 'claude /login'."
|
||||||
)
|
)
|
||||||
|
# Allow base URL override from config.yaml model.base_url
|
||||||
|
model_cfg = _get_model_config()
|
||||||
|
cfg_base_url = (model_cfg.get("base_url") or "").strip().rstrip("/")
|
||||||
|
base_url = cfg_base_url or "https://api.anthropic.com"
|
||||||
return {
|
return {
|
||||||
"provider": "anthropic",
|
"provider": "anthropic",
|
||||||
"api_mode": "anthropic_messages",
|
"api_mode": "anthropic_messages",
|
||||||
"base_url": "https://api.anthropic.com",
|
"base_url": base_url,
|
||||||
"api_key": token,
|
"api_key": token,
|
||||||
"source": "env",
|
"source": "env",
|
||||||
"requested_provider": requested_provider,
|
"requested_provider": requested_provider,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue