from typing import Any, Callable, Optional
from langchain_core.tools import tool as langchain_tool
def tool(
func: Optional[Callable] = None,
*,
name: Optional[str] = None,
description: Optional[str] = None,
) -> Any:
if func is not None:
if name is not None:
return langchain_tool(name, func, description=description)
return langchain_tool(func, description=description)
def decorator(f: Callable) -> Any:
if name is not None:
return langchain_tool(name, f, description=description)
return langchain_tool(f, description=description)
return decorator