register_tools

in src/zgoog_agent_examples/zcl_gemini_agent_base.clas.abap [0:0]


  METHOD register_tools.
    LOOP AT it_tool_definitions ASSIGNING FIELD-SYMBOL(<fs_tool>).
      DATA(lt_sdk_params) = VALUE /goog/cl_generative_model=>tt_parameter_properties( ).

      " Convert tool parameters to SDK format
      LOOP AT <fs_tool>-parameters ASSIGNING FIELD-SYMBOL(<fs_param>).
        APPEND VALUE #( parameter_name = <fs_param>-name
                        type           = <fs_param>-type
                        description    = <fs_param>-description
                        is_required    = <fs_param>-is_required )
               TO lt_sdk_params.
      ENDLOOP.

      " Add the function declaration to the SDK model
      mo_model->add_function_declaration( iv_name        = <fs_tool>-name        " Must match the FM name if using auto-invoke
                                          iv_description = <fs_tool>-description
                                          it_parameters  = lt_sdk_params ).
    ENDLOOP.