Class MethodInvokingFunctionCallback

java.lang.Object
org.springframework.ai.model.function.MethodInvokingFunctionCallback
All Implemented Interfaces:
FunctionCallback

public class MethodInvokingFunctionCallback extends Object implements FunctionCallback
A FunctionCallback that invokes methods on objects via reflection, supporting:
  • Static and non-static methods
  • Any number of parameters (including none)
  • Any parameter/return types (primitives, objects, collections)
  • Special handling for ToolContext parameters
Automatically infers the input parameters JSON schema from method's argument types.
Since:
1.0.0
Author:
Christian Tzolov
  • Method Details

    • getName

      public String getName()
      Specified by:
      getName in interface FunctionCallback
      Returns:
      Returns the Function name. Unique within the model.
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in interface FunctionCallback
      Returns:
      Returns the function description. This description is used by the model do decide if the function should be called or not.
    • getInputTypeSchema

      public String getInputTypeSchema()
      Specified by:
      getInputTypeSchema in interface FunctionCallback
      Returns:
      Returns the JSON schema of the function input type.
    • call

      public String call(String functionInput)
      Description copied from interface: FunctionCallback
      Called when a model detects and triggers a function call. The model is responsible to pass the function arguments in the pre-configured JSON schema format.
      Specified by:
      call in interface FunctionCallback
      Parameters:
      functionInput - JSON string with the function arguments to be passed to the function. The arguments are defined as JSON schema usually registered with the model.
      Returns:
      String containing the function call response.
    • call

      public String call(String functionInput, ToolContext toolContext)
      Description copied from interface: FunctionCallback
      Called when a model detects and triggers a function call. The model is responsible to pass the function arguments in the pre-configured JSON schema format. Additionally, the model can pass a context map to the function if available. The context is used to pass additional user provided state in addition to the arguments provided by the AI model.
      Specified by:
      call in interface FunctionCallback
      Parameters:
      functionInput - JSON string with the function arguments to be passed to the function. The arguments are defined as JSON schema usually registered with the model. Arguments are provided by the AI model.
      toolContext - Map with the function context. The context is used to pass additional user provided state in addition to the arguments provided by the AI model.
      Returns:
      String containing the function call response.
    • generateJsonSchema

      protected String generateJsonSchema(Map<String,Class<?>> namedClasses)
      Generates a JSON schema from the given named classes.
      Parameters:
      namedClasses - The named classes to generate the schema from.
      Returns:
      The generated JSON schema.
    • toJavaType

      protected Object toJavaType(Object value, Class<?> javaType)
      Converts the given value to the specified Java type.
      Parameters:
      value - The value to convert.
      javaType - The Java type to convert to.
      Returns:
      Returns the converted value.