fix(llms): preserve reasoning fields in base-to-provider config conversion (#5638)

This commit is contained in:
Yash Singh
2026-06-23 16:27:43 +05:30
committed by GitHub
parent 15a930dac2
commit 87bd2d91e0
2 changed files with 62 additions and 0 deletions
+9
View File
@@ -1,4 +1,5 @@
import importlib
import inspect
from typing import Dict, Optional, Union
from mem0.configs.embeddings.base import BaseEmbedderConfig
@@ -102,6 +103,14 @@ class LlmFactory:
"vision_details": config.vision_details,
"http_client_proxies": config.http_client_proxies,
}
# Only forward reasoning fields to provider configs that accept them
# (explicitly or via **kwargs); others would raise on unexpected kwargs.
params = inspect.signature(config_class).parameters
accepts_kwargs = any(p.kind == p.VAR_KEYWORD for p in params.values())
if accepts_kwargs or "reasoning_effort" in params:
config_dict["reasoning_effort"] = config.reasoning_effort
if accepts_kwargs or "is_reasoning_model" in params:
config_dict["is_reasoning_model"] = config.is_reasoning_model
config_dict.update(kwargs)
config = config_class(**config_dict)
else: