fix: guard config.get() against YAML null values to prevent AttributeError (#3377)
dict.get(key, default) returns None — not the default — when the key IS present but explicitly set to null/~ in YAML. Calling .lower() on that raises AttributeError. Use (config.get(key) or fallback) so both missing keys and explicit nulls coalesce to the intended default. Files fixed: - tools/tts_tool.py — _get_provider() - tools/web_tools.py — _get_backend() - tools/mcp_tool.py — MCPServerTask auth config - trajectory_compressor.py — _detect_provider() and config loading Co-authored-by: dieutx <dangtc94@gmail.com>
This commit is contained in:
@@ -123,7 +123,7 @@ class CompressionConfig:
|
||||
# Summarization
|
||||
if 'summarization' in data:
|
||||
config.summarization_model = data['summarization'].get('model', config.summarization_model)
|
||||
config.base_url = data['summarization'].get('base_url', config.base_url)
|
||||
config.base_url = data['summarization'].get('base_url') or config.base_url
|
||||
config.api_key_env = data['summarization'].get('api_key_env', config.api_key_env)
|
||||
config.temperature = data['summarization'].get('temperature', config.temperature)
|
||||
config.max_retries = data['summarization'].get('max_retries', config.max_retries)
|
||||
@@ -386,7 +386,7 @@ class TrajectoryCompressor:
|
||||
|
||||
def _detect_provider(self) -> str:
|
||||
"""Detect the provider name from the configured base_url."""
|
||||
url = self.config.base_url.lower()
|
||||
url = (self.config.base_url or "").lower()
|
||||
if "openrouter" in url:
|
||||
return "openrouter"
|
||||
if "nousresearch.com" in url:
|
||||
|
||||
Reference in New Issue
Block a user