30 lines
792 B
Python
30 lines
792 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 Mistral AI tool definition into MLflow's standard format (OpenAI compatible).
|
|
|
|
Ref: https://docs.mistral.ai/capabilities/function_calling/#tools
|
|
|
|
Args:
|
|
tool: A dictionary represents a single tool definition in the input request.
|
|
|
|
Returns:
|
|
ChatTool: MLflow's standard tool definition object.
|
|
"""
|
|
function = tool["function"]
|
|
return ChatTool(
|
|
type="function",
|
|
function=FunctionToolDefinition(
|
|
name=function["name"],
|
|
description=function.get("description"),
|
|
parameters=function["parameters"],
|
|
),
|
|
)
|