Merge pull request #78 from carlytwozero/fix/pass-api-key-to-aiagent
fix: pass api_key to AIAgent for non-Anthropic /anthropic providers
This commit is contained in:
@@ -931,8 +931,21 @@ def _handle_chat_sync(handler, body):
|
|||||||
with CHAT_LOCK:
|
with CHAT_LOCK:
|
||||||
from api.config import resolve_model_provider
|
from api.config import resolve_model_provider
|
||||||
_model, _provider, _base_url = resolve_model_provider(s.model)
|
_model, _provider, _base_url = resolve_model_provider(s.model)
|
||||||
|
# Resolve API key via Hermes runtime provider (matches gateway behaviour)
|
||||||
|
_api_key = None
|
||||||
|
try:
|
||||||
|
from hermes_cli.runtime_provider import resolve_runtime_provider
|
||||||
|
_rt = resolve_runtime_provider()
|
||||||
|
_api_key = _rt.get("api_key")
|
||||||
|
# Also use runtime provider/base_url if the webui config didn't resolve them
|
||||||
|
if not _provider:
|
||||||
|
_provider = _rt.get("provider")
|
||||||
|
if not _base_url:
|
||||||
|
_base_url = _rt.get("base_url")
|
||||||
|
except Exception as _e:
|
||||||
|
print(f"[webui] WARNING: resolve_runtime_provider failed: {_e}", flush=True)
|
||||||
agent = AIAgent(model=_model, provider=_provider, base_url=_base_url,
|
agent = AIAgent(model=_model, provider=_provider, base_url=_base_url,
|
||||||
platform='cli', quiet_mode=True,
|
api_key=_api_key, platform='cli', quiet_mode=True,
|
||||||
enabled_toolsets=CLI_TOOLSETS, session_id=s.session_id)
|
enabled_toolsets=CLI_TOOLSETS, session_id=s.session_id)
|
||||||
workspace_ctx = f"[Workspace: {s.workspace}]\n"
|
workspace_ctx = f"[Workspace: {s.workspace}]\n"
|
||||||
workspace_system_msg = (
|
workspace_system_msg = (
|
||||||
|
|||||||
@@ -135,6 +135,19 @@ def _run_agent_streaming(session_id, msg_text, model, workspace, stream_id, atta
|
|||||||
raise ImportError("AIAgent not available -- check that hermes-agent is on sys.path")
|
raise ImportError("AIAgent not available -- check that hermes-agent is on sys.path")
|
||||||
resolved_model, resolved_provider, resolved_base_url = resolve_model_provider(model)
|
resolved_model, resolved_provider, resolved_base_url = resolve_model_provider(model)
|
||||||
|
|
||||||
|
# Resolve API key via Hermes runtime provider (matches gateway behaviour)
|
||||||
|
resolved_api_key = None
|
||||||
|
try:
|
||||||
|
from hermes_cli.runtime_provider import resolve_runtime_provider
|
||||||
|
_rt = resolve_runtime_provider()
|
||||||
|
resolved_api_key = _rt.get("api_key")
|
||||||
|
if not resolved_provider:
|
||||||
|
resolved_provider = _rt.get("provider")
|
||||||
|
if not resolved_base_url:
|
||||||
|
resolved_base_url = _rt.get("base_url")
|
||||||
|
except Exception as _e:
|
||||||
|
print(f"[webui] WARNING: resolve_runtime_provider failed: {_e}", flush=True)
|
||||||
|
|
||||||
# Read per-profile config at call time (not module-level snapshot)
|
# Read per-profile config at call time (not module-level snapshot)
|
||||||
from api.config import get_config as _get_config
|
from api.config import get_config as _get_config
|
||||||
_cfg = _get_config()
|
_cfg = _get_config()
|
||||||
@@ -162,6 +175,7 @@ def _run_agent_streaming(session_id, msg_text, model, workspace, stream_id, atta
|
|||||||
model=resolved_model,
|
model=resolved_model,
|
||||||
provider=resolved_provider,
|
provider=resolved_provider,
|
||||||
base_url=resolved_base_url,
|
base_url=resolved_base_url,
|
||||||
|
api_key=resolved_api_key,
|
||||||
platform='cli',
|
platform='cli',
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
enabled_toolsets=_toolsets,
|
enabled_toolsets=_toolsets,
|
||||||
|
|||||||
Reference in New Issue
Block a user