Questo documento descrive come utilizzare le chiamate di funzione SAP con Gemini, utilizzando l'SDK Vertex AI per ABAP.
Puoi definire funzioni personalizzate e fornirle ai modelli Gemini utilizzando la funzionalità di chiamata di funzione. I modelli non invocano direttamente le funzioni personalizzate, ma generano un output di dati strutturati che specifica il nome della funzione e gli argomenti suggeriti. Questo output ti consente di scrivere applicazioni che acquisiscono l'output strutturato e chiamano API esterne. L'output dell'API risultante può quindi essere incorporato in un altro prompt del modello, consentendo risposte alle query più complete.
L'SDK Vertex AI per ABAP semplifica le chiamate di funzione per ABAP agli sviluppatori offrendo loro l'opportunità di richiamare una logica personalizzata nei moduli delle funzioni SAP tramite:
- Superare il modulo funzione SAP al modello sotto forma di dichiarazioni di funzione, che descrivono il nome della funzione, il suo scopo e i parametri correlati.
- Impostazione della chiamata automatica del modulo funzione SAP in modo implicito durante il richiamo del modello.
Di seguito è riportato il percorso tipico di uno sviluppatore ABAP per richiamare la chiamata di funzioni SAP:
- L'utente fornisce un prompt di input.
- L'SDK passa il prompt di input e le dichiarazioni di funzione al modello.
- Il modello esamina il prompt e le funzioni dichiarate per dedurre la funzione da chiamare e suggerisce i valori dei parametri per chiamarla.
- Se l'invocazione automatica è impostata, l'SDK chiama il modulo di funzione SAP.
- L'SDK richiama quindi il modello con l'output della funzione chiamata.
- Il modello risponde con una risposta affidabile per il prompt finale arricchito con l'output della funzione chiamata.
- L'SDK restituisce la risposta all'utente.
Se scegli di non richiamare automaticamente i moduli delle funzioni SAP, SDK consente di utilizzare la funzionalità di chiamata di funzione senza alcun modulo di funzione SAP invocazione. In questo caso, puoi seguire il flusso di lavoro tipico delle chiamate di funzione per utilizzare strumenti esterni come API e funzioni.
Prima di iniziare
Prima di utilizzare l'SDK Vertex AI per ABAP per le chiamate di funzione SAP con Gemini, assicurati che tu o i tuoi amministratori abbiate completato i seguenti prerequisiti:
- Abilitare l'API Vertex AI nel tuo progetto Google Cloud.
- Hai installato l'SDK Vertex AI per ABAP nel tuo ambiente SAP.
- Configura l'autenticazione per accedere all'API Vertex AI.
- Configurato i parametri di generazione del modello.
Arricchisci il contesto del modello di IA di Gemini con i dati SAP
Questa sezione spiega come arricchire il modello di AI Gemini contesto con i dati SAP utilizzando l'SDK Vertex AI per ABAP.
Crea un'istanza della classe di invocatore multimodale Gemini
Per invocare la chiamata di funzione in SAP, utilizza la classe /GOOG/CL_GENERATIVE_MODEL
.
Puoi creare un'istanza della classe
passando la chiave del modello configurata nei parametri di generazione del modello.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
Sostituisci MODEL_KEY
con il nome della chiave del modello, configurata
nei parametri di generazione del modello.
Creare un modulo funzione SAP
Per creare un modulo di funzione SAP per la chiamata automatica da parte dell'SDK, segui lo schema fornito:
Categoria | Nome parametro | Tipo associato |
---|---|---|
Importazione in corso | IT_FUNCTION_PARAMETERS |
/GOOG/T_FUNCTION_PARAMETERS |
In fase di esportazione | EV_FUNCTION_RESPONSE |
STRING |
Modifica in corso | CV_PROMPT |
STRING |
Eccezioni | /GOOG/CX_SDK |
Exception Class |
In base ai parametri di importazione, scrivi la logica personalizzata nel modulo della funzione,
che possono recuperare i dati SAP tramite SELECT
query SQL o chiamando un'API o un modulo esterno
per ottenere le informazioni mancanti.
Imposta il parametro di esportazione EV_FUNCTION_RESPONSE
con le informazioni da fornire come feedback al contesto LLM. Puoi anche cambiare o modificare il testo del prompt
in CV_PROMPT
in base alla logica personalizzata e ai requisiti aziendali di
istruire ulteriormente l'LLM in base a diversi scenari aziendali.
Aggiungi dichiarazione di funzione
Per aggiungere una dichiarazione di funzione al contesto LLM, puoi utilizzare la classe
ADD_FUNCTION_DECLARATION
. Chiama il metodo ADD_FUNCTION_DECLARATION
ogni volta che devi aggiungere una funzione al contesto.
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 ).
Sostituisci quanto segue:
PARAMETER_NAME
: il nome del parametro.PARAMETER_TYPE
: il tipo di dati del parametro, comestring
,integer
oboolean
.PARAMETER_DESCRIPTION
: una chiara spiegazione degli lo scopo e il formato previsto del parametro.PARAMETER_IS_REQUIRED
: se questo parametro è obbligatorio per il funzionamento della funzione, imposta il valore suABAP_TRUE
.FUNCTION_MODULE_NAME
: nome del modulo di funzione SAP.FUNCTION_MODULE_DESCRIPTION
: descrizione del modulo della funzione SAP.
Impostare l'invocazione automatica del modulo di funzione SAP
Per impostare l'invocazione automatica della funzione SAP selezionata dal modello, puoi utilizzare il metodo SET_AUTO_INVOKE_SAP_FUNCTION
.
Se il parametro ABAP_TRUE
viene passato nel parametro di importazione IV_AUTO_INVOKE
,
il modulo funzione è richiamato dall'SDK e la sua risposta è
inclusi nel contesto dell'LLM per generare la risposta finale.
Devi definire il modulo di funzione seguendo lo schema descritto nella sezione Creare il modulo di funzione SAP.
lo_model->set_auto_invoke_sap_function( abap_true ).
Generare contenuti con chiamate di funzione
Per passare il testo del prompt al
modello Gemini, puoi utilizzare il metodo GENERATE_CONTENT
.
Per ottenere la risposta
generate da Gemini con il contesto aggiuntivo
aggiunto dal modulo della funzione SAP tramite la chiamata di funzione, utilizza il metodo GET_TEXT
.
DATA(lv_response) = lo_model->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
Sostituisci PROMPT
con il tuo prompt di testo.
Esempio di codice
Il seguente esempio di codice illustra come utilizzare le chiamate di funzioni SAP per ricevere una risposta finale dal modello.
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.
Sostituisci quanto segue:
MODEL_KEY
: il nome della chiave del modello, che è configurato nei parametri di generazione del modello.PARAMETER_NAME
: nome del parametro.PARAMETER_TYPE
: il tipo di dati del parametro, comestring
,integer
oboolean
.PARAMETER_DESCRIPTION
: una chiara spiegazione degli lo scopo e il formato previsto del parametro.PARAMETER_IS_REQUIRED
: se questo parametro è obbligatorio per il funzionamento della funzione, imposta il valore suABAP_TRUE
.FUNCTION_MODULE_NAME
: nome del modulo di funzione SAP.FUNCTION_MODULE_DESCRIPTION
: descrizione del modulo della funzione SAP.PROMPT
: il prompt di testo.
Passaggi successivi
Scopri di più sullo sviluppo di applicazioni con le versioni on-premise o cloud dell'SDK ABAP per Google Cloud.
Poni le tue domande e discuti dell'SDK Vertex AI per ABAP con la community attivo Forum di Cloud.