fix(core): accept int temperature in _get_ls_params for LangSmith tracing (#35302)

This commit is contained in:
Shivangi Sharma
2026-02-19 05:00:02 +05:30
committed by GitHub
parent 9c160e2368
commit 3686bcbd96
4 changed files with 22 additions and 4 deletions

View File

@@ -812,9 +812,11 @@ class BaseChatModel(BaseLanguageModel[AIMessage], ABC):
ls_params["ls_model_name"] = self.model_name
# temperature
if "temperature" in kwargs and isinstance(kwargs["temperature"], float):
if "temperature" in kwargs and isinstance(kwargs["temperature"], (int, float)):
ls_params["ls_temperature"] = kwargs["temperature"]
elif hasattr(self, "temperature") and isinstance(self.temperature, float):
elif hasattr(self, "temperature") and isinstance(
self.temperature, (int, float)
):
ls_params["ls_temperature"] = self.temperature
# max_tokens

View File

@@ -351,9 +351,11 @@ class BaseLLM(BaseLanguageModel[str], ABC):
ls_params["ls_model_name"] = self.model_name
# temperature
if "temperature" in kwargs and isinstance(kwargs["temperature"], float):
if "temperature" in kwargs and isinstance(kwargs["temperature"], (int, float)):
ls_params["ls_temperature"] = kwargs["temperature"]
elif hasattr(self, "temperature") and isinstance(self.temperature, float):
elif hasattr(self, "temperature") and isinstance(
self.temperature, (int, float)
):
ls_params["ls_temperature"] = self.temperature
# max_tokens

View File

@@ -1206,6 +1206,13 @@ def test_get_ls_params() -> None:
ls_params = llm._get_ls_params(temperature=0.2)
assert ls_params["ls_temperature"] == 0.2
# Test integer temperature values (regression test for issue #35300)
ls_params = llm._get_ls_params(temperature=0)
assert ls_params["ls_temperature"] == 0
ls_params = llm._get_ls_params(temperature=1)
assert ls_params["ls_temperature"] == 1
ls_params = llm._get_ls_params(max_tokens=2048)
assert ls_params["ls_max_tokens"] == 2048

View File

@@ -272,6 +272,13 @@ def test_get_ls_params() -> None:
ls_params = llm._get_ls_params(temperature=0.2)
assert ls_params["ls_temperature"] == 0.2
# Test integer temperature values (regression test for issue #35300)
ls_params = llm._get_ls_params(temperature=0)
assert ls_params["ls_temperature"] == 0
ls_params = llm._get_ls_params(temperature=1)
assert ls_params["ls_temperature"] == 1
ls_params = llm._get_ls_params(max_tokens=2048)
assert ls_params["ls_max_tokens"] == 2048