27 lines
810 B
Python
27 lines
810 B
Python
from typing import Any
|
|
|
|
from mlflow.types.chat import ChatTool, FunctionToolDefinition
|
|
|
|
|
|
def convert_tool_to_mlflow_chat_tool(tool: dict[str, Any]) -> ChatTool:
|
|
"""
|
|
Convert Bedrock tool definition into MLflow's standard format (OpenAI compatible).
|
|
|
|
Ref: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Tool.html
|
|
|
|
Args:
|
|
tool: A dictionary represents a single tool definition in the input request.
|
|
|
|
Returns:
|
|
ChatTool: MLflow's standard tool definition object.
|
|
"""
|
|
tool_spec = tool["toolSpec"]
|
|
return ChatTool(
|
|
type="function",
|
|
function=FunctionToolDefinition(
|
|
name=tool_spec["name"],
|
|
description=tool_spec.get("description"),
|
|
parameters=tool_spec["inputSchema"].get("json"),
|
|
),
|
|
)
|