From b95e95041e33303dd4ab61df96a8585a59dd8872 Mon Sep 17 00:00:00 2001 From: Bryan Qiu Date: Thu, 20 Mar 2025 21:05:56 -0700 Subject: [PATCH 1/7] start Signed-off-by: Bryan Qiu --- .../langchain/src/databricks_langchain/chat_models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/integrations/langchain/src/databricks_langchain/chat_models.py b/integrations/langchain/src/databricks_langchain/chat_models.py index c714686d..b005dcf8 100644 --- a/integrations/langchain/src/databricks_langchain/chat_models.py +++ b/integrations/langchain/src/databricks_langchain/chat_models.py @@ -214,7 +214,7 @@ class GetPopulation(BaseModel): """Name of Databricks Model Serving endpoint to query.""" target_uri: str = "databricks" """The target URI to use. Defaults to ``databricks``.""" - temperature: float = 0.0 + temperature: float """Sampling temperature. Higher values make the model more creative.""" n: int = 1 """The number of completion choices to generate.""" @@ -620,7 +620,7 @@ class AnswerWithJustification(BaseModel): if method == "function_calling": if schema is None: raise ValueError( - "schema must be specified when method is 'function_calling'. " "Received None." + "schema must be specified when method is 'function_calling'. Received None." ) tool_name = convert_to_openai_tool(schema)["function"]["name"] llm = self.bind_tools([schema], tool_choice=tool_name) @@ -641,7 +641,7 @@ class AnswerWithJustification(BaseModel): elif method == "json_schema": if schema is None: raise ValueError( - "schema must be specified when method is 'json_schema'. " "Received None." + "schema must be specified when method is 'json_schema'. Received None." ) response_format = { "type": "json_schema", From c269bf0bc72154088e34d043b4ed9c4c5238771b Mon Sep 17 00:00:00 2001 From: Bryan Qiu Date: Fri, 21 Mar 2025 13:22:07 -0700 Subject: [PATCH 2/7] . Signed-off-by: Bryan Qiu --- integrations/langchain/src/databricks_langchain/chat_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/langchain/src/databricks_langchain/chat_models.py b/integrations/langchain/src/databricks_langchain/chat_models.py index b005dcf8..36043f05 100644 --- a/integrations/langchain/src/databricks_langchain/chat_models.py +++ b/integrations/langchain/src/databricks_langchain/chat_models.py @@ -214,7 +214,7 @@ class GetPopulation(BaseModel): """Name of Databricks Model Serving endpoint to query.""" target_uri: str = "databricks" """The target URI to use. Defaults to ``databricks``.""" - temperature: float + temperature: Optional[float] = None """Sampling temperature. Higher values make the model more creative.""" n: int = 1 """The number of completion choices to generate.""" From d88f905b07712c6af50b0c9aa006a16bbc1553b6 Mon Sep 17 00:00:00 2001 From: Bryan Qiu Date: Fri, 21 Mar 2025 15:25:21 -0700 Subject: [PATCH 3/7] . Signed-off-by: Bryan Qiu --- integrations/langchain/src/databricks_langchain/chat_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/langchain/src/databricks_langchain/chat_models.py b/integrations/langchain/src/databricks_langchain/chat_models.py index 36043f05..8bc8429f 100644 --- a/integrations/langchain/src/databricks_langchain/chat_models.py +++ b/integrations/langchain/src/databricks_langchain/chat_models.py @@ -214,7 +214,7 @@ class GetPopulation(BaseModel): """Name of Databricks Model Serving endpoint to query.""" target_uri: str = "databricks" """The target URI to use. Defaults to ``databricks``.""" - temperature: Optional[float] = None + temperature: Optional[float] = 0.0 """Sampling temperature. Higher values make the model more creative.""" n: int = 1 """The number of completion choices to generate.""" From d06a790f9343bef97b14c64f8485fb090ede1142 Mon Sep 17 00:00:00 2001 From: Bryan Qiu Date: Fri, 21 Mar 2025 15:52:34 -0700 Subject: [PATCH 4/7] . Signed-off-by: Bryan Qiu --- .../src/databricks_langchain/chat_models.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/integrations/langchain/src/databricks_langchain/chat_models.py b/integrations/langchain/src/databricks_langchain/chat_models.py index 8bc8429f..e6a9640a 100644 --- a/integrations/langchain/src/databricks_langchain/chat_models.py +++ b/integrations/langchain/src/databricks_langchain/chat_models.py @@ -257,15 +257,19 @@ def __init__(self, **kwargs: Any): @property def _default_params(self) -> Dict[str, Any]: - params: Dict[str, Any] = { - "target_uri": self.target_uri, - "model": self.model, + exclude_if_none = { "temperature": self.temperature, "n": self.n, "stop": self.stop, "max_tokens": self.max_tokens, "extra_params": self.extra_params, } + + params = { + "model": self.model, + "target_uri": self.target_uri, + **{k: v for k, v in exclude_if_none.items() if v is not None}, + } return params def _generate( @@ -287,11 +291,12 @@ def _prepare_inputs( ) -> Dict[str, Any]: data: Dict[str, Any] = { "messages": [_convert_message_to_dict(msg) for msg in messages], - "temperature": self.temperature, "n": self.n, **self.extra_params, # type: ignore **kwargs, } + if self.temperature is not None: + data["temperature"] = self.temperature if stop := self.stop or stop: data["stop"] = stop if self.max_tokens is not None: From e4b38a7d4fcae3397380a7a64b14434f40af7690 Mon Sep 17 00:00:00 2001 From: Bryan Qiu Date: Fri, 21 Mar 2025 16:26:45 -0700 Subject: [PATCH 5/7] . Signed-off-by: Bryan Qiu --- integrations/langchain/src/databricks_langchain/chat_models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/integrations/langchain/src/databricks_langchain/chat_models.py b/integrations/langchain/src/databricks_langchain/chat_models.py index e6a9640a..845743ba 100644 --- a/integrations/langchain/src/databricks_langchain/chat_models.py +++ b/integrations/langchain/src/databricks_langchain/chat_models.py @@ -215,6 +215,7 @@ class GetPopulation(BaseModel): target_uri: str = "databricks" """The target URI to use. Defaults to ``databricks``.""" temperature: Optional[float] = 0.0 + # TODO: bbqiu log a deprecated warning when temperature is not set """Sampling temperature. Higher values make the model more creative.""" n: int = 1 """The number of completion choices to generate.""" From 674b479548cdab0327216936cb8e20fad4abb0bd Mon Sep 17 00:00:00 2001 From: Bryan Qiu Date: Mon, 24 Mar 2025 13:54:25 -0700 Subject: [PATCH 6/7] . Signed-off-by: Bryan Qiu --- .../langchain/src/databricks_langchain/chat_models.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/integrations/langchain/src/databricks_langchain/chat_models.py b/integrations/langchain/src/databricks_langchain/chat_models.py index 845743ba..dd902999 100644 --- a/integrations/langchain/src/databricks_langchain/chat_models.py +++ b/integrations/langchain/src/databricks_langchain/chat_models.py @@ -253,6 +253,14 @@ def endpoint(self, value: str) -> None: def __init__(self, **kwargs: Any): super().__init__(**kwargs) + if "temperature" not in kwargs: + warnings.warn( + "Currently, temperature defaults to 0.0 if not specified. " + "In the next release, temperature will need to be explicitly set. " + "Please update your code to specify a temperature value.", + DeprecationWarning, + stacklevel=2, + ) self.client = get_deployment_client(self.target_uri) self.extra_params = self.extra_params or {} From c546bcac8793f592caaf7f2846b43e30e5f64775 Mon Sep 17 00:00:00 2001 From: Bryan Qiu Date: Mon, 24 Mar 2025 14:01:05 -0700 Subject: [PATCH 7/7] remove todo Signed-off-by: Bryan Qiu --- integrations/langchain/src/databricks_langchain/chat_models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/integrations/langchain/src/databricks_langchain/chat_models.py b/integrations/langchain/src/databricks_langchain/chat_models.py index dd902999..8a28ddc1 100644 --- a/integrations/langchain/src/databricks_langchain/chat_models.py +++ b/integrations/langchain/src/databricks_langchain/chat_models.py @@ -215,7 +215,6 @@ class GetPopulation(BaseModel): target_uri: str = "databricks" """The target URI to use. Defaults to ``databricks``.""" temperature: Optional[float] = 0.0 - # TODO: bbqiu log a deprecated warning when temperature is not set """Sampling temperature. Higher values make the model more creative.""" n: int = 1 """The number of completion choices to generate."""