En este documento, se describe cómo usar las llamadas a funciones de SAP con Gemini con el SDK de Vertex AI para ABAP.
Puedes definir funciones personalizadas y proporcionarlas a los modelos de Gemini con la función Llamada a función. Los modelos no invocan directamente las funciones personalizadas, sino que generan un resultado de datos estructurados que especifica el nombre de la función y los argumentos sugeridos. Este resultado te permite escribir aplicaciones que tomen el resultado estructurado y llamen a APIs externas. El resultado de la API resultante se puede incorporar a otra instrucción del modelo, lo que permite respuestas de consulta más completas.
El SDK de Vertex AI para ABAP simplifica las llamadas a funciones para los desarrolladores de ABAP, ya que les brinda oportunidades para invocar lógica personalizada escrita en módulos de funciones de SAP de las siguientes maneras:
- Pasar nombres de módulos de funciones de SAP al modelo como declaraciones de funciones, que describen el nombre de la función, su propósito y los parámetros relacionados.
- Establecer la invocación automática del módulo de funciones de SAP de forma implícita mientras se invoca el modelo.
El siguiente es un recorrido típico de un desarrollador de ABAP para invocar llamadas a funciones de SAP:
- El usuario proporciona una instrucción de entrada.
- El SDK pasa la instrucción de entrada y las declaraciones de funciones al modelo.
- El modelo revisa la instrucción y las funciones declaradas para derivar la función a la que llamar y sugiere los valores de los parámetros para llamar a la función.
- Si se establece la invocación automática, el SDK llama al módulo de funciones de SAP.
- Luego, el SDK invoca el modelo con el resultado de la función llamada.
- El modelo responde con una respuesta confiable para la instrucción final enriquecida con el resultado de la función llamada.
- El SDK muestra la respuesta al usuario.
Si decides no invocar automáticamente los módulos de funciones de SAP, el SDK te permite usar la función de llamada a función sin ninguna invocación de módulo de función de SAP. En este caso, puedes seguir el flujo de trabajo típico de llamadas a función para usar herramientas externas, como APIs y funciones.
Antes de comenzar
Antes de usar el SDK de Vertex AI para ABAP para las llamadas a funciones de SAP con Gemini, asegúrate de que tú o tus administradores hayan completado los siguientes requisitos previos:
- Habilitaste la API de Vertex AI en tu proyecto de Google Cloud.
- Instalaste el SDK de Vertex AI para ABAP en tu entorno de SAP.
- Configura la autenticación para acceder a la API de Vertex AI.
- Configuraste los parámetros de generación del modelo.
Enriquece el contexto del modelo de IA de Gemini con datos de SAP
En esta sección, se explica cómo puedes enriquecer el contexto del modelo de IA de Gemini con datos de SAP mediante el SDK de Vertex AI para ABAP.
Crea una instancia de la clase de invocador multimodal de Gemini
Para invocar llamadas a funciones en SAP, usa la clase /GOOG/CL_GENERATIVE_MODEL
.
Para crear una instancia de la clase, debes pasar la clave de modelo configurada en los parámetros de generación del modelo.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
Reemplaza MODEL_KEY
por el nombre de la clave de modelo, que se configura en los parámetros de generación del modelo.
Crea un módulo de función de SAP
Para crear un módulo de función de SAP para que el SDK lo invoque automáticamente, sigue el esquema proporcionado:
Categoría | Nombre del parámetro | Tipo asociado |
---|---|---|
Se está importando | IT_FUNCTION_PARAMETERS |
/GOOG/T_FUNCTION_PARAMETERS |
Exportando | EV_FUNCTION_RESPONSE |
STRING |
Cambiando | CV_PROMPT |
STRING |
Excepciones | /GOOG/CX_SDK |
Exception Class |
En función de los parámetros de importación, escribe tu lógica personalizada dentro del módulo de la función, que puede ser recuperar datos de SAP a través de consultas SELECT
o llamar a una API o un módulo externos para obtener la información faltante.
Configura el parámetro de exportación EV_FUNCTION_RESPONSE
con la información para enviar comentarios al contexto de LLM. También puedes cambiar o modificar el texto de la instrucción en CV_PROMPT
según la lógica personalizada y los requisitos empresariales para dar más instrucciones al LLM según diferentes situaciones empresariales.
Agrega la declaración de la función
Para agregar una declaración de función al contexto de LLM, puedes usar el método ADD_FUNCTION_DECLARATION
. Llama al método ADD_FUNCTION_DECLARATION
cada vez que necesites agregar una función al contexto.
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
lo_model->add_function_declaration( iv_name = 'FUNCTION_MODULE_NAME'
iv_description = 'FUNCTION_MODULE_DESCRIPTION'
it_parameters = lt_parameters ).
Reemplaza lo siguiente:
PARAMETER_NAME
: El nombre del parámetro.PARAMETER_TYPE
: Es el tipo de datos del parámetro, comostring
,integer
oboolean
.PARAMETER_DESCRIPTION
: Una explicación clara del propósito del parámetro y el formato esperado.PARAMETER_IS_REQUIRED
: Si este parámetro es obligatorio para que la función se ejecute, establece el valor enABAP_TRUE
.FUNCTION_MODULE_NAME
: Es el nombre del módulo de funciones de SAP.FUNCTION_MODULE_DESCRIPTION
: Es la descripción del módulo de funciones de SAP.
Cómo configurar la invocación automática del módulo de funciones de SAP
Para configurar la invocación automática de la función de SAP que selecciona el modelo, puedes usar el método SET_AUTO_INVOKE_SAP_FUNCTION
.
Si se pasa ABAP_TRUE
en el parámetro de importación IV_AUTO_INVOKE
, el SDK invoca el módulo de función y su respuesta se incluye con el contexto de LLM para generar la respuesta final.
Debes definir tu módulo de funciones siguiendo el esquema que se describe en la sección Cómo crear un módulo de funciones de SAP.
lo_model->set_auto_invoke_sap_function( abap_true ).
Genera contenido con llamadas a función
Para pasar el texto de la instrucción al modelo de Gemini, puedes usar el método GENERATE_CONTENT
.
Para obtener la respuesta que genera Gemini con el contexto adicional agregado desde el módulo de funciones de SAP a través de llamadas a funciones, usa el método GET_TEXT
.
DATA(lv_response) = lo_model->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
Reemplaza PROMPT
por tu instrucción de texto.
Muestra de código
En la siguiente muestra de código, se ilustra cómo usar las llamadas a función de SAP para recibir una respuesta final del modelo.
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
TRY.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
DATA(lv_response) = lo_model->add_function_declaration(
iv_name = 'FUNCTION_MODULE_NAME'
iv_description = 'FUNCTION_MODULE_DESCRIPTION'
it_parameters = lt_parameters
)->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
IF lv_response IS NOT INITIAL.
cl_demo_output=>display( lv_response ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( lo_cx_sdk->get_text( ) ).
ENDTRY.
Reemplaza lo siguiente:
MODEL_KEY
: El nombre de la clave del modelo, que se configura en los parámetros de generación del modelo.PARAMETER_NAME
: El nombre del parámetro.PARAMETER_TYPE
: Es el tipo de datos del parámetro, comostring
,integer
oboolean
.PARAMETER_DESCRIPTION
: Una explicación clara del propósito del parámetro y el formato esperado.PARAMETER_IS_REQUIRED
: Si este parámetro es obligatorio para que la función se ejecute, establece el valor enABAP_TRUE
.FUNCTION_MODULE_NAME
: Es el nombre del módulo de funciones de SAP.FUNCTION_MODULE_DESCRIPTION
: Es la descripción del módulo de funciones de SAP.PROMPT
: Tu sugerencia de texto.
¿Qué sigue?
Obtén información sobre el desarrollo de aplicaciones con la edición local o cualquier edición en la nube del SDK de ABAP para Google Cloud.
Haz tus preguntas y analiza el SDK de Vertex AI para ABAP con la comunidad en Cloud Forums.