pass function tool description for databricks provider

Signed-off-by: frankzye1 <frankzye@qq.com>
This commit is contained in:
frankzye1 2025-08-30 09:27:39 +08:00
parent fc62f75e04
commit 75a7b39700
3 changed files with 38 additions and 5 deletions

View file

@ -170,12 +170,17 @@ class DatabricksConfig(DatabricksBase, OpenAILikeChatConfig, AnthropicConfig):
if tool is None:
return None
kwags = {
"name":tool["name"],
"parameters":cast(dict, tool.get("input_schema") or {})
}
if tool.get("description"):
kwags["description"] = tool.get("description")
return DatabricksTool(
type="function",
function=DatabricksFunction(
name=tool["name"],
parameters=cast(dict, tool.get("input_schema") or {}),
),
function=DatabricksFunction(**kwags),
)
def _map_openai_to_dbrx_tool(self, model: str, tools: List) -> List[DatabricksTool]:

View file

@ -49,7 +49,7 @@ AllDatabricksContentValues = Union[str, List[AllDatabricksContentListValues]]
class DatabricksFunction(TypedDict, total=False):
name: Required[str]
description: dict
description: dict | str
parameters: dict
strict: bool

View file

@ -90,3 +90,31 @@ def test_transform_choices_without_signature():
thinking_block = choices[0].message.thinking_blocks[0]
assert thinking_block["type"] == "thinking"
assert thinking_block["thinking"] == "i'm thinking without signature."
def test_convert_anthropic_tool_to_databricks_tool_with_description():
config = DatabricksConfig()
anthropic_tool = {
"name": "test_tool",
"description": "test description",
"input_schema": {"type": "object", "properties": {"test": {"type": "string"}}}
}
databricks_tool = config.convert_anthropic_tool_to_databricks_tool(anthropic_tool)
assert databricks_tool is not None
assert databricks_tool["type"] == "function"
assert databricks_tool["function"]["description"] == "test description"
def test_convert_anthropic_tool_to_databricks_tool_without_description():
config = DatabricksConfig()
anthropic_tool = {
"name": "test_tool",
"input_schema": {"type": "object", "properties": {"test": {"type": "string"}}}
}
databricks_tool = config.convert_anthropic_tool_to_databricks_tool(anthropic_tool)
assert databricks_tool is not None
assert databricks_tool["type"] == "function"
assert databricks_tool["function"].get("description") is None