In diesem Dokument wird beschrieben, wie Sie SAP-Funktionsaufrufe mit Gemini mithilfe des Vertex AI SDK for ABAP verwenden.
Mit der Funktion Funktionsaufruf können Sie benutzerdefinierte Funktionen definieren und den Gemini-Modellen zur Verfügung stellen. Die Modelle rufen die benutzerdefinierten Funktionen nicht direkt auf, sondern generieren eine strukturierte Datenausgabe, in der der Funktionsname und die vorgeschlagenen Argumente angegeben sind. Mit dieser Ausgabe können Sie Anwendungen schreiben, die die strukturierte Ausgabe verwenden und externe APIs aufrufen. Die resultierende API-Ausgabe kann dann in einen weiteren Modell-Prompt eingefügt werden, um umfassendere Abfrageantworten zu ermöglichen.
Das Vertex AI SDK für ABAP vereinfacht den Funktionsaufruf für ABAP-Entwickler, da sie ihnen die Möglichkeit bietet, benutzerdefinierte Logik aufzurufen, die in SAP-Funktionsmodulen geschrieben wurde:
- Übergeben Sie dem Modell SAP-Funktionsmodulnamen als Funktionsdeklarationen, die den Namen der Funktion, ihren Zweck und zugehörige Parameter beschreiben.
- Legen Sie Automatischen Aufruf des SAP-Funktionsmoduls beim Aufrufen des Modells implizit fest.
Folgendes ist ein typischer ABAP-Entwickler zum Aufrufen von SAP-Funktionsaufrufen:
- Der Nutzer gibt einen Eingabevorschlag ein.
- Das SDK übergibt den Eingabe-Prompt und die Funktionsdeklarationen an das Modell.
- Das Modell prüft den Prompt und die deklarierten Funktionen, um die aufzurufende Funktion abzuleiten, und schlägt die Parameterwerte für den Funktionsaufruf vor.
- Wenn der automatische Aufruf festgelegt ist, ruft das SDK das SAP-Funktionsmodul auf.
- Das SDK ruft das Modell dann mit der Ausgabe der aufgerufenen Funktion auf.
- Das Modell antwortet mit einer zuverlässigen Antwort auf die endgültige Eingabeaufforderung, die mit der Ausgabe der aufgerufenen Funktion angereichert ist.
- Das SDK gibt die Antwort an den Nutzer zurück.
Wenn Sie SAP-Funktionsmodule nicht automatisch aufrufen, können Sie mit dem SDK das Funktionsaufruffeature ohne SAP-Funktionsmodulaufruf verwenden. In diesem Fall können Sie dem typischen Funktionsaufruf-Workflow folgen, um externe Tools wie APIs und Funktionen zu verwenden.
Hinweise
Bevor Sie das Vertex AI SDK für ABAP for SAP-Funktionsaufrufe mit Gemini verwenden, müssen Sie oder Ihre Administratoren die folgenden Voraussetzungen erfüllen:
- Sie haben die Vertex AI API in Ihrem Google Cloud-Projekt aktiviert.
- Sie haben das Vertex AI SDK für ABAP in Ihrer SAP-Umgebung installiert.
- Sie haben die Authentifizierung eingerichtet, um auf die Vertex AI API zuzugreifen.
- Sie haben die Parameter für die Modellgenerierung konfiguriert.
Kontext des Gemini KI-Modells mit SAP-Daten anreichern
In diesem Abschnitt wird erläutert, wie Sie den Gemini KI-Modellkonext mit SAP-Daten anreichern. Dazu verwenden Sie das Vertex AI SDK für ABAP.
Multimodale Aufrufer-Klasse von Gemini instanziieren
Zum Aufrufen von Funktionsaufrufen in SAP verwenden Sie die Klasse /GOOG/CL_GENERATIVE_MODEL
.
Sie instanziieren die Klasse, indem Sie den in den Parametern für die Modellgenerierung konfigurierten Modellschlüssel übergeben.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
Ersetzen Sie MODEL_KEY
durch den Namen des Modellschlüssels, der in den Parametern für die Modellgenerierung konfiguriert ist.
SAP-Funktionsmodul erstellen
Folgen Sie dem bereitgestellten Schema, um ein SAP-Funktionsmodul für den automatischen Aufruf durch das SDK zu erstellen:
Kategorie | Parametername | Verknüpfter Typ |
---|---|---|
Wird importiert | IT_FUNCTION_PARAMETERS |
/GOOG/T_FUNCTION_PARAMETERS |
Wird exportiert | EV_FUNCTION_RESPONSE |
STRING |
Wird geändert | CV_PROMPT |
STRING |
Ausnahmen | /GOOG/CX_SDK |
Exception Class |
Schreiben Sie auf der Grundlage der Importparameter Ihre benutzerdefinierte Logik in das Funktionsmodul. Dies kann entweder das Abrufen von SAP-Daten über SELECT
-Abfragen oder das Aufrufen einer externen API oder eines externen Moduls sein, um die fehlenden Informationen zu erhalten.
Legen Sie den Exportparameter EV_FUNCTION_RESPONSE
mit den Informationen zum Feedback an den LLM-Kontext fest. Sie können den Prompttext in CV_PROMPT
auch anhand der benutzerdefinierten Logik und Ihrer Geschäftsanforderungen ändern, um den LLM anhand verschiedener Geschäftsszenarien weiter anzuweisen.
Funktionsdeklaration hinzufügen
Mit der Methode ADD_FUNCTION_DECLARATION
können Sie dem LLM-Kontext eine Funktionsdeklaration hinzufügen. Rufen Sie die Methode ADD_FUNCTION_DECLARATION
jedes Mal auf, wenn Sie dem Kontext eine Funktion hinzufügen möchten.
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 ).
Ersetzen Sie Folgendes:
PARAMETER_NAME
: Name des Parameters.PARAMETER_TYPE
: Der Datentyp des Parameters, z. B.string
,integer
oderboolean
.PARAMETER_DESCRIPTION
: Eine klare Erläuterung des Zwecks und des erwarteten Formats des Parameters.PARAMETER_IS_REQUIRED
: Wenn dieser Parameter für die Funktion erforderlich ist, legen Sie den Wert aufABAP_TRUE
fest.FUNCTION_MODULE_NAME
: Name des SAP-Funktionsmoduls.FUNCTION_MODULE_DESCRIPTION
: Beschreibung des SAP-Funktionsmoduls.
Automatischen Aufruf des SAP-Funktionsmoduls festlegen
Mit der Methode SET_AUTO_INVOKE_SAP_FUNCTION
können Sie die automatische Aufrufung der vom Modell ausgewählten SAP-Funktion festlegen.
Wenn ABAP_TRUE
im Importparameter IV_AUTO_INVOKE
übergeben wird, wird das Funktionsmodul vom SDK aufgerufen und seine Antwort ist im LLM-Kontext enthalten, um die endgültige Antwort zu generieren.
Sie müssen das Funktionsmodul definieren. Folgen Sie dazu dem im Abschnitt SAP-Funktionsmodul erstellen beschriebenen Schema.
lo_model->set_auto_invoke_sap_function( abap_true ).
Inhalte mit Funktionsaufrufen generieren
Zum Übergeben des Prompt-Texts an das Gemini-Modell können Sie die Methode GENERATE_CONTENT
verwenden.
Verwenden Sie die Methode GET_TEXT
, um die von Gemini generierte Antwort mit dem zusätzlichen Kontext abzurufen, der aus dem SAP-Funktionsmodul durch Funktionsaufrufe hinzugefügt wurde.
DATA(lv_response) = lo_model->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
Ersetzen Sie PROMPT
durch Ihren Text-Prompt.
Codebeispiel
Das folgende Codebeispiel zeigt, wie Sie mit SAP-Funktionsaufrufen eine endgültige Antwort vom Modell empfangen.
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.
Ersetzen Sie Folgendes:
MODEL_KEY
: Der Name des Modellschlüssels, der in den Modellgenerierungsparametern konfiguriert ist.PARAMETER_NAME
: Name des Parameters.PARAMETER_TYPE
: Der Datentyp des Parameters, z. B.string
,integer
oderboolean
.PARAMETER_DESCRIPTION
: Eine klare Erläuterung des Zwecks und des erwarteten Formats des Parameters.PARAMETER_IS_REQUIRED
: Wenn dieser Parameter für die Funktion erforderlich ist, legen Sie den Wert aufABAP_TRUE
fest.FUNCTION_MODULE_NAME
: Name des SAP-Funktionsmoduls.FUNCTION_MODULE_DESCRIPTION
: Beschreibung des SAP-Funktionsmoduls.PROMPT
: Ihr Text-Prompt.
Nächste Schritte
In den Cloud-Foren können Sie Ihre Fragen stellen und mit der Community über das Vertex AI SDK sprechen.